[Ocfs2-devel] [PATCH] ocfs2: fix null handle in ocfs2_write_zero_page

Junxiao Bi junxiao.bi at oracle.com
Fri Sep 26 23:52:58 PDT 2014


ocfs2_zero_start_ordered_transaction() will return NULL handle
in data writeback mode, this should be checked and bypass journal
ops, or kernel panic will be triggered.

Signed-off-by: Junxiao Bi <junxiao.bi at oracle.com>
Cc: Alex Chen <alex.chen at huawei.com>
---
 fs/ocfs2/file.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index c534cb0..682732f 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -833,14 +833,17 @@ static int ocfs2_write_zero_page(struct inode *inode, u64 abs_from,
 	di->i_mtime = di->i_ctime = cpu_to_le64(inode->i_mtime.tv_sec);
 	di->i_ctime_nsec = cpu_to_le32(inode->i_mtime.tv_nsec);
 	di->i_mtime_nsec = di->i_ctime_nsec;
-	ocfs2_journal_dirty(handle, di_bh);
-	ocfs2_update_inode_fsync_trans(handle, inode, 1);
+	if (handle) {
+		ocfs2_journal_dirty(handle, di_bh);
+		ocfs2_update_inode_fsync_trans(handle, inode, 1);
+	}
 
 out_unlock:
 	unlock_page(page);
 	page_cache_release(page);
 out_commit_trans:
-	ocfs2_commit_trans(OCFS2_SB(inode->i_sb), handle);
+	if (handle)
+		ocfs2_commit_trans(OCFS2_SB(inode->i_sb), handle);
 out:
 	return ret;
 }
-- 
1.7.9.5




More information about the Ocfs2-devel mailing list