From: Vladimir 'φ-coder/phcoder' Serbinenko Date: Fri, 4 May 2012 09:48:07 +0000 (+0200) Subject: libblkid: accept small blocks for NTFS and Reiserfs in blkid X-Git-Tag: v2.21.2~22 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=31f9499b83d25b2b0f96951980ee8a3bc68f4310;p=thirdparty%2Futil-linux.git 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 --- 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. */