struct pagevec no longer exists. Rename the macro appropriately.
Signed-off-by: Tal Zussman <tz2294@columbia.edu>
---
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
On Wed, Feb 25, 2026 at 06:44:28PM -0500, Tal Zussman wrote:
> struct pagevec no longer exists. Rename the macro appropriately.
>
> Signed-off-by: Tal Zussman <tz2294@columbia.edu>
Nice thanks for this! LGTM, so:
Reviewed-by: Lorenzo Stoakes (Oracle) <ljs@kernel.org>
> ---
> 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
>
On 25 Feb 2026, at 18:44, Tal Zussman wrote: > struct pagevec no longer exists. Rename the macro appropriately. > > Signed-off-by: Tal Zussman <tz2294@columbia.edu> > --- > 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(-) > Acked-by: Zi Yan <ziy@nvidia.com> Best Regards, Yan, Zi
On 2/26/26 00:44, Tal Zussman wrote: > struct pagevec no longer exists. Rename the macro appropriately. > > Signed-off-by: Tal Zussman <tz2294@columbia.edu> > --- Acked-by: David Hildenbrand (Arm) <david@kernel.org> -- Cheers, David
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@columbia.edu>
Looks good. Feel free to add:
Reviewed-by: Jan Kara <jack@suse.cz>
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@suse.com>
SUSE Labs, CR
© 2016 - 2026 Red Hat, Inc.