diff options
author | Dmitry Monakhov <dmonakhov@openvz.org> | 2014-10-13 03:36:16 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2014-10-13 03:36:16 -0400 |
commit | 9aa5d32ba269bec0e7eaba2697a986a7b0bc8528 (patch) | |
tree | 3702c0a5ff64152ecd33d7469164832a7811f28f /fs/ext4/inline.c | |
parent | 65dd8327eb055a393a413a2214f70a9a10ff7ad6 (diff) |
ext4: Replace open coded mdata csum feature to helper function
Besides the fact that this replacement improves code readability
it also protects from errors caused direct EXT4_S(sb)->s_es manipulation
which may result attempt to use uninitialized csum machinery.
#Testcase_BEGIN
IMG=/dev/ram0
MNT=/mnt
mkfs.ext4 $IMG
mount $IMG $MNT
#Enable feature directly on disk, on mounted fs
tune2fs -O metadata_csum $IMG
# Provoke metadata update, likey result in OOPS
touch $MNT/test
umount $MNT
#Testcase_END
# Replacement script
@@
expression E;
@@
- EXT4_HAS_RO_COMPAT_FEATURE(E, EXT4_FEATURE_RO_COMPAT_METADATA_CSUM)
+ ext4_has_metadata_csum(E)
https://bugzilla.kernel.org/show_bug.cgi?id=82201
Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@vger.kernel.org
Diffstat (limited to 'fs/ext4/inline.c')
-rw-r--r-- | fs/ext4/inline.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index 378aadf5e6db..3ea62695abce 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c | |||
@@ -1128,8 +1128,7 @@ static int ext4_finish_convert_inline_dir(handle_t *handle, | |||
1128 | memcpy((void *)de, buf + EXT4_INLINE_DOTDOT_SIZE, | 1128 | memcpy((void *)de, buf + EXT4_INLINE_DOTDOT_SIZE, |
1129 | inline_size - EXT4_INLINE_DOTDOT_SIZE); | 1129 | inline_size - EXT4_INLINE_DOTDOT_SIZE); |
1130 | 1130 | ||
1131 | if (EXT4_HAS_RO_COMPAT_FEATURE(inode->i_sb, | 1131 | if (ext4_has_metadata_csum(inode->i_sb)) |
1132 | EXT4_FEATURE_RO_COMPAT_METADATA_CSUM)) | ||
1133 | csum_size = sizeof(struct ext4_dir_entry_tail); | 1132 | csum_size = sizeof(struct ext4_dir_entry_tail); |
1134 | 1133 | ||
1135 | inode->i_size = inode->i_sb->s_blocksize; | 1134 | inode->i_size = inode->i_sb->s_blocksize; |