aboutsummaryrefslogtreecommitdiffstats
path: root/fs/dax.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/dax.c')
-rw-r--r--fs/dax.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/dax.c b/fs/dax.c
index bbb2ad783770..90322eb7498c 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -286,8 +286,13 @@ ssize_t dax_do_io(struct kiocb *iocb, struct inode *inode,
286 if ((flags & DIO_LOCKING) && iov_iter_rw(iter) == READ) 286 if ((flags & DIO_LOCKING) && iov_iter_rw(iter) == READ)
287 inode_unlock(inode); 287 inode_unlock(inode);
288 288
289 if ((retval > 0) && end_io) 289 if (end_io) {
290 end_io(iocb, pos, retval, bh.b_private); 290 int err;
291
292 err = end_io(iocb, pos, retval, bh.b_private);
293 if (err)
294 retval = err;
295 }
291 296
292 if (!(flags & DIO_SKIP_DIO_COUNT)) 297 if (!(flags & DIO_SKIP_DIO_COUNT))
293 inode_dio_end(inode); 298 inode_dio_end(inode);