diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
index 64b11d90eca688fbce4e81b0e503c0e9ffd44197..f04914cc19a43f1a5bf0c882ee671435c2cd31de 100644
--- a/fs/ocfs2/aops.c
+++ b/fs/ocfs2/aops.c
@@ -864,6 +864,7 @@ static ssize_t ocfs2_direct_IO_write(struct kiocb *iocb,
 		is_overwrite = ocfs2_is_overwrite(osb, inode, offset);
 		if (is_overwrite < 0) {
 			mlog_errno(is_overwrite);
+			ret = is_overwrite;
 			ocfs2_inode_unlock(inode, 1);
 			goto clean_orphan;
 		}