Commit 8a9f47dd authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Linus Torvalds

ntfs: remove ntfs_file_write

do_sync_write() does the right thing for turning the aio_writev method
into a normal non-vectored synchronous write, no need to duplicate it in
ntfs.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Acked-by: default avatarAnton Altaparmakov <aia21@cantab.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 562787a5
...@@ -2145,46 +2145,6 @@ static ssize_t ntfs_file_aio_write(struct kiocb *iocb, const struct iovec *iov, ...@@ -2145,46 +2145,6 @@ static ssize_t ntfs_file_aio_write(struct kiocb *iocb, const struct iovec *iov,
return ret; return ret;
} }
/**
* ntfs_file_writev -
*
* Basically the same as generic_file_writev() except that it ends up calling
* ntfs_file_aio_write_nolock() instead of __generic_file_aio_write_nolock().
*/
static ssize_t ntfs_file_writev(struct file *file, const struct iovec *iov,
unsigned long nr_segs, loff_t *ppos)
{
struct address_space *mapping = file->f_mapping;
struct inode *inode = mapping->host;
struct kiocb kiocb;
ssize_t ret;
mutex_lock(&inode->i_mutex);
init_sync_kiocb(&kiocb, file);
ret = ntfs_file_aio_write_nolock(&kiocb, iov, nr_segs, ppos);
if (ret == -EIOCBQUEUED)
ret = wait_on_sync_kiocb(&kiocb);
mutex_unlock(&inode->i_mutex);
if (ret > 0) {
int err = generic_write_sync(file, *ppos - ret, ret);
if (err < 0)
ret = err;
}
return ret;
}
/**
* ntfs_file_write - simple wrapper for ntfs_file_writev()
*/
static ssize_t ntfs_file_write(struct file *file, const char __user *buf,
size_t count, loff_t *ppos)
{
struct iovec local_iov = { .iov_base = (void __user *)buf,
.iov_len = count };
return ntfs_file_writev(file, &local_iov, 1, ppos);
}
/** /**
* ntfs_file_fsync - sync a file to disk * ntfs_file_fsync - sync a file to disk
* @filp: file to be synced * @filp: file to be synced
...@@ -2247,7 +2207,7 @@ const struct file_operations ntfs_file_ops = { ...@@ -2247,7 +2207,7 @@ const struct file_operations ntfs_file_ops = {
.read = do_sync_read, /* Read from file. */ .read = do_sync_read, /* Read from file. */
.aio_read = generic_file_aio_read, /* Async read from file. */ .aio_read = generic_file_aio_read, /* Async read from file. */
#ifdef NTFS_RW #ifdef NTFS_RW
.write = ntfs_file_write, /* Write to file. */ .write = do_sync_write, /* Write to file. */
.aio_write = ntfs_file_aio_write, /* Async write to file. */ .aio_write = ntfs_file_aio_write, /* Async write to file. */
/*.release = ,*/ /* Last file is closed. See /*.release = ,*/ /* Last file is closed. See
fs/ext2/file.c:: fs/ext2/file.c::
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment