diff options
| author | Theodore Ts'o <tytso@mit.edu> | 2008-06-02 21:40:02 -0400 |
|---|---|---|
| committer | Theodore Ts'o <tytso@mit.edu> | 2008-06-02 21:40:02 -0400 |
| commit | 8aa53bfa691c21d8716efae1307bced6b705ce31 (patch) | |
| tree | f4f4a92664e01ebacb9908b5511b1e120eda0c78 /lib/blkid | |
| parent | dfb1d42a5601b5416823cb3ea4894390e26fb4af (diff) | |
| parent | 9aa109c95dd0fc2cbcb0d309ab830d5898e1344b (diff) | |
| download | android_external_e2fsprogs-8aa53bfa691c21d8716efae1307bced6b705ce31.tar.gz android_external_e2fsprogs-8aa53bfa691c21d8716efae1307bced6b705ce31.tar.bz2 android_external_e2fsprogs-8aa53bfa691c21d8716efae1307bced6b705ce31.zip | |
Merge branch 'maint' into next
Diffstat (limited to 'lib/blkid')
| -rw-r--r-- | lib/blkid/probe.c | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/lib/blkid/probe.c b/lib/blkid/probe.c index c8bc8402..27469283 100644 --- a/lib/blkid/probe.c +++ b/lib/blkid/probe.c @@ -774,6 +774,20 @@ static int probe_jfs(struct blkid_probe *probe, return 0; } +static int probe_zfs(struct blkid_probe *probe, struct blkid_magic *id, + unsigned char *buf) +{ + char *vdev_label; + const char *pool_name = 0; + + /* read nvpair data for pool name, pool GUID (complex) */ +#if 0 + blkid_set_tag(probe->dev, "LABEL", pool_name, sizeof(pool_name)); + set_uuid(probe->dev, pool_guid, 0); +#endif + return 0; +} + static int probe_luks(struct blkid_probe *probe, struct blkid_magic *id __BLKID_ATTR((unused)), unsigned char *buf) @@ -1095,15 +1109,6 @@ static int probe_lvm2(struct blkid_probe *probe, return 0; } /* - * BLKID_BLK_OFFS is at least as large as the highest bim_kboff defined - * in the type_array table below + bim_kbalign. - * - * When probing for a lot of magics, we handle everything in 1kB buffers so - * that we don't have to worry about reading each combination of block sizes. - */ -#define BLKID_BLK_OFFS 64 /* currently reiserfs */ - -/* * Various filesystem magics that we can check for. Note that kboff and * sboff are in kilobytes and bytes respectively. All magics are in * byte strings so we don't worry about endian issues. @@ -1153,6 +1158,10 @@ static struct blkid_magic type_array[] = { { "iso9660", 32, 1, 5, "CD001", probe_iso9660 }, { "iso9660", 32, 9, 5, "CDROM", probe_iso9660 }, { "jfs", 32, 0, 4, "JFS1", probe_jfs }, + { "zfs", 8, 0, 8, "\0\0\x02\xf5\xb0\x07\xb1\x0c", probe_zfs }, + { "zfs", 8, 0, 8, "\x0c\xb1\x07\xb0\xf5\x02\0\0", probe_zfs }, + { "zfs", 264, 0, 8, "\0\0\x02\xf5\xb0\x07\xb1\x0c", probe_zfs }, + { "zfs", 264, 0, 8, "\x0c\xb1\x07\xb0\xf5\x02\0\0", probe_zfs }, { "hfsplus", 1, 0, 2, "BD", probe_hfsplus }, { "hfsplus", 1, 0, 2, "H+", 0 }, { "hfs", 1, 0, 2, "BD", 0 }, @@ -1288,7 +1297,7 @@ try_again: if (!buf) continue; - if (memcmp(id->bim_magic, buf + (id->bim_sboff&0x3ff), + if (memcmp(id->bim_magic, buf + (id->bim_sboff & 0x3ff), id->bim_len)) continue; @@ -1318,7 +1327,7 @@ try_again: dev = 0; goto found_type; } - + found_type: if (dev && type) { dev->bid_devno = st.st_rdev; @@ -1327,7 +1336,7 @@ found_type: cache->bic_flags |= BLKID_BIC_FL_CHANGED; blkid_set_tag(dev, "TYPE", type, 0); - + DBG(DEBUG_PROBE, printf("%s: devno 0x%04llx, type %s\n", dev->bid_name, (long long)st.st_rdev, type)); } |
