From 222bb2b88d06a67cc25ed19332919fa339d7e831 Mon Sep 17 00:00:00 2001 From: David Teigland Date: Fri, 10 Jul 2015 13:27:02 -0500 Subject: [PATCH] lockd: note that external origins don't work in lockd VGs in a comment at the point where it fails, and in the lvmlockd man page. --- man/lvmlockd.8.in | 2 ++ tools/lvconvert.c | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/man/lvmlockd.8.in b/man/lvmlockd.8.in index c3b0ac08c..659fead6f 100644 --- a/man/lvmlockd.8.in +++ b/man/lvmlockd.8.in @@ -686,6 +686,8 @@ Things that do not yet work in lockd VGs: .br - using lvcreate to create cache pools or cache LVs (use lvconvert) .br +- using external origins for thin LVs +.br - splitting mirrors and snapshots from LVs .br - vgsplit diff --git a/tools/lvconvert.c b/tools/lvconvert.c index c543a1e29..1461f4a03 100644 --- a/tools/lvconvert.c +++ b/tools/lvconvert.c @@ -2533,6 +2533,16 @@ static int _lvconvert_thin(struct cmd_context *cmd, } if (is_lockd_type(lv->vg->lock_type)) { + /* + * FIXME: external origins don't work in lockd VGs. + * Prior to the lvconvert, there's a lock associated with + * the uuid of the external origin LV. After the convert, + * that uuid belongs to the new thin LV, and a new LV with + * a new uuid exists as the non-thin, readonly external LV. + * We'd need to remove the lock for the previous uuid + * (the new thin LV will have no lock), and create a new + * lock for the new LV uuid used by the external LV. + */ log_error("Can't use lock_type %s LV as external origin.", lv->vg->lock_type); return 0;