On 2011-09-15, at 7:47 AM, Amir Goldstein wrote: > On Thu, Sep 15, 2011 at 4:16 PM, Ted Ts'o <tytso@xxxxxxx> wrote: >> On Thu, Sep 15, 2011 at 09:50:20AM +0300, Amir Goldstein wrote: >>> -#define EXT2_FEATURE_COMPAT_EXCLUDE_INODE 0x0080 >>> +/* #define EXT2_FEATURE_COMPAT_EXCLUDE_INODE 0x0080 not used */ >>> +#define EXT2_FEATURE_COMPAT_EXCLUDE_BITMAP 0x0100 >> >> Why this change? Is it because you're already using 0x0100 in >> shipping systems? > > I am using 0x80 in shipping systems and it signifies something a bit > different then the proposed 0x100. > > EXCLUDE_INODE means that special inode 9 is used to reference exclude > bitmap blocks. EXCLUDE_BITMAP means that exclude bitmap blocks are > referenced from group descriptors. > With this distinction it will be easier for me to make the migration. In that light, why not continue to use an inode to map the exclude bitmap blocks, where the bitmap offset is (group * blocksize), instead of explicitly listing all of the blocks in the group descriptor? This is how the buddy bitmap works in memory only, but it could be done for the exclude bitmap on disk. The advantage of this is that it would allow the 32-bit bitmap checksums to both fit into the group descriptor. The disadvantage is that there is a chance this inode would become corrupted and the location of the exclude bitmaps is lost. I don't know how serious that is (e.g. if e2fsck could fix it by regenerating the bitmaps, or just deleting the snapshot). Cheers, Andreas -- 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