On Mon, Nov 21, 2011 at 11:06 PM, Davidlohr Bueso <dave@xxxxxxx> wrote: > > Most of the work I did on supporting v3 was based on the kernel's > implementation and the mkfs shipped with minix (by ast), so a lot of > what you say makes sense. I've taken a quick look at the changes and > most are bugs are pretty straightforward, except: > > - mkfs.minix: The total number of zones is limited to 65536 only on V1 > filesystems > > Unless I'm missing something, this doesn't really change any logic. Sorry, probably the commit message is not very well written... However this commit fixes a very nasty bug, let me explain why.... Look at what the code did *before* my patch: if (fs_version == 3) magic = MINIX3_SUPER_MAGIC; if (fs_version == 2) { if (namelen == 14) magic = MINIX2_SUPER_MAGIC; else magic = MINIX2_SUPER_MAGIC2; } else { if (BLOCKS > MINIX_MAX_INODES) BLOCKS = MINIX_MAX_INODES; } Can you see what happens if fs_version is == 3 ? The total number of blocks is restricted to a maximum of 65536 both with V1 and V3 filesystems, this is wrong because the total number of blocks in V3 is a 32 bit number (the same of V2). With this realization, it is really simple to fix the bug, and this is exactly what I did: if (fs_version == 3) magic = MINIX3_SUPER_MAGIC; - if (fs_version == 2) { +else if (fs_version == 2) { if (namelen == 14) magic = MINIX2_SUPER_MAGIC; else magic = MINIX2_SUPER_MAGIC2; } else { if (BLOCKS > MINIX_MAX_INODES) BLOCKS = MINIX_MAX_INODES; } > > I'll give the changes a proper test over the weekend. Ok, thanks. In case you accept the changes I did, this is the github repository link with read-only access from where you can pull the changes from: git://github.com/maurizio-lombardi/util-linux.git Regards, -- -------------------- Maurizio Lombardi -- To unsubscribe from this list: send the line "unsubscribe util-linux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html