mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-23 14:24:25 +08:00
afs: convert pagevec to folio_batch in afs_extend_writeback()
Patch series "Remove pagevecs". Removes a folio->page->folio conversion for each folio that's involved. More importantly, removes one of the last few uses of a pagevec. Link: https://lkml.kernel.org/r/20230621164557.3510324-1-willy@infradead.org Link: https://lkml.kernel.org/r/20230621164557.3510324-2-willy@infradead.org Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
1bf61092bc
commit
f5f288a023
@ -465,7 +465,7 @@ static void afs_extend_writeback(struct address_space *mapping,
|
||||
bool caching,
|
||||
unsigned int *_len)
|
||||
{
|
||||
struct pagevec pvec;
|
||||
struct folio_batch fbatch;
|
||||
struct folio *folio;
|
||||
unsigned long priv;
|
||||
unsigned int psize, filler = 0;
|
||||
@ -476,7 +476,7 @@ static void afs_extend_writeback(struct address_space *mapping,
|
||||
unsigned int i;
|
||||
|
||||
XA_STATE(xas, &mapping->i_pages, index);
|
||||
pagevec_init(&pvec);
|
||||
folio_batch_init(&fbatch);
|
||||
|
||||
do {
|
||||
/* Firstly, we gather up a batch of contiguous dirty pages
|
||||
@ -535,7 +535,7 @@ static void afs_extend_writeback(struct address_space *mapping,
|
||||
stop = false;
|
||||
|
||||
index += folio_nr_pages(folio);
|
||||
if (!pagevec_add(&pvec, &folio->page))
|
||||
if (!folio_batch_add(&fbatch, folio))
|
||||
break;
|
||||
if (stop)
|
||||
break;
|
||||
@ -545,14 +545,14 @@ static void afs_extend_writeback(struct address_space *mapping,
|
||||
xas_pause(&xas);
|
||||
rcu_read_unlock();
|
||||
|
||||
/* Now, if we obtained any pages, we can shift them to being
|
||||
/* Now, if we obtained any folios, we can shift them to being
|
||||
* writable and mark them for caching.
|
||||
*/
|
||||
if (!pagevec_count(&pvec))
|
||||
if (!folio_batch_count(&fbatch))
|
||||
break;
|
||||
|
||||
for (i = 0; i < pagevec_count(&pvec); i++) {
|
||||
folio = page_folio(pvec.pages[i]);
|
||||
for (i = 0; i < folio_batch_count(&fbatch); i++) {
|
||||
folio = fbatch.folios[i];
|
||||
trace_afs_folio_dirty(vnode, tracepoint_string("store+"), folio);
|
||||
|
||||
if (!folio_clear_dirty_for_io(folio))
|
||||
@ -565,7 +565,7 @@ static void afs_extend_writeback(struct address_space *mapping,
|
||||
folio_unlock(folio);
|
||||
}
|
||||
|
||||
pagevec_release(&pvec);
|
||||
folio_batch_release(&fbatch);
|
||||
cond_resched();
|
||||
} while (!stop);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user