diff options
Diffstat (limited to 'fs/direct-io.c')
-rw-r--r-- | fs/direct-io.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/direct-io.c b/fs/direct-io.c index 722d17c88edb..41a0e97252ae 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c | |||
@@ -325,8 +325,8 @@ static ssize_t dio_complete(struct dio *dio, ssize_t ret, unsigned int flags) | |||
325 | */ | 325 | */ |
326 | dio->iocb->ki_pos += transferred; | 326 | dio->iocb->ki_pos += transferred; |
327 | 327 | ||
328 | if (dio->op == REQ_OP_WRITE) | 328 | if (ret > 0 && dio->op == REQ_OP_WRITE) |
329 | ret = generic_write_sync(dio->iocb, transferred); | 329 | ret = generic_write_sync(dio->iocb, ret); |
330 | dio->iocb->ki_complete(dio->iocb, ret, 0); | 330 | dio->iocb->ki_complete(dio->iocb, ret, 0); |
331 | } | 331 | } |
332 | 332 | ||