Re: [PATCH v2 4/4] folio_batch: Rename PAGEVEC_SIZE to FOLIO_BATCH_SIZE
From: Jan Kara
Date: Thu Feb 26 2026 - 08:23:50 EST
On Wed 25-02-26 18:44:28, Tal Zussman wrote:
> struct pagevec no longer exists. Rename the macro appropriately.
>
> Signed-off-by: Tal Zussman <tz2294@xxxxxxxxxxxx>
Looks good. Feel free to add:
Reviewed-by: Jan Kara <jack@xxxxxxx>
Honza
> ---
> fs/btrfs/extent_io.c | 4 ++--
> include/linux/folio_batch.h | 6 +++---
> include/linux/folio_queue.h | 6 +++---
> mm/shmem.c | 4 ++--
> mm/swap.c | 2 +-
> mm/swap_state.c | 2 +-
> mm/truncate.c | 6 +++---
> 7 files changed, 15 insertions(+), 15 deletions(-)
>
> diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
> index c373d113f1e7..d82ca509503f 100644
> --- a/fs/btrfs/extent_io.c
> +++ b/fs/btrfs/extent_io.c
> @@ -2095,13 +2095,13 @@ static void buffer_tree_tag_for_writeback(struct btrfs_fs_info *fs_info,
> struct eb_batch {
> unsigned int nr;
> unsigned int cur;
> - struct extent_buffer *ebs[PAGEVEC_SIZE];
> + struct extent_buffer *ebs[FOLIO_BATCH_SIZE];
> };
>
> static inline bool eb_batch_add(struct eb_batch *batch, struct extent_buffer *eb)
> {
> batch->ebs[batch->nr++] = eb;
> - return (batch->nr < PAGEVEC_SIZE);
> + return (batch->nr < FOLIO_BATCH_SIZE);
> }
>
> static inline void eb_batch_init(struct eb_batch *batch)
> diff --git a/include/linux/folio_batch.h b/include/linux/folio_batch.h
> index a2f3d3043f7e..b45946adc50b 100644
> --- a/include/linux/folio_batch.h
> +++ b/include/linux/folio_batch.h
> @@ -12,7 +12,7 @@
> #include <linux/types.h>
>
> /* 31 pointers + header align the folio_batch structure to a power of two */
> -#define PAGEVEC_SIZE 31
> +#define FOLIO_BATCH_SIZE 31
>
> struct folio;
>
> @@ -29,7 +29,7 @@ struct folio_batch {
> unsigned char nr;
> unsigned char i;
> bool percpu_pvec_drained;
> - struct folio *folios[PAGEVEC_SIZE];
> + struct folio *folios[FOLIO_BATCH_SIZE];
> };
>
> /**
> @@ -58,7 +58,7 @@ static inline unsigned int folio_batch_count(const struct folio_batch *fbatch)
>
> static inline unsigned int folio_batch_space(const struct folio_batch *fbatch)
> {
> - return PAGEVEC_SIZE - fbatch->nr;
> + return FOLIO_BATCH_SIZE - fbatch->nr;
> }
>
> /**
> diff --git a/include/linux/folio_queue.h b/include/linux/folio_queue.h
> index 0d3765fa9d1d..f6d5f1f127c9 100644
> --- a/include/linux/folio_queue.h
> +++ b/include/linux/folio_queue.h
> @@ -29,12 +29,12 @@
> */
> struct folio_queue {
> struct folio_batch vec; /* Folios in the queue segment */
> - u8 orders[PAGEVEC_SIZE]; /* Order of each folio */
> + u8 orders[FOLIO_BATCH_SIZE]; /* Order of each folio */
> struct folio_queue *next; /* Next queue segment or NULL */
> struct folio_queue *prev; /* Previous queue segment of NULL */
> unsigned long marks; /* 1-bit mark per folio */
> unsigned long marks2; /* Second 1-bit mark per folio */
> -#if PAGEVEC_SIZE > BITS_PER_LONG
> +#if FOLIO_BATCH_SIZE > BITS_PER_LONG
> #error marks is not big enough
> #endif
> unsigned int rreq_id;
> @@ -70,7 +70,7 @@ static inline void folioq_init(struct folio_queue *folioq, unsigned int rreq_id)
> */
> static inline unsigned int folioq_nr_slots(const struct folio_queue *folioq)
> {
> - return PAGEVEC_SIZE;
> + return FOLIO_BATCH_SIZE;
> }
>
> /**
> diff --git a/mm/shmem.c b/mm/shmem.c
> index 149fdb051170..5e7dcf5bc5d3 100644
> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -1113,7 +1113,7 @@ static void shmem_undo_range(struct inode *inode, loff_t lstart, uoff_t lend,
> pgoff_t start = (lstart + PAGE_SIZE - 1) >> PAGE_SHIFT;
> pgoff_t end = (lend + 1) >> PAGE_SHIFT;
> struct folio_batch fbatch;
> - pgoff_t indices[PAGEVEC_SIZE];
> + pgoff_t indices[FOLIO_BATCH_SIZE];
> struct folio *folio;
> bool same_folio;
> long nr_swaps_freed = 0;
> @@ -1510,7 +1510,7 @@ static int shmem_unuse_inode(struct inode *inode, unsigned int type)
> struct address_space *mapping = inode->i_mapping;
> pgoff_t start = 0;
> struct folio_batch fbatch;
> - pgoff_t indices[PAGEVEC_SIZE];
> + pgoff_t indices[FOLIO_BATCH_SIZE];
> int ret = 0;
>
> do {
> diff --git a/mm/swap.c b/mm/swap.c
> index 2e517ede6561..78b4aa811fc6 100644
> --- a/mm/swap.c
> +++ b/mm/swap.c
> @@ -1018,7 +1018,7 @@ EXPORT_SYMBOL(folios_put_refs);
> void release_pages(release_pages_arg arg, int nr)
> {
> struct folio_batch fbatch;
> - int refs[PAGEVEC_SIZE];
> + int refs[FOLIO_BATCH_SIZE];
> struct encoded_page **encoded = arg.encoded_pages;
> int i;
>
> diff --git a/mm/swap_state.c b/mm/swap_state.c
> index a0c64db2b275..6313b59d7eab 100644
> --- a/mm/swap_state.c
> +++ b/mm/swap_state.c
> @@ -385,7 +385,7 @@ void free_folio_and_swap_cache(struct folio *folio)
> void free_pages_and_swap_cache(struct encoded_page **pages, int nr)
> {
> struct folio_batch folios;
> - unsigned int refs[PAGEVEC_SIZE];
> + unsigned int refs[FOLIO_BATCH_SIZE];
>
> folio_batch_init(&folios);
> for (int i = 0; i < nr; i++) {
> diff --git a/mm/truncate.c b/mm/truncate.c
> index df0b7a7e6aff..2931d66c16d0 100644
> --- a/mm/truncate.c
> +++ b/mm/truncate.c
> @@ -369,7 +369,7 @@ void truncate_inode_pages_range(struct address_space *mapping,
> pgoff_t start; /* inclusive */
> pgoff_t end; /* exclusive */
> struct folio_batch fbatch;
> - pgoff_t indices[PAGEVEC_SIZE];
> + pgoff_t indices[FOLIO_BATCH_SIZE];
> pgoff_t index;
> int i;
> struct folio *folio;
> @@ -534,7 +534,7 @@ EXPORT_SYMBOL(truncate_inode_pages_final);
> unsigned long mapping_try_invalidate(struct address_space *mapping,
> pgoff_t start, pgoff_t end, unsigned long *nr_failed)
> {
> - pgoff_t indices[PAGEVEC_SIZE];
> + pgoff_t indices[FOLIO_BATCH_SIZE];
> struct folio_batch fbatch;
> pgoff_t index = start;
> unsigned long ret;
> @@ -672,7 +672,7 @@ int folio_unmap_invalidate(struct address_space *mapping, struct folio *folio,
> int invalidate_inode_pages2_range(struct address_space *mapping,
> pgoff_t start, pgoff_t end)
> {
> - pgoff_t indices[PAGEVEC_SIZE];
> + pgoff_t indices[FOLIO_BATCH_SIZE];
> struct folio_batch fbatch;
> pgoff_t index;
> int i;
>
> --
> 2.39.5
>
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR