On Thu, Apr 11, 2019 at 06:59:35PM +0200, David Sterba wrote: > On Thu, Apr 11, 2019 at 06:40:59PM +0200, Johannes Thumshirn wrote: > > Currently read_extent_buffer_pages() uses a 4 pass algorithm to read an > > extent buffer's pages from disk, all 4 stages looping over all pages of > > the extent buffer. > > > > 1) Loop over all pages and lock them. > > 2) Loop over all pages and see if one is not marked as PageUptodate, so we > > can break out of the function early. > > 3) Loop over all pages and if the page is !PageUptodate read the page, > > otherwise unlock the page. > > 4) Loop over all pages and wait for stable pages. > > > > Unify the 1st two for loops, we can count the number of uptodate pages > > after we have locked them without the need for re-starting the loop. > > Effectively reverting 2571e739677f1e4c0c63f5ed49adcc0857923625 that > fixed a bug. Please have a look if something has really changed so that > the split loops are no longer necessary.
After starring at the .s and .lst files GCC produces I cannot say whether this holds true or not. But as it was fixing a bug back then, I'll take back this patch. -- Johannes Thumshirn SUSE Labs Filesystems jthumsh...@suse.de +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Mary Higgins, Sri Rasiah HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850