The linux partition sync code was hard coded to only 16 partitions. --- NEWS | 3 +++ libparted/arch/linux.c | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/NEWS b/NEWS index 816fb57..2d0c6b9 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,9 @@ GNU parted NEWS -*- outline -*- boot partition type. ** Bug Fixes + + Fix linux partition sync code to include partitions > 16 + Fix several bugs with loop labels ( whole disk filesystems ) Fix gpt to correctly handle non ASCII charcters in partition names diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c index 8a09763..6d3234e 100644 --- a/libparted/arch/linux.c +++ b/libparted/arch/linux.c @@ -1567,6 +1567,7 @@ _flush_cache (PedDevice* dev) { LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); int i; + int lpn = _device_get_partition_range(dev); if (dev->read_only) return; @@ -1574,7 +1575,7 @@ _flush_cache (PedDevice* dev) ioctl (arch_specific->fd, BLKFLSBUF); - for (i = 1; i < 16; i++) { + for (i = 1; i < lpn; i++) { char* name; int fd; -- 1.8.3.2