summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVladimir 'φ-coder/phcoder' Serbinenko2012-05-04 11:48:07 +0200
committerKarel Zak2012-05-04 11:48:07 +0200
commitfd688b6cf3b32087404b00a0308c64d4f9c98a9e (patch)
treec2a74131e5de2adcc57fe34baee3df45d65c3c2d
parentbuild-sys: add BUILD_WDCTL, check for linux/watchdog.h (diff)
downloadkernel-qcow2-util-linux-fd688b6cf3b32087404b00a0308c64d4f9c98a9e.tar.gz
kernel-qcow2-util-linux-fd688b6cf3b32087404b00a0308c64d4f9c98a9e.tar.xz
kernel-qcow2-util-linux-fd688b6cf3b32087404b00a0308c64d4f9c98a9e.zip
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 <kzak@redhat.com>
-rw-r--r--libblkid/src/superblocks/ntfs.c2
-rw-r--r--libblkid/src/superblocks/reiserfs.c6
2 files changed, 4 insertions, 4 deletions
diff --git a/libblkid/src/superblocks/ntfs.c b/libblkid/src/superblocks/ntfs.c
index 98f3fb2f9..0b46154ad 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 feb58a812..152571f47 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. */