Set deactivation

Phillip Susi psusi at cfl.rr.com
Thu Dec 4 18:28:58 UTC 2008


Heinz Mauelshagen wrote:
> Before I search...
> Which dmraid version are you referring to.

rc14.  I just checked rc15 and it has been changed to:

         if (DM_DEVICE_CREATE == type) {
                 ret = dmraid_uuid(lc, rs, uuid, DM_UUID_LEN) &&
                         dm_task_set_uuid(dmt, uuid) && dm_task_run(dmt);
         } else
                 ret = dm_task_run(dmt);

Which makes more sense, but I'm still left wondering how deactivation 
ever worked in rc14.

> Am Dienstag, den 02.12.2008, 14:43 -0500 schrieb Phillip Susi:
>> I'm trying to debug why dmraid won't deactivate this raid set and am 
>> very confused by the code I see.  Hopefully someone can shed some light 
>> on this.
>>
>> change_set() calls deactivate_set() which calls dm_remove(), which calls 
>> run_task() in lib/activate/devmapper.c.  run_task() looks like this:
>>
>>          if (ret &&
>>              DM_DEVICE_CREATE == type)
>>                  ret = dmraid_uuid(lc, rs, uuid, DM_UUID_LEN) &&
>>                        dm_task_set_uuid(dmt, uuid) &&
>>                        dm_task_run(dmt);
>>
>> Now that looks to me like the only kind of task it will run is a create 
>> task, not a remove task, like the one it is being asked to do.  This 
>> code looks like it will never work, as if the removal code was never 
>> completed, yet I know that dmraid -an does work normally, so what gives?




More information about the Ataraid-list mailing list