ocfs2: always unlock when completing dio writes
authorDarrick J. Wong <darrick.wong@oracle.com>
Fri, 2 Dec 2016 00:31:14 +0000 (16:31 -0800)
committerDarrick J. Wong <darrick.wong@oracle.com>
Sat, 10 Dec 2016 20:39:45 +0000 (12:39 -0800)
Always unlock the inode when completing dio writes, even if an error
has occurrred.  The caller already checks the inode and unlocks it
if needed, so we might as well reduce contention.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/ocfs2/aops.c

index 136a49cabc12c2e102920aff6f5e8973d94a0388..3c531f108a213c524b58f88cbbace442b596a924 100644 (file)
@@ -2392,13 +2392,10 @@ static int ocfs2_dio_end_io(struct kiocb *iocb,
        int level;
        int ret = 0;
 
-       if (bytes <= 0)
-               return 0;
-
        /* this io's submitter should not have unlocked this before we could */
        BUG_ON(!ocfs2_iocb_is_rw_locked(iocb));
 
-       if (private)
+       if (bytes > 0 && private)
                ret = ocfs2_dio_end_io_write(inode, private, offset, bytes);
 
        ocfs2_iocb_clear_rw_locked(iocb);