lkml.org 
[lkml]   [2007]   [Oct]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] ext4: Convert ext4_extent.ee_start to ext4_extent.ee_start_lo
    Date
    From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>

    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>
    ---
    fs/ext4/extents.c | 8 +++-----
    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 2be404f..c03056a 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)
    {
    ext4_fsblk_t block;

    - block = le32_to_cpu(ex->ee_start);
    + block = le32_to_cpu(ex->ee_start_lo);
    block |= ((ext4_fsblk_t) le16_to_cpu(ex->ee_start_hi) << 31) << 1;
    return block;
    }
    @@ -77,7 +77,7 @@ static ext4_fsblk_t idx_pblock(struct ext4_extent_idx *ix)
    */
    static void ext4_ext_store_pblock(struct ext4_extent *ex, ext4_fsblk_t pb)
    {
    - ex->ee_start = cpu_to_le32((unsigned long) (pb & 0xffffffff));
    + ex->ee_start_lo = cpu_to_le32((unsigned long) (pb & 0xffffffff));
    ex->ee_start_hi = cpu_to_le16((unsigned long) ((pb >> 31) >> 1) & 0xffff);
    }

    @@ -1409,8 +1409,7 @@ has_space:
    eh->eh_entries = cpu_to_le16(le16_to_cpu(eh->eh_entries)+1);
    nearex = path[depth].p_ext;
    nearex->ee_block = newext->ee_block;
    - nearex->ee_start = newext->ee_start;
    - nearex->ee_start_hi = newext->ee_start_hi;
    + ext4_ext_store_pblock(nearex, ext_pblock(newext));
    nearex->ee_len = newext->ee_len;

    merge:
    @@ -2177,7 +2176,6 @@ int ext4_ext_convert_to_initialized(handle_t *handle, struct inode *inode,
    }
    /* ex2: iblock to iblock + maxblocks-1 : initialised */
    ex2->ee_block = cpu_to_le32(iblock);
    - ex2->ee_start = cpu_to_le32(newblock);
    ext4_ext_store_pblock(ex2, newblock);
    ex2->ee_len = cpu_to_le16(allocated);
    if (ex2 != ex)
    diff --git a/include/linux/ext4_fs_extents.h b/include/linux/ext4_fs_extents.h
    index 81406f3..cb2dfbb 100644
    --- a/include/linux/ext4_fs_extents.h
    +++ b/include/linux/ext4_fs_extents.h
    @@ -74,7 +74,7 @@ struct ext4_extent {
    __le32 ee_block; /* first logical block extent covers */
    __le16 ee_len; /* number of blocks covered by extent */
    __le16 ee_start_hi; /* high 16 bits of physical block */
    - __le32 ee_start; /* low 32 bits of physical block */
    + __le32 ee_start_lo; /* low 32 bits of physical block */
    };

    /*
    --
    1.5.3.2.81.g17ed
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-10-04 07:59    [W:0.024 / U:0.324 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site