summaryrefslogtreecommitdiffstats
path: root/shlibs/blkid/src/partitions
diff options
context:
space:
mode:
Diffstat (limited to 'shlibs/blkid/src/partitions')
-rw-r--r--shlibs/blkid/src/partitions/partitions.c11
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];