Re: [PATCH v4 03/15] btrfs: Handle pending/pinned chunks before blockgroup relocation during device shrink

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

 




On 1.04.19 г. 21:26 ч., David Sterba wrote:
> On Wed, Mar 27, 2019 at 02:24:06PM +0200, Nikolay Borisov wrote:
>> During device shrink pinned/pending chunks (i.e those which have been
>> deleted/created respectively, in the current transaction and haven't
>> touched disk) need to be accounted when doing device shrink. Presently
>> this happens after the main relocation loop in btrfs_shrink_device,
>> which could lead to making another go in the body of the function.
>>
>> Since there is no hard requirement to perform pinned/pending chunks
>> handling after the relocation loop, move the code before it. This leads
>> to simplifying the code flow around - i.e no need to use 'goto again'.
> 
> On the other hand this starts 2 transactions unconditionally, previously
> it was 1 for the final change and 1 if there were pending chunks. This
> should be mentioned or explained why this is needed, otherwise the code
> looks equivalent to the original version. In this case some guidance in
> the changelog could shorten the time to understand the change, I've been
> starting at it for half an hour.
> 

Valid point, how about adding the following sentence at the end of the
changelog :

A notable side effect of this change is that modification of the
device's size requires a transaction to be started and committed before
the relocation loop starts. This is necessary to ensure that relocation
process sees the shrunk device size.




[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux