[lvm-devel] [PATCH 1/3] Return fail if lv_deactivate did not removed device from kernel.

Milan Broz mbroz at redhat.com
Thu Sep 17 15:25:35 UTC 2009


Return fail if lv_deactivate did not removed device from kernel.

lv_deactivate now returns always success, because tree deactivation
functions (see dm_tree_deactivate_children) always returns success.

Because code should return failure in lv_deactivate at least,
fix it by checking for device existence after real deactivation call.

(After discussion this was preferred solution to dm tree function rewrite
which affects snapshots and mirrors.)

Signed-off-by: Milan Broz <mbroz at redhat.com>
---
 lib/activate/activate.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/lib/activate/activate.c b/lib/activate/activate.c
index aa75e5b..724c1fe 100644
--- a/lib/activate/activate.c
+++ b/lib/activate/activate.c
@@ -1017,6 +1017,8 @@ int lv_deactivate(struct cmd_context *cmd, const char *lvid_s)
 	memlock_dec();
 	fs_unlock();
 
+	if (!lv_info(cmd, lv, &info, 1, 0) || info.exists)
+		r = 0;
 out:
 	if (lv)
 		vg_release(lv->vg);





More information about the lvm-devel mailing list