On Wed, 2020-11-11 at 13:44 +0100, Pavel Machek wrote: > Hi! > > > Thankfully it's handled by the only caller, btree_write_cache_pages(), > > as later write_one_eb() call will trigger submit_one_bio(). So there > > shouldn't be any problem. > > This explains there should not be any problem in _the > mainline_. AFAICT this talks about this code. Mainline version is: > > prev_eb = eb; > ret = lock_extent_buffer_for_io(eb, &epd); > if (!ret) { > free_extent_buffer(eb); > continue; > } else if (ret < 0) { > done = 1; > free_extent_buffer(eb); > break; > } > > But 4.19 has: > > ret = lock_extent_buffer_for_io(eb, fs_info, &epd); > if (!ret) { > free_extent_buffer(eb); > continue; > }
That was changed in mainline two releases after this commit, though. > IOW missing the code mentioned in the changelog. Is 0607eb1d452d4 > prerequisite for this patch? I think it's a separate fix, but probably worth picking too. Ben. > Best regards, > Pavel > > > +/* > > + * Lock eb pages and flush the bio if we can't the locks > > + * > > + * Return 0 if nothing went wrong > > + * Return >0 is same as 0, except bio is not submitted > > + * Return <0 if something went wrong, no page is locked > > + */ -- Ben Hutchings, Software Developer Codethink Ltd https://www.codethink.co.uk/ Dale House, 35 Dale Street Manchester, M1 2HF, United Kingdom