From fd688b6cf3b32087404b00a0308c64d4f9c98a9e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Vladimir=20=27=CF=86-coder/phcoder=27=20Serbinenko?= Date: Fri, 4 May 2012 11:48:07 +0200 Subject: [PATCH] libblkid: accept small blocks for NTFS and Reiserfs in blkid libblkid is restrictive as to what it accepts as valid reiserfs or valid NTFS. One can mkfs an NTFS with 256B sectors and it's supported by ntfs-3g Reiserfs can have 512B blocks and it works both with mkfs.ntfs and Linux. Signed-off-by: Karel Zak --- libblkid/src/superblocks/ntfs.c | 2 +- libblkid/src/superblocks/reiserfs.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libblkid/src/superblocks/ntfs.c b/libblkid/src/superblocks/ntfs.c index 98f3fb2f9e..0b46154ad0 100644 --- a/libblkid/src/superblocks/ntfs.c +++ b/libblkid/src/superblocks/ntfs.c @@ -81,7 +81,7 @@ static int probe_ntfs(blkid_probe pr, const struct blkid_idmag *mag) (ns->bios_parameter_block[1] << 8); sectors_per_cluster = ns->bios_parameter_block[2]; - if ((bytes_per_sector < 512) || (sectors_per_cluster == 0)) + if ((bytes_per_sector < 256) || (sectors_per_cluster == 0)) return 1; if (ns->cluster_per_mft_record < 0) diff --git a/libblkid/src/superblocks/reiserfs.c b/libblkid/src/superblocks/reiserfs.c index feb58a8124..152571f470 100644 --- a/libblkid/src/superblocks/reiserfs.c +++ b/libblkid/src/superblocks/reiserfs.c @@ -49,12 +49,12 @@ static int probe_reiser(blkid_probe pr, const struct blkid_idmag *mag) blocksize = le16_to_cpu(rs->rs_blocksize); - /* The blocksize must be at least 1k */ - if ((blocksize >> 10) == 0) + /* The blocksize must be at least 512B */ + if ((blocksize >> 9) == 0) return -BLKID_ERR_PARAM; /* If the superblock is inside the journal, we have the wrong one */ - if (mag->kboff / (blocksize >> 10) > le32_to_cpu(rs->rs_journal_block)) + if (mag->kboff / (blocksize >> 9) > le32_to_cpu(rs->rs_journal_block) / 2) return -BLKID_ERR_BIG; /* LABEL/UUID are only valid for later versions of Reiserfs v3.6. */ -- 2.47.3