]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libblkid: squashfs: add more superblock fields
authorThomas Weißschuh <thomas@t-8ch.de>
Tue, 29 Nov 2022 02:41:37 +0000 (03:41 +0100)
committerThomas Weißschuh <thomas@t-8ch.de>
Tue, 29 Nov 2022 02:41:37 +0000 (03:41 +0100)
Also rename the existing fields to match the documentation.
We use the Version 4 fields because we will use those in a future
commit.

Field names taken from
https://dr-emann.github.io/squashfs/squashfs.html#_the_superblock

libblkid/src/superblocks/squashfs.c

index bd63fbd63cd0c7c1c8e9bf70c6e1ceeb6eb26276..8304c7d7904dbc4ac30062fcc05b9342160e555e 100644 (file)
 #include "superblocks.h"
 
 struct sqsh_super_block {
-       uint32_t        s_magic;
-       uint32_t        inodes;
-       uint32_t        bytes_used_2;
-       uint32_t        uid_start_2;
-       uint32_t        guid_start_2;
-       uint32_t        inode_table_start_2;
-       uint32_t        directory_table_start_2;
-       uint16_t        s_major;
-       uint16_t        s_minor;
+       uint32_t        magic;
+       uint32_t        inode_count;
+       uint32_t        mod_time;
+       uint32_t        block_size;
+       uint32_t        frag_count;
+       uint16_t        compressor;
+       uint16_t        block_log;
+       uint16_t        flags;
+       uint16_t        id_count;
+       uint16_t        version_major;
+       uint16_t        version_minor;
+       uint64_t        root_inode;
+       uint64_t        bytes_used;
+       uint64_t        id_table;
+       uint64_t        xattr_table;
+       uint64_t        inode_table;
+       uint64_t        dir_table;
+       uint64_t        frag_table;
+       uint64_t        export_table;
 } __attribute__((packed));
 
 static int probe_squashfs(blkid_probe pr, const struct blkid_idmag *mag)
@@ -38,8 +48,8 @@ static int probe_squashfs(blkid_probe pr, const struct blkid_idmag *mag)
        if (!sq)
                return errno ? -errno : 1;
 
-       vermaj = le16_to_cpu(sq->s_major);
-       vermin = le16_to_cpu(sq->s_minor);
+       vermaj = le16_to_cpu(sq->version_major);
+       vermin = le16_to_cpu(sq->version_minor);
        if (vermaj < 4)
                return 1;
 
@@ -60,12 +70,12 @@ static int probe_squashfs3(blkid_probe pr, const struct blkid_idmag *mag)
                return errno ? -errno : 1;
 
        if (strcmp(mag->magic, "sqsh") == 0) {
-               vermaj = be16_to_cpu(sq->s_major);
-               vermin = be16_to_cpu(sq->s_minor);
+               vermaj = be16_to_cpu(sq->version_major);
+               vermin = be16_to_cpu(sq->version_minor);
                endianness = BLKID_ENDIANNESS_BIG;
        } else {
-               vermaj = le16_to_cpu(sq->s_major);
-               vermin = le16_to_cpu(sq->s_minor);
+               vermaj = le16_to_cpu(sq->version_major);
+               vermin = le16_to_cpu(sq->version_minor);
                endianness = BLKID_ENDIANNESS_LITTLE;
        }