[lvm-devel] [PATCH] handle transient errors in lvconvert --repair

Takahiro Yasui tyasui at redhat.com
Thu May 20 00:49:47 UTC 2010


Hi Petr,

On 05/19/10 14:31, Petr Rockai wrote:
> The attached patch is on top of the previous one -- it should apply
> cleanly on top of current CVS + the lvconvert-repair-transient.diff I
> have sent previously. It also fixes a bug in messages, where it would
> claim that it failed to replace things even if it never tried to in the
> first place.
> 
> Please test and let me know if you run into any other issues.

I tested your two patches and all my test cases for 'disk' log
passed. As for 'mirrored' log, we need to check the state for
log_lv. Here is the sample code.

_lvconvert_mirrors_repair()
...
        lv_check_transient(lv); /* TODO check this in lib for all commands? */

-       if (!(lv->status & PARTIAL_LV)) {
+       log_lv = first_seg(lv)->log_lv;
+       if (log_lv && log_lv->status & MIRRORED)
+               lv_check_transient(log_lv);
+
+       if (!(lv->status & PARTIAL_LV) && !log_lv &&
+           !(log_lv->status & PARTIAL_LV)) {
...
        new_log_count = old_log_count;
-       log_lv = first_seg(lv)->log_lv;
        if (log_lv) {

Thanks,
Taka




More information about the lvm-devel mailing list