From: Lennart Poettering Date: Fri, 29 Oct 2021 07:59:35 +0000 (+0200) Subject: homework: make destroying of HomeSetup optional when resizing X-Git-Tag: v250-rc1~211^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5813fca61fb492b484e3f898680f1c69bf760caa;p=thirdparty%2Fsystemd.git homework: make destroying of HomeSetup optional when resizing This will be useful when we want to issue a resize operation right when activating, where the HomeSetup object should be destroyed only after both activation is done. --- diff --git a/src/home/homework-luks.c b/src/home/homework-luks.c index 294c052720b..f7015529e71 100644 --- a/src/home/homework-luks.c +++ b/src/home/homework-luks.c @@ -3240,9 +3240,11 @@ int home_resize_luks( if (r < 0) return r; - r = home_setup_done(setup); - if (r < 0) - return r; + if (!FLAGS_SET(flags, HOME_SETUP_RESIZE_DONT_UNDO)) { + r = home_setup_done(setup); + if (r < 0) + return r; + } log_info("Everything completed."); diff --git a/src/home/homework.h b/src/home/homework.h index 55c2f5b2df9..be77764d8e4 100644 --- a/src/home/homework.h +++ b/src/home/homework.h @@ -63,6 +63,7 @@ typedef enum HomeSetupFlags { HOME_SETUP_RESIZE_MINIMIZE = 1 << 3, /* Shrink to minimal size */ HOME_SETUP_RESIZE_DONT_GROW = 1 << 4, /* If the resize would grow, gracefully terminate operation */ HOME_SETUP_RESIZE_DONT_SHRINK = 1 << 5, /* If the resize would shrink, gracefully terminate operation */ + HOME_SETUP_RESIZE_DONT_UNDO = 1 << 6, /* Leave loopback/DM device context open after successful operation */ } HomeSetupFlags; int home_setup_done(HomeSetup *setup);