jbd2: Fix oops in jbd2_journal_file_inode()
authorJan Kara <jack@suse.cz>
Sat, 17 Aug 2013 01:19:41 +0000 (21:19 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sat, 17 Aug 2013 01:19:41 +0000 (21:19 -0400)
commita361293f5fedea0016a10599f409631a15d47ee7
tree63f69548f7479039312c6f61dcadeec9068c80d0
parent91aa11fae1cf8c2fd67be0609692ea9741cdcc43
jbd2: Fix oops in jbd2_journal_file_inode()

Commit 0713ed0cde76438d05849f1537d3aab46e099475 added
jbd2_journal_file_inode() call into ext4_block_zero_page_range().
However that function gets called from truncate path and thus inode
needn't have jinode attached - that happens in ext4_file_open() but
the file needn't be ever open since mount. Calling
jbd2_journal_file_inode() without jinode attached results in the oops.

We fix the problem by attaching jinode to inode also in ext4_truncate()
and ext4_punch_hole() when we are going to zero out partial blocks.

Reported-by: majianpeng <majianpeng@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/ext4.h
fs/ext4/file.c
fs/ext4/inode.c