From b55e5886ea8691e32abe2415119e43b94761fd95 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 17 Jun 2014 12:15:01 +0200 Subject: lib/sysfs: add sysfs_devno_is_wholedisk() Signed-off-by: Karel Zak --- lib/sysfs.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'lib/sysfs.c') 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; -- cgit v1.2.3-55-g7522