Browse Source

ocfs2: always unlock when completing dio writes

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>
Darrick J. Wong 8 years ago
parent
commit
dbf896fc28
1 changed files with 1 additions and 4 deletions
  1. 1 4
      fs/ocfs2/aops.c

+ 1 - 4
fs/ocfs2/aops.c

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