diff options
Diffstat (limited to 'fs/direct-io.c')
-rw-r--r-- | fs/direct-io.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/direct-io.c b/fs/direct-io.c index c3b560b24a46..745d2342651a 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c | |||
@@ -253,7 +253,9 @@ static ssize_t dio_complete(struct dio *dio, loff_t offset, ssize_t ret, | |||
253 | if (dio->end_io && dio->result) | 253 | if (dio->end_io && dio->result) |
254 | dio->end_io(dio->iocb, offset, transferred, dio->private); | 254 | dio->end_io(dio->iocb, offset, transferred, dio->private); |
255 | 255 | ||
256 | inode_dio_done(dio->inode); | 256 | if (!(dio->flags & DIO_SKIP_DIO_COUNT)) |
257 | inode_dio_end(dio->inode); | ||
258 | |||
257 | if (is_async) { | 259 | if (is_async) { |
258 | if (dio->rw & WRITE) { | 260 | if (dio->rw & WRITE) { |
259 | int err; | 261 | int err; |
@@ -1195,7 +1197,8 @@ do_blockdev_direct_IO(struct kiocb *iocb, struct inode *inode, | |||
1195 | /* | 1197 | /* |
1196 | * Will be decremented at I/O completion time. | 1198 | * Will be decremented at I/O completion time. |
1197 | */ | 1199 | */ |
1198 | atomic_inc(&inode->i_dio_count); | 1200 | if (!(dio->flags & DIO_SKIP_DIO_COUNT)) |
1201 | inode_dio_begin(inode); | ||
1199 | 1202 | ||
1200 | retval = 0; | 1203 | retval = 0; |
1201 | sdio.blkbits = blkbits; | 1204 | sdio.blkbits = blkbits; |