diff options
Diffstat (limited to 'fs/btrfs/inode.c')
-rw-r--r-- | fs/btrfs/inode.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 5f805bc944fa..30a6cc51f32c 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -7433,8 +7433,7 @@ out: | |||
7433 | } | 7433 | } |
7434 | 7434 | ||
7435 | static ssize_t btrfs_direct_IO(int rw, struct kiocb *iocb, | 7435 | static ssize_t btrfs_direct_IO(int rw, struct kiocb *iocb, |
7436 | const struct iovec *iov, loff_t offset, | 7436 | struct iov_iter *iter, loff_t offset) |
7437 | unsigned long nr_segs) | ||
7438 | { | 7437 | { |
7439 | struct file *file = iocb->ki_filp; | 7438 | struct file *file = iocb->ki_filp; |
7440 | struct inode *inode = file->f_mapping->host; | 7439 | struct inode *inode = file->f_mapping->host; |
@@ -7444,8 +7443,8 @@ static ssize_t btrfs_direct_IO(int rw, struct kiocb *iocb, | |||
7444 | bool relock = false; | 7443 | bool relock = false; |
7445 | ssize_t ret; | 7444 | ssize_t ret; |
7446 | 7445 | ||
7447 | if (check_direct_IO(BTRFS_I(inode)->root, rw, iocb, iov, | 7446 | if (check_direct_IO(BTRFS_I(inode)->root, rw, iocb, iter->iov, |
7448 | offset, nr_segs)) | 7447 | offset, iter->nr_segs)) |
7449 | return 0; | 7448 | return 0; |
7450 | 7449 | ||
7451 | atomic_inc(&inode->i_dio_count); | 7450 | atomic_inc(&inode->i_dio_count); |
@@ -7457,7 +7456,7 @@ static ssize_t btrfs_direct_IO(int rw, struct kiocb *iocb, | |||
7457 | * we need to flush the dirty pages again to make absolutely sure | 7456 | * we need to flush the dirty pages again to make absolutely sure |
7458 | * that any outstanding dirty pages are on disk. | 7457 | * that any outstanding dirty pages are on disk. |
7459 | */ | 7458 | */ |
7460 | count = iov_length(iov, nr_segs); | 7459 | count = iov_length(iter->iov, iter->nr_segs); |
7461 | if (test_bit(BTRFS_INODE_HAS_ASYNC_EXTENT, | 7460 | if (test_bit(BTRFS_INODE_HAS_ASYNC_EXTENT, |
7462 | &BTRFS_I(inode)->runtime_flags)) | 7461 | &BTRFS_I(inode)->runtime_flags)) |
7463 | filemap_fdatawrite_range(inode->i_mapping, offset, count); | 7462 | filemap_fdatawrite_range(inode->i_mapping, offset, count); |
@@ -7484,7 +7483,8 @@ static ssize_t btrfs_direct_IO(int rw, struct kiocb *iocb, | |||
7484 | 7483 | ||
7485 | ret = __blockdev_direct_IO(rw, iocb, inode, | 7484 | ret = __blockdev_direct_IO(rw, iocb, inode, |
7486 | BTRFS_I(inode)->root->fs_info->fs_devices->latest_bdev, | 7485 | BTRFS_I(inode)->root->fs_info->fs_devices->latest_bdev, |
7487 | iov, offset, nr_segs, btrfs_get_blocks_direct, NULL, | 7486 | iter->iov, offset, iter->nr_segs, |
7487 | btrfs_get_blocks_direct, NULL, | ||
7488 | btrfs_submit_direct, flags); | 7488 | btrfs_submit_direct, flags); |
7489 | if (rw & WRITE) { | 7489 | if (rw & WRITE) { |
7490 | if (ret < 0 && ret != -EIOCBQUEUED) | 7490 | if (ret < 0 && ret != -EIOCBQUEUED) |