Soren Hansen <[EMAIL PROTECTED]> wrote:
> I used to use parted 1.7.7 as this was what was shipped by Ubuntu and
> Debian up until very recently. I used parted to add a partition table to
> disk images that I'd be using for virtual machines.
> When parted was updated to 1.8.8, this stopped working, since parted
> fails if telling the kernel to reread the partition table for the device
> in question fails. However, for disk images this makes little sense.
>
> This patch makes libparted consider (ioctl(fd, BLKRRPART) || errno
> == EINVAL) succesful.
>
> Signed-off-by: Soren Hansen <[EMAIL PROTECTED]>
>
> diff -urNad parted-1.8.8.git.2008.03.24~/libparted/arch/linux.c 
> parted-1.8.8.git.2008.03.24/libparted/arch/linux.c
> --- parted-1.8.8.git.2008.03.24~/libparted/arch/linux.c 2008-08-05 
> 17:02:18.151661314 +0200
> +++ parted-1.8.8.git.2008.03.24/libparted/arch/linux.c  2008-08-05 
> 17:02:47.096662006 +0200
> @@ -2454,7 +2467,7 @@
>          int             retry_count = 5;
>
>          sync();
> -        while (ioctl (arch_specific->fd, BLKRRPART)) {
> +        while (ioctl (arch_specific->fd, BLKRRPART) || errno == EINVAL) {
>                  retry_count--;
>                  sync();
>                  if (!retry_count) {

Thanks!
This looks like a fine change.
Do you feel like adding a test to demonstrate the failure and fix?
If it requires running losetup, you can model the script after
parts of tests/t6000-dm.sh.
Otherwise, just list the few commands required to demonstrate
the failure and I'll write the script.


_______________________________________________
bug-parted mailing list
bug-parted@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-parted

Reply via email to