diff options
Diffstat (limited to 'fs/direct-io.c')
-rw-r--r-- | fs/direct-io.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/fs/direct-io.c b/fs/direct-io.c index b044705eedd4..ac5f164170e3 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c | |||
@@ -645,11 +645,11 @@ static int dio_send_cur_page(struct dio *dio) | |||
645 | /* | 645 | /* |
646 | * See whether this new request is contiguous with the old. | 646 | * See whether this new request is contiguous with the old. |
647 | * | 647 | * |
648 | * Btrfs cannot handl having logically non-contiguous requests | 648 | * Btrfs cannot handle having logically non-contiguous requests |
649 | * submitted. For exmple if you have | 649 | * submitted. For example if you have |
650 | * | 650 | * |
651 | * Logical: [0-4095][HOLE][8192-12287] | 651 | * Logical: [0-4095][HOLE][8192-12287] |
652 | * Phyiscal: [0-4095] [4096-8181] | 652 | * Physical: [0-4095] [4096-8191] |
653 | * | 653 | * |
654 | * We cannot submit those pages together as one BIO. So if our | 654 | * We cannot submit those pages together as one BIO. So if our |
655 | * current logical offset in the file does not equal what would | 655 | * current logical offset in the file does not equal what would |
@@ -1110,11 +1110,8 @@ direct_io_worker(int rw, struct kiocb *iocb, struct inode *inode, | |||
1110 | ((rw & READ) || (dio->result == dio->size))) | 1110 | ((rw & READ) || (dio->result == dio->size))) |
1111 | ret = -EIOCBQUEUED; | 1111 | ret = -EIOCBQUEUED; |
1112 | 1112 | ||
1113 | if (ret != -EIOCBQUEUED) { | 1113 | if (ret != -EIOCBQUEUED) |
1114 | /* All IO is now issued, send it on its way */ | ||
1115 | blk_run_address_space(inode->i_mapping); | ||
1116 | dio_await_completion(dio); | 1114 | dio_await_completion(dio); |
1117 | } | ||
1118 | 1115 | ||
1119 | /* | 1116 | /* |
1120 | * Sync will always be dropping the final ref and completing the | 1117 | * Sync will always be dropping the final ref and completing the |
@@ -1176,7 +1173,7 @@ __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode, | |||
1176 | struct dio *dio; | 1173 | struct dio *dio; |
1177 | 1174 | ||
1178 | if (rw & WRITE) | 1175 | if (rw & WRITE) |
1179 | rw = WRITE_ODIRECT_PLUG; | 1176 | rw = WRITE_ODIRECT; |
1180 | 1177 | ||
1181 | if (bdev) | 1178 | if (bdev) |
1182 | bdev_blkbits = blksize_bits(bdev_logical_block_size(bdev)); | 1179 | bdev_blkbits = blksize_bits(bdev_logical_block_size(bdev)); |