summaryrefslogtreecommitdiffstats
path: root/lib/sysfs.c
diff options
context:
space:
mode:
authorKarel Zak2014-06-17 12:15:01 +0200
committerKarel Zak2014-06-17 12:15:01 +0200
commitb55e5886ea8691e32abe2415119e43b94761fd95 (patch)
tree49d4140f9d96039827cdd64deb1ad453f6ced058 /lib/sysfs.c
parentlib/sysfs: add sysfs_devno_is_lvm_private() from libblkid (diff)
downloadkernel-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.c18
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;