summaryrefslogtreecommitdiffstats
path: root/shlibs/blkid/src/partitions/dos.c
diff options
context:
space:
mode:
authorKarel Zak2010-02-18 22:28:41 +0100
committerKarel Zak2010-02-18 22:28:41 +0100
commitc2dacc61aa7de47f97606713de1724a96aab9d2c (patch)
tree7fc74594bdd749171f0754bf013c8c88141b1bdd /shlibs/blkid/src/partitions/dos.c
parentsfdisk: make sure writes make it to disk in write_partitions() (diff)
downloadkernel-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.c16
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