diff options
author | Sweet Tea Dorminy | 2017-12-07 00:26:59 +0100 |
---|---|---|
committer | Karel Zak | 2017-12-07 12:11:32 +0100 |
commit | 6418cba457a701d44294d934c2bc4b766bbcfa2b (patch) | |
tree | f4ec0eb33a1a1e77ab2f7c7727d4868747dd6cfb | |
parent | tests: use flock to modify fstab (diff) | |
download | kernel-qcow2-util-linux-6418cba457a701d44294d934c2bc4b766bbcfa2b.tar.gz kernel-qcow2-util-linux-6418cba457a701d44294d934c2bc4b766bbcfa2b.tar.xz kernel-qcow2-util-linux-6418cba457a701d44294d934c2bc4b766bbcfa2b.zip |
libblkid: Add VDO superblock information into blkid
[kzak@redhat.com: - add tests/expected/blkid/low-probe-vdo
- enlarge the image (must be > 1024)]
Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r-- | libblkid/src/Makemodule.am | 1 | ||||
-rw-r--r-- | libblkid/src/superblocks/superblocks.c | 1 | ||||
-rw-r--r-- | libblkid/src/superblocks/superblocks.h | 1 | ||||
-rw-r--r-- | libblkid/src/superblocks/vdo.c | 48 | ||||
-rw-r--r-- | tests/expected/blkid/low-probe-vdo | 4 | ||||
-rw-r--r-- | tests/ts/blkid/images-fs/vdo.img.xz | bin | 0 -> 140 bytes |
6 files changed, 55 insertions, 0 deletions
diff --git a/libblkid/src/Makemodule.am b/libblkid/src/Makemodule.am index c126b656c..415c9f408 100644 --- a/libblkid/src/Makemodule.am +++ b/libblkid/src/Makemodule.am @@ -90,6 +90,7 @@ libblkid_la_SOURCES = \ libblkid/src/superblocks/ubifs.c \ libblkid/src/superblocks/udf.c \ libblkid/src/superblocks/ufs.c \ + libblkid/src/superblocks/vdo.c \ libblkid/src/superblocks/vfat.c \ libblkid/src/superblocks/via_raid.c \ libblkid/src/superblocks/vmfs.c \ diff --git a/libblkid/src/superblocks/superblocks.c b/libblkid/src/superblocks/superblocks.c index 6bd9efe7d..086003969 100644 --- a/libblkid/src/superblocks/superblocks.c +++ b/libblkid/src/superblocks/superblocks.c @@ -113,6 +113,7 @@ static const struct blkid_idinfo *idinfos[] = &luks_idinfo, &vmfs_volume_idinfo, &ubi_idinfo, + &vdo_idinfo, /* Filesystems */ &vfat_idinfo, diff --git a/libblkid/src/superblocks/superblocks.h b/libblkid/src/superblocks/superblocks.h index 1a64ba6ec..38f6a8a65 100644 --- a/libblkid/src/superblocks/superblocks.h +++ b/libblkid/src/superblocks/superblocks.h @@ -79,6 +79,7 @@ extern const struct blkid_idinfo exfat_idinfo; extern const struct blkid_idinfo f2fs_idinfo; extern const struct blkid_idinfo bcache_idinfo; extern const struct blkid_idinfo mpool_idinfo; +extern const struct blkid_idinfo vdo_idinfo; /* * superblock functions diff --git a/libblkid/src/superblocks/vdo.c b/libblkid/src/superblocks/vdo.c new file mode 100644 index 000000000..bec686f4f --- /dev/null +++ b/libblkid/src/superblocks/vdo.c @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2017 Red Hat, Inc. + * + * This file may be redistributed under the terms of the + * GNU Lesser General Public License. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <string.h> +#include <errno.h> +#include <ctype.h> +#include <stdint.h> + +#include "superblocks.h" + +struct vdo_super_block { + char magic[8]; /* magic number 'dmvdo001'*/ + char unused[32]; /* 32 bytes of unimportant space */ + unsigned char sb_uuid[16]; /* vdo unique id */ + + /* this is not all... but enough for libblkid */ +} __attribute__((packed)); + +static int probe_vdo(blkid_probe pr, const struct blkid_idmag *mag) +{ + struct vdo_super_block *vsb; + + vsb = blkid_probe_get_sb(pr, mag, struct vdo_super_block); + if (!vsb) + return errno ? -errno : 1; + + blkid_probe_set_uuid(pr, vsb->sb_uuid); + return 0; +} + +const struct blkid_idinfo vdo_idinfo = +{ + .name = "vdo", + .usage = BLKID_USAGE_OTHER, + .probefunc = probe_vdo, + .magics = + { + { .magic = "dmvdo001", .len = 8 }, + { NULL } + } +}; diff --git a/tests/expected/blkid/low-probe-vdo b/tests/expected/blkid/low-probe-vdo new file mode 100644 index 000000000..be096ad89 --- /dev/null +++ b/tests/expected/blkid/low-probe-vdo @@ -0,0 +1,4 @@ +ID_FS_TYPE=vdo +ID_FS_USAGE=other +ID_FS_UUID=666c7969-6e67-2056-444f-204020524800 +ID_FS_UUID_ENC=666c7969-6e67-2056-444f-204020524800 diff --git a/tests/ts/blkid/images-fs/vdo.img.xz b/tests/ts/blkid/images-fs/vdo.img.xz Binary files differnew file mode 100644 index 000000000..08c7ecb08 --- /dev/null +++ b/tests/ts/blkid/images-fs/vdo.img.xz |