Searched hist:"441 c850857148935babe000fc2ba1455fe54a6a9" (Results 1 – 2 of 2) sorted by relevance
/openbmc/linux/fs/ext4/ |
H A D | ext4_jbd2.h | diff 441c850857148935babe000fc2ba1455fe54a6a9 Sat Aug 13 10:25:18 CDT 2011 Curt Wohlgemuth <curtw@google.com> ext4: Fix ext4_should_writeback_data() for no-journal mode
ext4_should_writeback_data() had an incorrect sequence of tests to determine if it should return 0 or 1: in particular, even in no-journal mode, 0 was being returned for a non-regular-file inode.
This meant that, in non-journal mode, we would use ext4_journalled_aops for directories, symlinks, and other non-regular files. However, calling journalled aop callbacks when there is no valid handle, can cause problems.
This would cause a kernel crash with Jan Kara's commit 2d859db3e4 ("ext4: fix data corruption in inodes with journalled data"), because we now dereference 'handle' in ext4_journalled_write_end().
I also added BUG_ONs to check for a valid handle in the obviously journal-only aops callbacks.
I tested this running xfstests with a scratch device in these modes:
- no-journal - data=ordered - data=writeback - data=journal
All work fine; the data=journal run has many failures and a crash in xfstests 074, but this is no different from a vanilla kernel.
Signed-off-by: Curt Wohlgemuth <curtw@google.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Cc: stable@kernel.org
|
H A D | inode.c | diff 441c850857148935babe000fc2ba1455fe54a6a9 Sat Aug 13 10:25:18 CDT 2011 Curt Wohlgemuth <curtw@google.com> ext4: Fix ext4_should_writeback_data() for no-journal mode
ext4_should_writeback_data() had an incorrect sequence of tests to determine if it should return 0 or 1: in particular, even in no-journal mode, 0 was being returned for a non-regular-file inode.
This meant that, in non-journal mode, we would use ext4_journalled_aops for directories, symlinks, and other non-regular files. However, calling journalled aop callbacks when there is no valid handle, can cause problems.
This would cause a kernel crash with Jan Kara's commit 2d859db3e4 ("ext4: fix data corruption in inodes with journalled data"), because we now dereference 'handle' in ext4_journalled_write_end().
I also added BUG_ONs to check for a valid handle in the obviously journal-only aops callbacks.
I tested this running xfstests with a scratch device in these modes:
- no-journal - data=ordered - data=writeback - data=journal
All work fine; the data=journal run has many failures and a crash in xfstests 074, but this is no different from a vanilla kernel.
Signed-off-by: Curt Wohlgemuth <curtw@google.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Cc: stable@kernel.org
|