diff options
author | Jan Kara <jack@suse.cz> | 2016-05-11 11:58:52 +0200 |
---|---|---|
committer | Vishal Verma <vishal.l.verma@intel.com> | 2016-05-17 00:44:09 -0600 |
commit | c3d98e39d5b37320b15f227686575d58f676e6ef (patch) | |
tree | 2e221bb403db75da6a40c70919f82ad492315e53 /fs/dax.c | |
parent | 069c77bc9eaee70fa9ecbd942372b1693b8cdeb0 (diff) | |
download | linux-stable-c3d98e39d5b37320b15f227686575d58f676e6ef.tar.gz linux-stable-c3d98e39d5b37320b15f227686575d58f676e6ef.tar.bz2 linux-stable-c3d98e39d5b37320b15f227686575d58f676e6ef.zip |
dax: Remove pointless writeback from dax_do_io()
dax_do_io() is calling filemap_write_and_wait() if DIO_LOCKING flags is
set. Presumably this was copied over from direct IO code. However DAX
inodes have no pagecache pages to write so the call is pointless. Remove
it.
Reviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
Diffstat (limited to 'fs/dax.c')
-rw-r--r-- | fs/dax.c | 10 |
1 files changed, 1 insertions, 9 deletions
@@ -268,15 +268,8 @@ ssize_t dax_do_io(struct kiocb *iocb, struct inode *inode, memset(&bh, 0, sizeof(bh)); bh.b_bdev = inode->i_sb->s_bdev; - if ((flags & DIO_LOCKING) && iov_iter_rw(iter) == READ) { - struct address_space *mapping = inode->i_mapping; + if ((flags & DIO_LOCKING) && iov_iter_rw(iter) == READ) inode_lock(inode); - retval = filemap_write_and_wait_range(mapping, pos, end - 1); - if (retval) { - inode_unlock(inode); - goto out; - } - } /* Protects against truncate */ if (!(flags & DIO_SKIP_DIO_COUNT)) @@ -297,7 +290,6 @@ ssize_t dax_do_io(struct kiocb *iocb, struct inode *inode, if (!(flags & DIO_SKIP_DIO_COUNT)) inode_dio_end(inode); - out: return retval; } EXPORT_SYMBOL_GPL(dax_do_io); |