diff options
author | Karel Zak | 2010-02-18 22:28:41 +0100 |
---|---|---|
committer | Karel Zak | 2010-02-18 22:28:41 +0100 |
commit | c2dacc61aa7de47f97606713de1724a96aab9d2c (patch) | |
tree | 7fc74594bdd749171f0754bf013c8c88141b1bdd /shlibs/blkid/src/partitions/dos.c | |
parent | sfdisk: make sure writes make it to disk in write_partitions() (diff) | |
download | kernel-qcow2-util-linux-c2dacc61aa7de47f97606713de1724a96aab9d2c.tar.gz kernel-qcow2-util-linux-c2dacc61aa7de47f97606713de1724a96aab9d2c.tar.xz kernel-qcow2-util-linux-c2dacc61aa7de47f97606713de1724a96aab9d2c.zip |
libblkid: add blkid_partition_set_type()
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'shlibs/blkid/src/partitions/dos.c')
-rw-r--r-- | shlibs/blkid/src/partitions/dos.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/shlibs/blkid/src/partitions/dos.c b/shlibs/blkid/src/partitions/dos.c index f3e8a1983..8bf3a8b66 100644 --- a/shlibs/blkid/src/partitions/dos.c +++ b/shlibs/blkid/src/partitions/dos.c @@ -75,6 +75,7 @@ static int parse_dos_extended(blkid_probe pr, blkid_parttable tab, /* Parse data partition */ for (p = p0, i = 0; i < 4; i++, p++) { uint32_t abs_start; + blkid_partition par; /* the start is relative to the parental ext.partition */ start = dos_partition_start(p) * ssf; @@ -93,10 +94,12 @@ static int parse_dos_extended(blkid_probe pr, blkid_parttable tab, if (abs_start + size > ex_start + ex_size) continue; } - if (!blkid_partlist_add_partition(ls, tab, p->sys_type, - abs_start, size)) + + par = blkid_partlist_add_partition(ls, tab, abs_start, size); + if (!par) goto err; + blkid_partition_set_type(par, p->sys_type); ct_nodata = 0; } /* The first nested ext.partition should be a link to the next @@ -194,14 +197,19 @@ static int probe_dos_pt(blkid_probe pr, const struct blkid_idmag *mag) /* Parse primary partitions */ for (p = p0, i = 0; i < 4; i++, p++) { + blkid_partition par; + start = dos_partition_start(p) * ssf; size = dos_partition_size(p) * ssf; if (!size) continue; - if (!blkid_partlist_add_partition(ls, tab, p->sys_type, - start, size)) + + par = blkid_partlist_add_partition(ls, tab, start, size); + if (!par) goto err; + + blkid_partition_set_type(par, p->sys_type); } /* Linux uses partition numbers greater than 4 |