From: Thomas Weißschuh Date: Wed, 14 Dec 2022 00:30:25 +0000 (+0000) Subject: libblkid: swap: report fsblocksize X-Git-Tag: v2.39-rc1~365^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7bffba2b90ac620caae08bbeea23fb3d5673e516;p=thirdparty%2Futil-linux.git libblkid: swap: report fsblocksize --- diff --git a/libblkid/src/superblocks/swap.c b/libblkid/src/superblocks/swap.c index 6a05c257b6..0d130ae55b 100644 --- a/libblkid/src/superblocks/swap.c +++ b/libblkid/src/superblocks/swap.c @@ -37,14 +37,19 @@ struct swap_header_v1_2 { #define TOI_MAGIC_STRLEN (sizeof(TOI_MAGIC_STRING) - 1) static void swap_set_info_swap1(blkid_probe pr, + const struct blkid_idmag *mag, const struct swap_header_v1_2 *hdr) { enum BLKID_ENDIANNESS endianness = le32_to_cpu(hdr->version) == 1 ? BLKID_ENDIANNESS_LITTLE : BLKID_ENDIANNESS_BIG; blkid_probe_set_fsendianness(pr, endianness); + + uint32_t pagesize = mag->sboff + mag->len; + blkid_probe_set_fsblocksize(pr, pagesize); } -static int swap_set_info(blkid_probe pr, const char *version) +static int swap_set_info(blkid_probe pr, const struct blkid_idmag *mag, + const char *version) { struct swap_header_v1_2 *hdr; @@ -64,7 +69,7 @@ static int swap_set_info(blkid_probe pr, const char *version) DBG(LOWPROBE, ul_debug("not set last swap page")); return 1; } - swap_set_info_swap1(pr, hdr); + swap_set_info_swap1(pr, mag, hdr); } /* arbitrary sanity check.. is there any garbage down there? */ @@ -103,7 +108,7 @@ static int probe_swap(blkid_probe pr, const struct blkid_idmag *mag) } if (!memcmp(mag->magic, "SWAPSPACE2", mag->len)) - return swap_set_info(pr, "1"); + return swap_set_info(pr, mag, "1"); return 1; } @@ -113,15 +118,15 @@ static int probe_swsuspend(blkid_probe pr, const struct blkid_idmag *mag) if (!mag) return 1; if (!memcmp(mag->magic, "S1SUSPEND", mag->len)) - return swap_set_info(pr, "s1suspend"); + return swap_set_info(pr, mag, "s1suspend"); if (!memcmp(mag->magic, "S2SUSPEND", mag->len)) - return swap_set_info(pr, "s2suspend"); + return swap_set_info(pr, mag, "s2suspend"); if (!memcmp(mag->magic, "ULSUSPEND", mag->len)) - return swap_set_info(pr, "ulsuspend"); + return swap_set_info(pr, mag, "ulsuspend"); if (!memcmp(mag->magic, TOI_MAGIC_STRING, TOI_MAGIC_STRLEN)) - return swap_set_info(pr, "tuxonice"); + return swap_set_info(pr, mag, "tuxonice"); if (!memcmp(mag->magic, "LINHIB0001", mag->len)) - return swap_set_info(pr, "linhib0001"); + return swap_set_info(pr, mag, "linhib0001"); return 1; /* no signature detected */ } diff --git a/tests/expected/blkid/low-probe-swap1 b/tests/expected/blkid/low-probe-swap1 index 3565ce236c..c37eb2c466 100644 --- a/tests/expected/blkid/low-probe-swap1 +++ b/tests/expected/blkid/low-probe-swap1 @@ -1,4 +1,5 @@ ID_FS_ENDIANNESS=LITTLE +ID_FS_FSBLOCKSIZE=4096 ID_FS_LABEL=SWAP-TEST ID_FS_LABEL_ENC=SWAP-TEST ID_FS_TYPE=swap