mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-17 22:05:08 +00:00
Unfortunately, we introduced some big-endian bugs during the last
merge window. Fortunately, Cai and Christian noticed before 3.9 shipped. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAABCAAGBQJRXG7FAAoJENNvdpvBGATw7GAQALbl5LxmVmGR6JRQzNoINP+H v29ulo1Kly4j2vt+3b0rXKv9axWl0C/dItFlC/9WqmwuB/0BptBKIVnkKH+6zu2v F+cO41gfpJo3ozcgsCrjvWfdkTWbjbPTQ4XiQDFILkwiB4R9KdpynKcVcjDY+gQE umwJpXwDDd+fdr4FNQiFFPqd8rCC8fEeClWTtOFx7UidKl8v18iZ0/OPiAr+jBOY rlcaZ9F8nmOJTwgriGbod4X827xEDj7Jwe7/C6oy/lKLOTLhaahgHPDW/l0O4KZA 4eJLj/5nxmYling4Y+rQvglVhNJ4LNv+IAXu5IpqRxosPYFnxQq+JYn8D5BlXifd 0/hG+BwTkhm4RLJ8uQvUxxglZNQEWeSuIma4dnZX3Xf9AzsvNW9x3Iilj3F7dhUS 6h9aeoYKv9y7GY9Out1P/UZYVi4HmB3jHiOcdTNCK4plQ3Sn2NYMw6RK1z4cXvE+ Pokc0a9KNyusNSI83tDtjRjan9NzsRbTggoGVf19RVoIVqIjkyXzUGasO/y+mKhp LENAjkABdbLB1Re8B/99KwgIloUTvxGcojLKzkEbgcobruvEwKvxIrTi+fgNOiu6 GqJOh8TwZtx3SGJujsyOSBBrdPfjPHReBWrX0VRHl/Wsd4RWCaDT8H1EdNONQ+to lQ+JvTZgFwQB2GABjNB6 =n1ir -----END PGP SIGNATURE----- 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: "Unfortunately, we introduced some big-endian bugs during the last merge window. Fortunately, Cai and Christian noticed before 3.9 shipped." * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: ext4: fix big-endian bugs which could cause fs corruptions
This commit is contained in:
commit
cbfa0e7204
@ -2999,20 +2999,23 @@ static int ext4_split_extent_at(handle_t *handle,
|
||||
if (split_flag & EXT4_EXT_DATA_VALID1) {
|
||||
err = ext4_ext_zeroout(inode, ex2);
|
||||
zero_ex.ee_block = ex2->ee_block;
|
||||
zero_ex.ee_len = ext4_ext_get_actual_len(ex2);
|
||||
zero_ex.ee_len = cpu_to_le16(
|
||||
ext4_ext_get_actual_len(ex2));
|
||||
ext4_ext_store_pblock(&zero_ex,
|
||||
ext4_ext_pblock(ex2));
|
||||
} else {
|
||||
err = ext4_ext_zeroout(inode, ex);
|
||||
zero_ex.ee_block = ex->ee_block;
|
||||
zero_ex.ee_len = ext4_ext_get_actual_len(ex);
|
||||
zero_ex.ee_len = cpu_to_le16(
|
||||
ext4_ext_get_actual_len(ex));
|
||||
ext4_ext_store_pblock(&zero_ex,
|
||||
ext4_ext_pblock(ex));
|
||||
}
|
||||
} else {
|
||||
err = ext4_ext_zeroout(inode, &orig_ex);
|
||||
zero_ex.ee_block = orig_ex.ee_block;
|
||||
zero_ex.ee_len = ext4_ext_get_actual_len(&orig_ex);
|
||||
zero_ex.ee_len = cpu_to_le16(
|
||||
ext4_ext_get_actual_len(&orig_ex));
|
||||
ext4_ext_store_pblock(&zero_ex,
|
||||
ext4_ext_pblock(&orig_ex));
|
||||
}
|
||||
@ -3272,7 +3275,7 @@ static int ext4_ext_convert_to_initialized(handle_t *handle,
|
||||
if (err)
|
||||
goto out;
|
||||
zero_ex.ee_block = ex->ee_block;
|
||||
zero_ex.ee_len = ext4_ext_get_actual_len(ex);
|
||||
zero_ex.ee_len = cpu_to_le16(ext4_ext_get_actual_len(ex));
|
||||
ext4_ext_store_pblock(&zero_ex, ext4_ext_pblock(ex));
|
||||
|
||||
err = ext4_ext_get_access(handle, inode, path + depth);
|
||||
|
@ -1539,9 +1539,9 @@ static int free_hole_blocks(handle_t *handle, struct inode *inode,
|
||||
blk = *i_data;
|
||||
if (level > 0) {
|
||||
ext4_lblk_t first2;
|
||||
bh = sb_bread(inode->i_sb, blk);
|
||||
bh = sb_bread(inode->i_sb, le32_to_cpu(blk));
|
||||
if (!bh) {
|
||||
EXT4_ERROR_INODE_BLOCK(inode, blk,
|
||||
EXT4_ERROR_INODE_BLOCK(inode, le32_to_cpu(blk),
|
||||
"Read failure");
|
||||
return -EIO;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user