[dm-devel] Desynchronizing dm-raid1

malahal at us.ibm.com malahal at us.ibm.com
Tue Apr 8 00:04:23 UTC 2008


Mikulas Patocka [mpatocka at redhat.com] wrote:
> On Mon, 7 Apr 2008, malahal at us.ibm.com wrote:
>
>>>> I don't think the state RH_MAYBE_DIRTY is superfluous.  If the region
>>>> state is RH_CLEAN_CANDIDATE after the sync(), that means no 'write'
>>>> happened since we set RH_CLEAN_CANDIDATE. If there was any write, the
>>>> region state would be 'RH_DIRTY' or 'RH_MAYBE_DIRTY'.
>>>
>>> Hrm, sound like a contradiction in your statement.
>>> Either it stays RH_CLEAN_CANDIDATE because of no writes *or*
>>> it's state-changing to RH_DIRTY, no ?
>>
>> The state would be RH_CLEAN_CANDIDATE if there were ***NO*** writes as
>> part of sync(). The next statement only describes what would happen if
>> there were any writes as part of sync().
>
> The sync() does write just like any other process, so it may create 
> RH_CLEAN_CANDIDATE state too. To check that the region was not written 
> during sync(), you need an extra state and make sure that no other code 
> sets this state, except your syncing thread.

Exactly my point. Thanks for putting it better.




More information about the dm-devel mailing list