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>hifive-unleashed-5.1
parent
069c77bc9e
commit
c3d98e39d5
10
fs/dax.c
10
fs/dax.c
|
@ -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,
|
||||||
|
|
||||||
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);
|
||||||
|
|
Loading…
Reference in New Issue