diff options
author | Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> | 2007-10-16 18:38:25 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2007-10-17 18:50:03 -0400 |
commit | b377611d11aba5251264b487dd4485ddb80260f1 (patch) | |
tree | a92c547ee2e426dacfb7248c146ae7a974d55544 | |
parent | 308ba3ece7db82e8b8d32d6962e4d12e09c5aa41 (diff) |
ext4: Convert ext4_extent.ee_start to ext4_extent.ee_start_lo
Convert ext4_extent.ee_start to ext4_extent.ee_start_lo
This helps in finding BUGs due to direct partial access of
these split 48 bit values
Also fix direct partial access in ext4 code
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
-rw-r--r-- | fs/ext4/extents.c | 8 | ||||
-rw-r--r-- | include/linux/ext4_fs_extents.h | 2 |
2 files changed, 4 insertions, 6 deletions
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 2be404f68a76..c03056aafcdb 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c | |||
@@ -52,7 +52,7 @@ static ext4_fsblk_t ext_pblock(struct ext4_extent *ex) | |||
52 | { | 52 | { |
53 | ext4_fsblk_t block; | 53 | ext4_fsblk_t block; |
54 | 54 | ||
55 | block = le32_to_cpu(ex->ee_start); | 55 | block = le32_to_cpu(ex->ee_start_lo); |
56 | block |= ((ext4_fsblk_t) le16_to_cpu(ex->ee_start_hi) << 31) << 1; | 56 | block |= ((ext4_fsblk_t) le16_to_cpu(ex->ee_start_hi) << 31) << 1; |
57 | return block; | 57 | return block; |
58 | } | 58 | } |
@@ -77,7 +77,7 @@ static ext4_fsblk_t idx_pblock(struct ext4_extent_idx *ix) | |||
77 | */ | 77 | */ |
78 | static void ext4_ext_store_pblock(struct ext4_extent *ex, ext4_fsblk_t pb) | 78 | static void ext4_ext_store_pblock(struct ext4_extent *ex, ext4_fsblk_t pb) |
79 | { | 79 | { |
80 | ex->ee_start = cpu_to_le32((unsigned long) (pb & 0xffffffff)); | 80 | ex->ee_start_lo = cpu_to_le32((unsigned long) (pb & 0xffffffff)); |
81 | ex->ee_start_hi = cpu_to_le16((unsigned long) ((pb >> 31) >> 1) & 0xffff); | 81 | ex->ee_start_hi = cpu_to_le16((unsigned long) ((pb >> 31) >> 1) & 0xffff); |
82 | } | 82 | } |
83 | 83 | ||
@@ -1409,8 +1409,7 @@ has_space: | |||
1409 | eh->eh_entries = cpu_to_le16(le16_to_cpu(eh->eh_entries)+1); | 1409 | eh->eh_entries = cpu_to_le16(le16_to_cpu(eh->eh_entries)+1); |
1410 | nearex = path[depth].p_ext; | 1410 | nearex = path[depth].p_ext; |
1411 | nearex->ee_block = newext->ee_block; | 1411 | nearex->ee_block = newext->ee_block; |
1412 | nearex->ee_start = newext->ee_start; | 1412 | ext4_ext_store_pblock(nearex, ext_pblock(newext)); |
1413 | nearex->ee_start_hi = newext->ee_start_hi; | ||
1414 | nearex->ee_len = newext->ee_len; | 1413 | nearex->ee_len = newext->ee_len; |
1415 | 1414 | ||
1416 | merge: | 1415 | merge: |
@@ -2177,7 +2176,6 @@ int ext4_ext_convert_to_initialized(handle_t *handle, struct inode *inode, | |||
2177 | } | 2176 | } |
2178 | /* ex2: iblock to iblock + maxblocks-1 : initialised */ | 2177 | /* ex2: iblock to iblock + maxblocks-1 : initialised */ |
2179 | ex2->ee_block = cpu_to_le32(iblock); | 2178 | ex2->ee_block = cpu_to_le32(iblock); |
2180 | ex2->ee_start = cpu_to_le32(newblock); | ||
2181 | ext4_ext_store_pblock(ex2, newblock); | 2179 | ext4_ext_store_pblock(ex2, newblock); |
2182 | ex2->ee_len = cpu_to_le16(allocated); | 2180 | ex2->ee_len = cpu_to_le16(allocated); |
2183 | if (ex2 != ex) | 2181 | if (ex2 != ex) |
diff --git a/include/linux/ext4_fs_extents.h b/include/linux/ext4_fs_extents.h index 81406f3655d4..cb2dfbbc969a 100644 --- a/include/linux/ext4_fs_extents.h +++ b/include/linux/ext4_fs_extents.h | |||
@@ -74,7 +74,7 @@ struct ext4_extent { | |||
74 | __le32 ee_block; /* first logical block extent covers */ | 74 | __le32 ee_block; /* first logical block extent covers */ |
75 | __le16 ee_len; /* number of blocks covered by extent */ | 75 | __le16 ee_len; /* number of blocks covered by extent */ |
76 | __le16 ee_start_hi; /* high 16 bits of physical block */ | 76 | __le16 ee_start_hi; /* high 16 bits of physical block */ |
77 | __le32 ee_start; /* low 32 bits of physical block */ | 77 | __le32 ee_start_lo; /* low 32 bits of physical block */ |
78 | }; | 78 | }; |
79 | 79 | ||
80 | /* | 80 | /* |