1. 29 Jan, 2008 5 commits
    • Avantika Mathur's avatar
      ext4: add ext4_group_t, and change all group variables to this type. · fd2d4291
      Avantika Mathur authored
      In many places variables for block group are of type int, which limits the
      maximum number of block groups to 2^31.  Each block group can have up to
      2^15 blocks, with a 4K block size,  and the max filesystem size is limited to
      2^31 * (2^15 * 2^12) = 2^58  -- or 256 PB
      
      This patch introduces a new type ext4_group_t, of type unsigned long, to
      represent block group numbers in ext4.
      All occurrences of block group variables are converted to type ext4_group_t.
      Signed-off-by: default avatarAvantika Mathur <mathur@us.ibm.com>
      fd2d4291
    • Eric Sandeen's avatar
      ext4 extents: remove unneeded casts · bba90743
      Eric Sandeen authored
      There are many casts in extents.c which are not needed,
      as the variables are already the type of the cast, or
      are being promoted for no particular reason in printk's.
      Signed-off-by: default avatarEric Sandeen <sandeen@redhat.com>
      Signed-off-by: default avatarMingming Cao <cmm@us.ibm.com>
      bba90743
    • Aneesh Kumar K.V's avatar
      ext4: Introduce ext4_lblk_t · 725d26d3
      Aneesh Kumar K.V authored
      This patch adds a new data type ext4_lblk_t to represent
      the logical file blocks.
      
      This is the preparatory patch to support large files in ext4
      The follow up patch with convert the ext4_inode i_blocks to
      represent the number of blocks in file system block size. This
      changes makes it possible to have a block number 2**32 -1 which
      will result in overflow if the block number is represented by
      signed long. This patch convert all the block number to type
      ext4_lblk_t which is typedef to __u32
      
      Also remove dead code ext4_ext_walk_space
      Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: default avatarMingming Cao <cmm@us.ibm.com>
      Signed-off-by: default avatarEric Sandeen <sandeen@redhat.com>
      725d26d3
    • Jan Kara's avatar
      ext4: Avoid rec_len overflow with 64KB block size · a72d7f83
      Jan Kara authored
      With 64KB blocksize, a directory entry can have size 64KB which does not fit
      into 16 bits we have for entry lenght. So we store 0xffff instead and convert
      value when read from / written to disk. The patch also converts some places
      to use ext4_next_entry() when we are changing them anyway.
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarMingming Cao <cmm@us.ibm.com>
      a72d7f83
    • Takashi Sato's avatar
      ext4: Support large blocksize up to PAGESIZE · afc7cbca
      Takashi Sato authored
      This patch set supports large block size(>4k, <=64k) in ext4,
      just enlarging the block size limit. But it is NOT possible to have 64kB
      blocksize on ext4 without some changes to the directory handling
      code.  The reason is that an empty 64kB directory block would have a
      rec_len == (__u16)2^16 == 0, and this would cause an error to be hit in
      the filesystem.  The proposed solution is treat 64k rec_len
      with a an impossible value like rec_len = 0xffff to handle this.
      
      The Patch-set consists of the following 2 patches.
        [1/2]  ext4: enlarge blocksize
               - Allow blocksize up to pagesize
      
        [2/2]  ext4: fix rec_len overflow
               - prevent rec_len from overflow with 64KB blocksize
      
      Now on 64k page ppc64 box runs with this patch set we could create a 64k
      block size ext4dev, and able to handle empty directory block.
      Signed-off-by: default avatarTakashi Sato <sho@tnes.nec.co.jp>
      Signed-off-by: default avatarMingming Cao <cmm@us.ibm.com>
      afc7cbca
  2. 28 Jan, 2008 35 commits