From: Daan De Meyer Date: Wed, 27 Jul 2022 23:49:07 +0000 (+0200) Subject: loop-util: Add loop_device_unrelinquish() X-Git-Tag: v252-rc1~521^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=24d59aeed3eb4a91dad2e7aea44237f1e3610477;p=thirdparty%2Fsystemd.git loop-util: Add loop_device_unrelinquish() Allows taking ownership of a loop device which makes sure that loop_device_unrefp() will try to destroy it when it runs. --- diff --git a/src/shared/loop-util.c b/src/shared/loop-util.c index 530688fc97f..a5ad9145770 100644 --- a/src/shared/loop-util.c +++ b/src/shared/loop-util.c @@ -768,6 +768,11 @@ void loop_device_relinquish(LoopDevice *d) { d->relinquished = true; } +void loop_device_unrelinquish(LoopDevice *d) { + assert(d); + d->relinquished = false; +} + int loop_device_open(const char *loop_path, int open_flags, LoopDevice **ret) { _cleanup_close_ int loop_fd = -1; _cleanup_free_ char *p = NULL; diff --git a/src/shared/loop-util.h b/src/shared/loop-util.h index 964ce3ed083..a33d7e3e59d 100644 --- a/src/shared/loop-util.h +++ b/src/shared/loop-util.h @@ -27,6 +27,7 @@ LoopDevice* loop_device_unref(LoopDevice *d); DEFINE_TRIVIAL_CLEANUP_FUNC(LoopDevice*, loop_device_unref); void loop_device_relinquish(LoopDevice *d); +void loop_device_unrelinquish(LoopDevice *d); int loop_device_refresh_size(LoopDevice *d, uint64_t offset, uint64_t size);