diff --git a/src/dissect/dissect.c b/src/dissect/dissect.c index 7709f42c48..91f0f1de13 100644 --- a/src/dissect/dissect.c +++ b/src/dissect/dissect.c @@ -1472,7 +1472,7 @@ static int action_list_or_mtree_or_copy_or_make_archive(DissectedImage *m, LoopD if (r < 0) return r; - mounted_dir = TAKE_PTR(t); + root = mounted_dir = TAKE_PTR(t); if (d) { r = loop_device_flock(d, LOCK_UN); @@ -1483,11 +1483,10 @@ static int action_list_or_mtree_or_copy_or_make_archive(DissectedImage *m, LoopD r = dissected_image_relinquish(m); if (r < 0) return log_error_errno(r, "Failed to relinquish DM and loopback block devices: %m"); - } - root = mounted_dir ?: arg_root; - - dissected_image_close(m); + dissected_image_close(m); + } else + root = arg_root; switch (arg_action) {