From a22c6eb206fb716fa42bb245d0726efcb01355a1 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 17 Jun 2014 12:15:59 +0200 Subject: [PATCH] fdisk: use sysfs_devno_is_wholedisk() Signed-off-by: Karel Zak --- disk-utils/fdisk.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/disk-utils/fdisk.c b/disk-utils/fdisk.c index 7df6b899dd..5da705293a 100644 --- a/disk-utils/fdisk.c +++ b/disk-utils/fdisk.c @@ -30,11 +30,11 @@ #include "blkdev.h" #include "mbsalign.h" #include "fdisk.h" -#include "wholedisk.h" #include "pathnames.h" #include "canonicalize.h" #include "strutils.h" #include "closestream.h" +#include "sysfs.h" #include "pt-sun.h" /* to toggle flags */ @@ -722,23 +722,29 @@ static void print_all_devices_pt(struct fdisk_context *cxt) DBG(FRONTEND, ul_debug("reading "_PATH_PROC_PARTITIONS)); while (fgets(line, sizeof(line), f)) { - char ptname[128 + 1], devname[256]; + char buf[PATH_MAX], *cn; + dev_t devno; - if (sscanf(line, " %*d %*d %*d %128[^\n ]", ptname) != 1) + if (sscanf(line, " %*d %*d %*d %128[^\n ]", buf) != 1) continue; - snprintf(devname, sizeof(devname), "/dev/%s", ptname); + devno = sysfs_devname_to_devno(buf, NULL); + if (devno <= 0) + continue; - DBG(FRONTEND, ul_debug("listing %s", devname)); + if (sysfs_devno_is_lvm_private(devno) || + sysfs_devno_is_wholedisk(devno) <= 0) + continue; - if (is_whole_disk(devname)) { - char *cn = canonicalize_path(devname); - if (cn) { - if (!is_ide_cdrom_or_tape(cn)) - print_device_pt(cxt, cn); - free(cn); - } - } + if (!sysfs_devno_to_devpath(devno, buf, sizeof(buf))) + continue; + + cn = canonicalize_path(buf); + if (!cn) + continue; + if (!is_ide_cdrom_or_tape(cn)) + print_device_pt(cxt, cn); + free(cn); } fclose(f); } -- 2.47.2