]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
mkfs.minix: inode numbers are 32-bit wide in V3 filesystems
authorMaurizio Lombardi <m.lombardi85@gmail.com>
Mon, 21 Nov 2011 18:52:03 +0000 (19:52 +0100)
committerMaurizio Lombardi <m.lombardi85@gmail.com>
Mon, 21 Nov 2011 18:52:03 +0000 (19:52 +0100)
disk-utils/mkfs.minix.c

index 826a7e9b78837c3eb4c22d6ad47b99a5cc2323c8..502c42069713eda311ce71282725a83243cfe64a 100644 (file)
@@ -729,14 +729,25 @@ int main(int argc, char ** argv) {
        }
        check_mount();          /* is it already mounted? */
        tmp = root_block;
-       *(short *)tmp = 1;
-       strcpy(tmp+2,".");
-       tmp += dirsize;
-       *(short *)tmp = 1;
-       strcpy(tmp+2,"..");
-       tmp += dirsize;
-       *(short *)tmp = 2;
-       strcpy(tmp+2,".badblocks");
+       if (fs_version == 3) {
+               *(uint32_t *)tmp = 1;
+               strcpy(tmp+4,".");
+               tmp += dirsize;
+               *(uint32_t *)tmp = 1;
+               strcpy(tmp+4,"..");
+               tmp += dirsize;
+               *(uint32_t *)tmp = 2;
+               strcpy(tmp+4, ".badblocks");
+       } else {
+               *(uint16_t *)tmp = 1;
+               strcpy(tmp+2,".");
+               tmp += dirsize;
+               *(uint16_t *)tmp = 1;
+               strcpy(tmp+2,"..");
+               tmp += dirsize;
+               *(uint16_t *)tmp = 2;
+               strcpy(tmp+2, ".badblocks");
+       }
        if (stat(device_name, &statbuf) < 0)
                err(MKFS_ERROR, _("%s: stat failed"), device_name);
        if (S_ISBLK(statbuf.st_mode))