2010/3/5 Eric Sandeen <sandeen@xxxxxxxxxx> > > > Thank you for pointing this out. I had not checked s_maxbytes. > > Appearently s_maxbytes can be 1<<(32 + s_blocksize_bits) - 1. Therefore > > the number of blocks in a file cannot be stored in a 32bit integer. > > For extent-based files it had better be.... > > struct ext4_extent { > __le32 ee_block; /* first logical block extent covers */ > __le16 ee_len; /* number of blocks covered by extent */ > > The start block can't be more than 32 bits; this essentially limits > the file size / maximum logical block to 2^32 blocks right? > > s_maxbytes comes out to 17592186044415 > > 2^32 4k blocks is 17592186044416 bytes, or max byte offset 17592186044415 > > What am I missing? (confusion between max byte count and max > byte offset, perhaps?) > Yes. The block offset has the maximum value 1<<32 - 1. However the number of blocks may be 1<<32. -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html