diff options
author | Karel Zak | 2014-06-17 12:15:01 +0200 |
---|---|---|
committer | Karel Zak | 2014-06-17 12:15:01 +0200 |
commit | b55e5886ea8691e32abe2415119e43b94761fd95 (patch) | |
tree | 49d4140f9d96039827cdd64deb1ad453f6ced058 /lib/sysfs.c | |
parent | lib/sysfs: add sysfs_devno_is_lvm_private() from libblkid (diff) | |
download | kernel-qcow2-util-linux-b55e5886ea8691e32abe2415119e43b94761fd95.tar.gz kernel-qcow2-util-linux-b55e5886ea8691e32abe2415119e43b94761fd95.tar.xz kernel-qcow2-util-linux-b55e5886ea8691e32abe2415119e43b94761fd95.zip |
lib/sysfs: add sysfs_devno_is_wholedisk()
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'lib/sysfs.c')
-rw-r--r-- | lib/sysfs.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/sysfs.c b/lib/sysfs.c index fe85f34cf..0d8afa560 100644 --- a/lib/sysfs.c +++ b/lib/sysfs.c @@ -539,6 +539,10 @@ static int get_dm_wholedisk(struct sysfs_cxt *cxt, char *diskname, return rc; } +/* + * Returns by @diskdevno whole disk device devno and (optionaly) by + * @diskname the whole disk device name. + */ int sysfs_devno_to_wholedisk(dev_t dev, char *diskname, size_t len, dev_t *diskdevno) { @@ -658,6 +662,20 @@ int sysfs_devno_is_lvm_private(dev_t devno) return rc; } +/* + * Return 0 or 1, or < 0 in case of error + */ +int sysfs_devno_is_wholedisk(dev_t devno) +{ + dev_t disk; + int rc; + + if (sysfs_devno_to_wholedisk(devno, NULL, 0, &disk) != 0) + return -1; + + return devno == disk; +} + int sysfs_scsi_get_hctl(struct sysfs_cxt *cxt, int *h, int *c, int *t, int *l) { char buf[PATH_MAX], *hctl; |