diff options
Diffstat (limited to 'shlibs/blkid/src/partitions')
-rw-r--r-- | shlibs/blkid/src/partitions/partitions.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/shlibs/blkid/src/partitions/partitions.c b/shlibs/blkid/src/partitions/partitions.c index b3b52f0f1..2ac297a1c 100644 --- a/shlibs/blkid/src/partitions/partitions.c +++ b/shlibs/blkid/src/partitions/partitions.c @@ -21,6 +21,7 @@ #include <stdarg.h> #include "partitions.h" +#include "sysfs.h" /** * SECTION:partitions @@ -889,14 +890,18 @@ blkid_partition blkid_partlist_get_partition(blkid_partlist ls, int n) */ blkid_partition blkid_partlist_devno_to_partition(blkid_partlist ls, dev_t devno) { + struct sysfs_cxt sysfs; uint64_t start, size; int i; - if (blkid_devno_get_u64_attribute(devno, "start", &start)) - return NULL; - if (blkid_devno_get_u64_attribute(devno, "size", &size)) + if (sysfs_init(&sysfs, devno, NULL)) return NULL; + start = sysfs_read_u64(&sysfs, "start"); + size = sysfs_read_u64(&sysfs, "size"); + + sysfs_deinit(&sysfs); + for (i = 0; i < ls->nparts; i++) { blkid_partition par = &ls->parts[i]; |