Re: Set deactivation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am Freitag, den 05.12.2008, 11:49 -0500 schrieb Phillip Susi:
> Heinz Mauelshagen wrote:
> > Because "type = DM_DEVICE_REMOVE" is passed via dm_remove().
> > See the dm_task_create(type) call in run_task, which hence receives a
> > DM_REMOVE_DEVICE as the type.
> 
> But in rc14 run_task() is not called for DM_DEVICE_REMOVE.

It actually is being called in -rc14:

/* Remove a mapped device. */
int dm_remove(struct lib_context *lc, struct raid_set *rs)
{
        /* Remove <dev_name> */
        return run_task(lc, rs, NULL, DM_DEVICE_REMOVE);
}


> > Code you reference in rc15 has been added for mapped device UUID
> > support. It only creates and sets a UUID on DM_DEVICE_CREATE for obvious
> > reasons.
> 
> They both call dmraid_uuid for DM_DEVICE_CREATE.

No, -rc15 does set the UUID, -rc14 doesn't.

>  The difference is that 
> rc14 only calls dm_task_run for DM_DEVICE_CREATE,

No, -rc14 calls dm_task_run for both DM_DEVICE_CREATE and
DM_DEVICE_REMOVE:

/* Create a task, set its name and run it. */
static int run_task(struct lib_context *lc, struct raid_set *rs,
                    char *table, int type)
{
        int ret;
        struct dm_task *dmt;

        _init_dm();
        ret = (dmt = dm_task_create(type)) && dm_task_set_name(dmt,
rs->name);
        if (ret && table)
                ret = parse_table(lc, dmt, table);

/**** Here dm_task_run() is being called for *and* type, unless dm
infrastructure or table parse failure ****/
       if (ret)
                ret = dm_task_run(dmt);

        _exit_dm(dmt);
        return ret;
}


>  and rc15 calls it no 
> matter what the type is.  This looks to me like in rc14 it sets up a 
> task to remove the device, but never actually executes it since 
> dm_task_run is never called.

It is: see above explanation and code sample.

Regards,
Heinz

> 
> 

_______________________________________________
Ataraid-list mailing list
Ataraid-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/ataraid-list

[Index of Archives]     [Linux RAID]     [Linux Device Mapper]     [Linux IDE]     [Linux SCSI]     [Kernel]     [Linux Books]     [Linux Admin]     [GFS]     [RPM]     [Yosemite Campgrounds]     [AMD 64]

  Powered by Linux