> On Mon, Dec 07, 2009 at 10:41:15PM +0300, Dmitry Monakhov wrote:
>> Absolutely right. I've fixed an issue, but overlooked the BIGGEST one.
>> So off course my patch is wrong, even if we will acquire lock in
>> different order " dqptr_sem > i_block_reservation_lock"
>> we sill getting in to sleeping spin lock problems by following scenario:
>> ext4_da_update_reserve_space()
>> ->dquot_claim_space()
>> ASSUMES that we hold i_block_reservation_lock here.
>> -->mark_dquot_dirty()
>> --->ext4_write_dquot()
>> if (journalled quota) ext4_write_dquot();
>> ---->dquot_commit()
>> ----->mutex_lock(&dqopt->dqio_mutt's); <<< sleep here.
>>
>> This means that we have fully redesign quota reservation locking.
>> As i already suggested previously here:
>>
http://thread.gmane.org/gmane.comp.file-systems.ext4/16576/focus=16587
>
> Given this, should I include this patch for now, given that it does
> fix _one_ race, or should I hold off until you redo the locking? How
> long do you think to send a revised/new patch?