mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-09 06:41:06 -04:00
Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Pull ext4 fixes from Ted Ts'o: "Fix a clang build regression and an potential xattr corruption bug" * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: ext4: add missing xattr hash update ext4: fix clang build regression
This commit is contained in:
@@ -2300,7 +2300,7 @@ static int ext4_mb_seq_groups_show(struct seq_file *seq, void *v)
|
||||
EXT4_MAX_BLOCK_LOG_SIZE);
|
||||
struct sg {
|
||||
struct ext4_group_info info;
|
||||
ext4_grpblk_t counters[blocksize_bits + 2];
|
||||
ext4_grpblk_t counters[EXT4_MAX_BLOCK_LOG_SIZE + 2];
|
||||
} sg;
|
||||
|
||||
group--;
|
||||
@@ -2309,6 +2309,9 @@ static int ext4_mb_seq_groups_show(struct seq_file *seq, void *v)
|
||||
" 2^0 2^1 2^2 2^3 2^4 2^5 2^6 "
|
||||
" 2^7 2^8 2^9 2^10 2^11 2^12 2^13 ]\n");
|
||||
|
||||
i = (blocksize_bits + 2) * sizeof(sg.info.bb_counters[0]) +
|
||||
sizeof(struct ext4_group_info);
|
||||
|
||||
grinfo = ext4_get_group_info(sb, group);
|
||||
/* Load the group info in memory only if not already loaded. */
|
||||
if (unlikely(EXT4_MB_GRP_NEED_INIT(grinfo))) {
|
||||
@@ -2320,7 +2323,7 @@ static int ext4_mb_seq_groups_show(struct seq_file *seq, void *v)
|
||||
buddy_loaded = 1;
|
||||
}
|
||||
|
||||
memcpy(&sg, ext4_get_group_info(sb, group), sizeof(sg));
|
||||
memcpy(&sg, ext4_get_group_info(sb, group), i);
|
||||
|
||||
if (buddy_loaded)
|
||||
ext4_mb_unload_buddy(&e4b);
|
||||
|
||||
@@ -1543,7 +1543,7 @@ static int ext4_xattr_set_entry(struct ext4_xattr_info *i,
|
||||
/* Clear padding bytes. */
|
||||
memset(val + i->value_len, 0, new_size - i->value_len);
|
||||
}
|
||||
return 0;
|
||||
goto update_hash;
|
||||
}
|
||||
|
||||
/* Compute min_offs and last. */
|
||||
@@ -1707,6 +1707,7 @@ static int ext4_xattr_set_entry(struct ext4_xattr_info *i,
|
||||
here->e_value_size = cpu_to_le32(i->value_len);
|
||||
}
|
||||
|
||||
update_hash:
|
||||
if (i->value) {
|
||||
__le32 hash = 0;
|
||||
|
||||
@@ -1725,7 +1726,8 @@ static int ext4_xattr_set_entry(struct ext4_xattr_info *i,
|
||||
here->e_name_len,
|
||||
&crc32c_hash, 1);
|
||||
} else if (is_block) {
|
||||
__le32 *value = s->base + min_offs - new_size;
|
||||
__le32 *value = s->base + le16_to_cpu(
|
||||
here->e_value_offs);
|
||||
|
||||
hash = ext4_xattr_hash_entry(here->e_name,
|
||||
here->e_name_len, value,
|
||||
|
||||
Reference in New Issue
Block a user