diff options
author | Christoph Hellwig <hch@lst.de> | 2016-04-07 11:51:59 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-05-01 19:58:39 -0400 |
commit | 716b9bc0cb50b1c2c15ef6a255c88508350e3462 (patch) | |
tree | 41aa0ee56e5f9ee4e94bbd905c5e178bffcca93c | |
parent | c8b8e32d700fe943a935e435ae251364d016c497 (diff) |
direct-io: remove the offset argument to dio_complete
It has to be identical to ki_pos of the iocb, so use that instead.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | fs/direct-io.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/fs/direct-io.c b/fs/direct-io.c index 8949d3e35756..c61314b84b01 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c | |||
@@ -224,9 +224,9 @@ static inline struct page *dio_get_page(struct dio *dio, | |||
224 | * filesystems can use it to hold additional state between get_block calls and | 224 | * filesystems can use it to hold additional state between get_block calls and |
225 | * dio_complete. | 225 | * dio_complete. |
226 | */ | 226 | */ |
227 | static ssize_t dio_complete(struct dio *dio, loff_t offset, ssize_t ret, | 227 | static ssize_t dio_complete(struct dio *dio, ssize_t ret, bool is_async) |
228 | bool is_async) | ||
229 | { | 228 | { |
229 | loff_t offset = dio->iocb->ki_pos; | ||
230 | ssize_t transferred = 0; | 230 | ssize_t transferred = 0; |
231 | 231 | ||
232 | /* | 232 | /* |
@@ -285,7 +285,7 @@ static void dio_aio_complete_work(struct work_struct *work) | |||
285 | { | 285 | { |
286 | struct dio *dio = container_of(work, struct dio, complete_work); | 286 | struct dio *dio = container_of(work, struct dio, complete_work); |
287 | 287 | ||
288 | dio_complete(dio, dio->iocb->ki_pos, 0, true); | 288 | dio_complete(dio, 0, true); |
289 | } | 289 | } |
290 | 290 | ||
291 | static int dio_bio_complete(struct dio *dio, struct bio *bio); | 291 | static int dio_bio_complete(struct dio *dio, struct bio *bio); |
@@ -314,7 +314,7 @@ static void dio_bio_end_aio(struct bio *bio) | |||
314 | queue_work(dio->inode->i_sb->s_dio_done_wq, | 314 | queue_work(dio->inode->i_sb->s_dio_done_wq, |
315 | &dio->complete_work); | 315 | &dio->complete_work); |
316 | } else { | 316 | } else { |
317 | dio_complete(dio, dio->iocb->ki_pos, 0, true); | 317 | dio_complete(dio, 0, true); |
318 | } | 318 | } |
319 | } | 319 | } |
320 | } | 320 | } |
@@ -1319,7 +1319,7 @@ do_blockdev_direct_IO(struct kiocb *iocb, struct inode *inode, | |||
1319 | dio_await_completion(dio); | 1319 | dio_await_completion(dio); |
1320 | 1320 | ||
1321 | if (drop_refcount(dio) == 0) { | 1321 | if (drop_refcount(dio) == 0) { |
1322 | retval = dio_complete(dio, offset, retval, false); | 1322 | retval = dio_complete(dio, retval, false); |
1323 | } else | 1323 | } else |
1324 | BUG_ON(retval != -EIOCBQUEUED); | 1324 | BUG_ON(retval != -EIOCBQUEUED); |
1325 | 1325 | ||