On 11.12.18 г. 18:47 ч., David Sterba wrote: > On Tue, Dec 11, 2018 at 12:08:23PM +0200, Nikolay Borisov wrote: >> >> >> On 3.12.18 г. 17:24 ч., Josef Bacik wrote: >>> With my change to no longer take into account the global reserve for >>> metadata allocation chunks we have this side-effect for mixed block >>> group fs'es where we are no longer allocating enough chunks for the >>> data/metadata requirements. To deal with this add a ALLOC_CHUNK_FORCE >>> step to the flushing state machine. This will only get used if we've >>> already made a full loop through the flushing machinery and tried >>> committing the transaction. If we have then we can try and force a >>> chunk allocation since we likely need it to make progress. This >>> resolves the issues I was seeing with the mixed bg tests in xfstests >>> with my previous patch. >>> >>> Reviewed-by: Nikolay Borisov <nborisov@xxxxxxxx> >>> Signed-off-by: Josef Bacik <josef@xxxxxxxxxxxxxx> >> >> Imo this and the previous patch should be squashed into one. > > I don't see why, separate patches also look good to me. One changes the > logic regarding global reserve and the other fixes behaviour regarding > mixed block groups. As far as I understand this deficient behavior is a direct result of the previous patch. In essnse previous patch fixes something and introduces new problem which is subsequently fixed by this patch. The way I see it if both patches are squashed the change log should be : "I do [explanation of the first change]. However this introduces [explain bug from patch 2] so fix it by [explain fix from 2nd patch]" > > Possibly, if the fix can be applied first and then the overall logic > changed, that's still 2 patches but there's no intermediate state with > the bug. As long as it's not something really disasterous or if the > "one logical thing per patch" is unnecessarily split to 2 patches, I'm > willing to take more patches. This is a bit of a grey zone so if I'm > missing something regarding the split, please let me know. >
