diff --git a/libfdisk/src/context.c b/libfdisk/src/context.c index e156c671e..4c353ac32 100644 --- a/libfdisk/src/context.c +++ b/libfdisk/src/context.c @@ -455,9 +455,8 @@ int fdisk_deassign_device(struct fdisk_context *cxt, int nosync) assert(cxt); assert(cxt->dev_fd >= 0); - if (cxt->readonly || nosync) + if (cxt->readonly) close(cxt->dev_fd); - else { if (fsync(cxt->dev_fd) || close(cxt->dev_fd)) { fdisk_warn(cxt, _("%s: close device failed"), @@ -465,8 +464,10 @@ int fdisk_deassign_device(struct fdisk_context *cxt, int nosync) return -errno; } - fdisk_info(cxt, _("Syncing disks.")); - sync(); + if (!nosync) { + fdisk_info(cxt, _("Syncing disks.")); + sync(); + } } free(cxt->dev_path);