--- parted-3.2.orig/libparted/arch/linux.c +++ parted-3.2/libparted/arch/linux.c @@ -2729,6 +2729,7 @@ _dm_remove_partition(PedDisk* disk, int if (!dm_task_set_cookie (task, &cookie, 0)) goto err; rc = _dm_task_run_wait (task, cookie); + dm_udev_wait(cookie); dm_task_update_nodes(); dm_task_destroy(task); err: @@ -2836,6 +2837,7 @@ _dm_add_partition (PedDisk* disk, const if (!dm_task_set_cookie (task, &cookie, 0)) goto err; if (_dm_task_run_wait (task, cookie)) { + dm_udev_wait(cookie); dm_task_update_nodes (); dm_task_destroy (task); free (params); @@ -2846,6 +2848,7 @@ _dm_add_partition (PedDisk* disk, const _dm_remove_partition (disk, part->num); } err: + dm_udev_wait(cookie); dm_task_update_nodes(); if (task) dm_task_destroy (task); @@ -2920,6 +2923,7 @@ _dm_resize_partition (PedDisk* disk, con } } err: + dm_udev_wait(cookie); dm_task_update_nodes(); if (task) dm_task_destroy (task);