diff options
author | Karel Zak | 2010-04-07 09:39:05 +0200 |
---|---|---|
committer | Karel Zak | 2010-04-07 09:39:05 +0200 |
commit | 9f4664ee40618b3d393161d82d000f2bca4ec45a (patch) | |
tree | 0418c5210dc380b163a82a09d17f5a7e1e345eea /shlibs/blkid/src/partitions/dos.c | |
parent | libblkid: fix blkid_partlist_devno_to_partition() for extended partitions (diff) | |
download | kernel-qcow2-util-linux-9f4664ee40618b3d393161d82d000f2bca4ec45a.tar.gz kernel-qcow2-util-linux-9f4664ee40618b3d393161d82d000f2bca4ec45a.tar.xz kernel-qcow2-util-linux-9f4664ee40618b3d393161d82d000f2bca4ec45a.zip |
libblkid: fix 'partno' usage
Linux kernel ignores empty partitions, but partition number is always
allocated for the partition. (This rule is used for primary partitions
only.)
For example:
part 1. size=12345
part 2. size=0
part 3. size=24567
the final list of partitions:
sda1 sda3
'sda2' is not defined and partno=2 is not used for any other
partitions.
The libblkid library has to be compatible with this rule.
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 | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/shlibs/blkid/src/partitions/dos.c b/shlibs/blkid/src/partitions/dos.c index c9865b75d..7c95b8bea 100644 --- a/shlibs/blkid/src/partitions/dos.c +++ b/shlibs/blkid/src/partitions/dos.c @@ -203,9 +203,12 @@ static int probe_dos_pt(blkid_probe pr, const struct blkid_idmag *mag) start = dos_partition_start(p) * ssf; size = dos_partition_size(p) * ssf; - if (!size) + if (!size) { + /* Linux kernel ignores empty partitions, but partno for + * the empty primary partitions is not reused */ + blkid_partlist_increment_partno(ls); continue; - + } par = blkid_partlist_add_partition(ls, tab, start, size); if (!par) goto err; |