Commit c3d98e39 authored by Jan Kara's avatar Jan Kara Committed by Vishal Verma

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: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
Signed-off-by: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatarVishal Verma <vishal.l.verma@intel.com>
parent 069c77bc
...@@ -268,15 +268,8 @@ ssize_t dax_do_io(struct kiocb *iocb, struct inode *inode, ...@@ -268,15 +268,8 @@ ssize_t dax_do_io(struct kiocb *iocb, struct inode *inode,
memset(&bh, 0, sizeof(bh)); memset(&bh, 0, sizeof(bh));
bh.b_bdev = inode->i_sb->s_bdev; bh.b_bdev = inode->i_sb->s_bdev;
if ((flags & DIO_LOCKING) && iov_iter_rw(iter) == READ) { if ((flags & DIO_LOCKING) && iov_iter_rw(iter) == READ)
struct address_space *mapping = inode->i_mapping;
inode_lock(inode); inode_lock(inode);
retval = filemap_write_and_wait_range(mapping, pos, end - 1);
if (retval) {
inode_unlock(inode);
goto out;
}
}
/* Protects against truncate */ /* Protects against truncate */
if (!(flags & DIO_SKIP_DIO_COUNT)) if (!(flags & DIO_SKIP_DIO_COUNT))
...@@ -297,7 +290,6 @@ ssize_t dax_do_io(struct kiocb *iocb, struct inode *inode, ...@@ -297,7 +290,6 @@ ssize_t dax_do_io(struct kiocb *iocb, struct inode *inode,
if (!(flags & DIO_SKIP_DIO_COUNT)) if (!(flags & DIO_SKIP_DIO_COUNT))
inode_dio_end(inode); inode_dio_end(inode);
out:
return retval; return retval;
} }
EXPORT_SYMBOL_GPL(dax_do_io); EXPORT_SYMBOL_GPL(dax_do_io);
......
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