[lvm-devel] Re: [PATCH 2/5] libdm-deptree-return-failure-suspend-children

Zdenek Kabelac zkabelac at redhat.com
Sun Nov 22 20:31:23 UTC 2009


Dne 21.11.2009 03:26, Mike Snitzer napsal(a):
> On Fri, Nov 20 2009 at  5:57pm -0500,
> Zdenek Kabelac <zkabelac at redhat.com> wrote:
> 
>> Dne 20.11.2009 22:29, Mike Snitzer napsal(a):
>>> Return error immediately to dm_tree_suspend_children() callers.
>>>
>>> Otherwise suspend_lv and its variants can fail silently.
>>>
>>> Signed-off-by: Mike Snitzer <snitzer at redhat.com>
>>> ---
>>>  libdm/libdm-deptree.c |    5 +++--
>>>  1 files changed, 3 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/libdm/libdm-deptree.c b/libdm/libdm-deptree.c
>>> index bb10fe5..6f5355d 100644
>>> --- a/libdm/libdm-deptree.c
>>> +++ b/libdm/libdm-deptree.c
>>> @@ -1109,7 +1109,7 @@ int dm_tree_suspend_children(struct dm_tree_node *dnode,
>>>  			log_error("Unable to suspend %s (%" PRIu32
>>>  				  ":%" PRIu32 ")", name, info.major,
>>>  				  info.minor);
>>> -			continue;
>>> +			return 0;
>>>  		}
>>
>>
>> This is a bit hard to tell what's the right way here - either to continue
>> suspending  'the rest of the monster' or to stop with the first failure.
>>
>> In case of the replicator - when suspend of one head would fail - I would
>> probably prefer to see the code to continue suspending remaing heads.
> 
> OK, the other possibility that Alasdair and I discussed is that we could
> return failure once all nodes at the same level have been processed.
> 
> Would that work for replicator?  Are all heads at the same level in the tree?

Yes - that would probably work well for replicator (though the error in the
suspend as rather hypothetical in this case anyway)

But - still - is it the best thing to stop suspending elements from tree - if
one path fails?

Zdenek




More information about the lvm-devel mailing list