Re: A replacement for GEOM_LABEL's gpt/gptid

From: Nathan Whitehorn <nwhitehorn_at_freebsd.org>
Date: Wed, 27 Apr 2011 09:01:31 -0500
On 04/27/11 02:37, Andrey V. Elsukov wrote:
> On 25.04.2011 14:38, Andrey V. Elsukov wrote:
>> I wrote a small extension for the GEOM_PART class. It adds an ability
>> to GEOM_PART class to create partition labels for schemes which are
>> support them.
>>
>> Currently we have GEOM_LABEL class which does similar functions,
>> but it has problems in conjunction with GEOM_PART (e.g. kern/154226).
>> Current implementation of GEOM_LABEL's gpt/gptid module does direct
>> access to GEOM_PART object structures, that seems not so good for me.
>>
>> So, my patch contains:
>>
>> * new GEOM class "PART::LABEL". It attaches to partition provider and
>> create new providers for each label.
>>
>> * new kobj method - G_PART_LABELS. It called when new partition is creating.
>> A partition scheme can implement this method if it supports partition labels.
>> Method should just call g_part_create_label() function to create new label for
>> given partition.
>>
>> * g_part_spoil_labels() function. It called from GEOM_PART to destroy labels
>> providers or mark them stale. At this time it called only from "gpart modify"
>> method.
>>
>> What differs from GEOM_LABEL:
>>
>> * PART::LABEL class has not ".spoiled" method and all providers are persistent.
>>
>> * if label is changing while provider is in use, it will not be destroyed until
>> access does not released, but new label will become available.
>>
>> * also it has support for APM and PC98 schemes.
>>
>> The patch is here:
>> http://people.freebsd.org/~ae/gpart_labels.diff
>
> I updated the patch, it is in the same location.
> I turned off glabel's gpt/gpid support and added loader tunables:
>
> kern.geom.part_label.apm.enable
> kern.geom.part_label.gpt.enable
> kern.geom.part_label.gptid.enable
> kern.geom.part_label.pc98.enable
>
> Also for compatibility glabel's tunables still here:
>
> kern.geom.label.gpt.enable
> kern.geom.label.gptid.enable
>
> So, if you have them in your loader.conf and want to have gpt/gptid labels,
> you should remove them from loader.conf.
> Also now they are only loader tunables and they can not be changed in runtime.
>
> If there will no objections i am planning to commit patch in this weekend.
>

This is fantastic. Thank you!
-Nathan
Received on Wed Apr 27 2011 - 12:01:33 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:13 UTC