diff mbox series

[v2,2/2] btrfs: rename the extra_gfp parameter of btrfs_alloc_page_array()

Message ID 9533640304878bb57291dafc76ab0656892cf64a.1719548446.git.wqu@suse.com (mailing list archive)
State New, archived
Headers show
Series btrfs: cleanup on the extra_gfp parameters | expand

Commit Message

Qu Wenruo June 28, 2024, 4:21 a.m. UTC
There is only one caller utilizing the @extra_gfp parameter,
alloc_eb_folio_array().
And in that case the extra_gfp is only assigned to __GFP_NOFAIL.

This patch would rename the @extra_gfp parameter to @nofail to indicate
that.

Signed-off-by: Qu Wenruo <wqu@suse.com>
---
 fs/btrfs/extent_io.c | 20 ++++++++++----------
 fs/btrfs/extent_io.h |  2 +-
 fs/btrfs/inode.c     |  2 +-
 fs/btrfs/raid56.c    |  6 +++---
 fs/btrfs/scrub.c     |  2 +-
 5 files changed, 16 insertions(+), 16 deletions(-)

Comments

Filipe Manana June 28, 2024, 9:33 a.m. UTC | #1
On Fri, Jun 28, 2024 at 5:22 AM Qu Wenruo <wqu@suse.com> wrote:
>
> There is only one caller utilizing the @extra_gfp parameter,
> alloc_eb_folio_array().
> And in that case the extra_gfp is only assigned to __GFP_NOFAIL.
>
> This patch would rename the @extra_gfp parameter to @nofail to indicate
> that.

"would rename" -> renames

Anyway, it's good now:

Reviewed-by: Filipe Manana <fdmanana@suse.com>

Thanks.

>
> Signed-off-by: Qu Wenruo <wqu@suse.com>
> ---
>  fs/btrfs/extent_io.c | 20 ++++++++++----------
>  fs/btrfs/extent_io.h |  2 +-
>  fs/btrfs/inode.c     |  2 +-
>  fs/btrfs/raid56.c    |  6 +++---
>  fs/btrfs/scrub.c     |  2 +-
>  5 files changed, 16 insertions(+), 16 deletions(-)
>
> diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
> index dc416bad9ad8..d3ce07ab9692 100644
> --- a/fs/btrfs/extent_io.c
> +++ b/fs/btrfs/extent_io.c
> @@ -696,21 +696,21 @@ int btrfs_alloc_folio_array(unsigned int nr_folios, struct folio **folio_array)
>  }
>
>  /*
> - * Populate every free slot in a provided array with pages.
> + * Populate every free slot in a provided array with pages, using GFP_NOFS.
>   *
>   * @nr_pages:   number of pages to allocate
>   * @page_array: the array to fill with pages; any existing non-null entries in
> - *             the array will be skipped
> - * @extra_gfp: the extra GFP flags for the allocation.
> + *             the array will be skipped
> + * @nofail:    whether using __GFP_NOFAIL flag
>   *
>   * Return: 0        if all pages were able to be allocated;
>   *         -ENOMEM  otherwise, the partially allocated pages would be freed and
>   *                  the array slots zeroed
>   */
>  int btrfs_alloc_page_array(unsigned int nr_pages, struct page **page_array,
> -                          gfp_t extra_gfp)
> +                          bool nofail)
>  {
> -       const gfp_t gfp = GFP_NOFS | extra_gfp;
> +       const gfp_t gfp = nofail ? (GFP_NOFS | __GFP_NOFAIL) : GFP_NOFS;
>         unsigned int allocated;
>
>         for (allocated = 0; allocated < nr_pages;) {
> @@ -734,13 +734,13 @@ int btrfs_alloc_page_array(unsigned int nr_pages, struct page **page_array,
>   *
>   * For now, the folios populated are always in order 0 (aka, single page).
>   */
> -static int alloc_eb_folio_array(struct extent_buffer *eb, gfp_t extra_gfp)
> +static int alloc_eb_folio_array(struct extent_buffer *eb, bool nofail)
>  {
>         struct page *page_array[INLINE_EXTENT_BUFFER_PAGES] = { 0 };
>         int num_pages = num_extent_pages(eb);
>         int ret;
>
> -       ret = btrfs_alloc_page_array(num_pages, page_array, extra_gfp);
> +       ret = btrfs_alloc_page_array(num_pages, page_array, nofail);
>         if (ret < 0)
>                 return ret;
>
> @@ -2722,7 +2722,7 @@ struct extent_buffer *btrfs_clone_extent_buffer(const struct extent_buffer *src)
>          */
>         set_bit(EXTENT_BUFFER_UNMAPPED, &new->bflags);
>
> -       ret = alloc_eb_folio_array(new, 0);
> +       ret = alloc_eb_folio_array(new, false);
>         if (ret) {
>                 btrfs_release_extent_buffer(new);
>                 return NULL;
> @@ -2755,7 +2755,7 @@ struct extent_buffer *__alloc_dummy_extent_buffer(struct btrfs_fs_info *fs_info,
>         if (!eb)
>                 return NULL;
>
> -       ret = alloc_eb_folio_array(eb, 0);
> +       ret = alloc_eb_folio_array(eb, false);
>         if (ret)
>                 goto err;
>
> @@ -3121,7 +3121,7 @@ struct extent_buffer *alloc_extent_buffer(struct btrfs_fs_info *fs_info,
>
>  reallocate:
>         /* Allocate all pages first. */
> -       ret = alloc_eb_folio_array(eb, __GFP_NOFAIL);
> +       ret = alloc_eb_folio_array(eb, true);
>         if (ret < 0) {
>                 btrfs_free_subpage(prealloc);
>                 goto out;
> diff --git a/fs/btrfs/extent_io.h b/fs/btrfs/extent_io.h
> index 8364dcb1ace3..e0cf9a367373 100644
> --- a/fs/btrfs/extent_io.h
> +++ b/fs/btrfs/extent_io.h
> @@ -364,7 +364,7 @@ void btrfs_clear_buffer_dirty(struct btrfs_trans_handle *trans,
>                               struct extent_buffer *buf);
>
>  int btrfs_alloc_page_array(unsigned int nr_pages, struct page **page_array,
> -                          gfp_t extra_gfp);
> +                          bool nofail);
>  int btrfs_alloc_folio_array(unsigned int nr_folios, struct folio **folio_array);
>
>  #ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index 92ef9b01cf5e..0a11d309ee89 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -9128,7 +9128,7 @@ static ssize_t btrfs_encoded_read_regular(struct kiocb *iocb,
>         pages = kcalloc(nr_pages, sizeof(struct page *), GFP_NOFS);
>         if (!pages)
>                 return -ENOMEM;
> -       ret = btrfs_alloc_page_array(nr_pages, pages, 0);
> +       ret = btrfs_alloc_page_array(nr_pages, pages, false);
>         if (ret) {
>                 ret = -ENOMEM;
>                 goto out;
> diff --git a/fs/btrfs/raid56.c b/fs/btrfs/raid56.c
> index 3858c00936e8..39bec672df0c 100644
> --- a/fs/btrfs/raid56.c
> +++ b/fs/btrfs/raid56.c
> @@ -1051,7 +1051,7 @@ static int alloc_rbio_pages(struct btrfs_raid_bio *rbio)
>  {
>         int ret;
>
> -       ret = btrfs_alloc_page_array(rbio->nr_pages, rbio->stripe_pages, 0);
> +       ret = btrfs_alloc_page_array(rbio->nr_pages, rbio->stripe_pages, false);
>         if (ret < 0)
>                 return ret;
>         /* Mapping all sectors */
> @@ -1066,7 +1066,7 @@ static int alloc_rbio_parity_pages(struct btrfs_raid_bio *rbio)
>         int ret;
>
>         ret = btrfs_alloc_page_array(rbio->nr_pages - data_pages,
> -                                    rbio->stripe_pages + data_pages, 0);
> +                                    rbio->stripe_pages + data_pages, false);
>         if (ret < 0)
>                 return ret;
>
> @@ -1640,7 +1640,7 @@ static int alloc_rbio_data_pages(struct btrfs_raid_bio *rbio)
>         const int data_pages = rbio->nr_data * rbio->stripe_npages;
>         int ret;
>
> -       ret = btrfs_alloc_page_array(data_pages, rbio->stripe_pages, 0);
> +       ret = btrfs_alloc_page_array(data_pages, rbio->stripe_pages, false);
>         if (ret < 0)
>                 return ret;
>
> diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c
> index 4677a4f55b6a..14a8d7100018 100644
> --- a/fs/btrfs/scrub.c
> +++ b/fs/btrfs/scrub.c
> @@ -261,7 +261,7 @@ static int init_scrub_stripe(struct btrfs_fs_info *fs_info,
>         atomic_set(&stripe->pending_io, 0);
>         spin_lock_init(&stripe->write_error_lock);
>
> -       ret = btrfs_alloc_page_array(SCRUB_STRIPE_PAGES, stripe->pages, 0);
> +       ret = btrfs_alloc_page_array(SCRUB_STRIPE_PAGES, stripe->pages, false);
>         if (ret < 0)
>                 goto error;
>
> --
> 2.45.2
>
>
David Sterba July 1, 2024, 2:03 p.m. UTC | #2
On Fri, Jun 28, 2024 at 10:33:19AM +0100, Filipe Manana wrote:
> On Fri, Jun 28, 2024 at 5:22 AM Qu Wenruo <wqu@suse.com> wrote:
> >
> > There is only one caller utilizing the @extra_gfp parameter,
> > alloc_eb_folio_array().
> > And in that case the extra_gfp is only assigned to __GFP_NOFAIL.
> >
> > This patch would rename the @extra_gfp parameter to @nofail to indicate
> > that.
> 
> "would rename" -> renames

Ideally also leave out the whole 'This patch ...', I've been fixing that
when I notice it but I've just found more in now immutable patches so
it's obviously not perfect.
diff mbox series

Patch

diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index dc416bad9ad8..d3ce07ab9692 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -696,21 +696,21 @@  int btrfs_alloc_folio_array(unsigned int nr_folios, struct folio **folio_array)
 }
 
 /*
- * Populate every free slot in a provided array with pages.
+ * Populate every free slot in a provided array with pages, using GFP_NOFS.
  *
  * @nr_pages:   number of pages to allocate
  * @page_array: the array to fill with pages; any existing non-null entries in
- * 		the array will be skipped
- * @extra_gfp:	the extra GFP flags for the allocation.
+ *		the array will be skipped
+ * @nofail:	whether using __GFP_NOFAIL flag
  *
  * Return: 0        if all pages were able to be allocated;
  *         -ENOMEM  otherwise, the partially allocated pages would be freed and
  *                  the array slots zeroed
  */
 int btrfs_alloc_page_array(unsigned int nr_pages, struct page **page_array,
-			   gfp_t extra_gfp)
+			   bool nofail)
 {
-	const gfp_t gfp = GFP_NOFS | extra_gfp;
+	const gfp_t gfp = nofail ? (GFP_NOFS | __GFP_NOFAIL) : GFP_NOFS;
 	unsigned int allocated;
 
 	for (allocated = 0; allocated < nr_pages;) {
@@ -734,13 +734,13 @@  int btrfs_alloc_page_array(unsigned int nr_pages, struct page **page_array,
  *
  * For now, the folios populated are always in order 0 (aka, single page).
  */
-static int alloc_eb_folio_array(struct extent_buffer *eb, gfp_t extra_gfp)
+static int alloc_eb_folio_array(struct extent_buffer *eb, bool nofail)
 {
 	struct page *page_array[INLINE_EXTENT_BUFFER_PAGES] = { 0 };
 	int num_pages = num_extent_pages(eb);
 	int ret;
 
-	ret = btrfs_alloc_page_array(num_pages, page_array, extra_gfp);
+	ret = btrfs_alloc_page_array(num_pages, page_array, nofail);
 	if (ret < 0)
 		return ret;
 
@@ -2722,7 +2722,7 @@  struct extent_buffer *btrfs_clone_extent_buffer(const struct extent_buffer *src)
 	 */
 	set_bit(EXTENT_BUFFER_UNMAPPED, &new->bflags);
 
-	ret = alloc_eb_folio_array(new, 0);
+	ret = alloc_eb_folio_array(new, false);
 	if (ret) {
 		btrfs_release_extent_buffer(new);
 		return NULL;
@@ -2755,7 +2755,7 @@  struct extent_buffer *__alloc_dummy_extent_buffer(struct btrfs_fs_info *fs_info,
 	if (!eb)
 		return NULL;
 
-	ret = alloc_eb_folio_array(eb, 0);
+	ret = alloc_eb_folio_array(eb, false);
 	if (ret)
 		goto err;
 
@@ -3121,7 +3121,7 @@  struct extent_buffer *alloc_extent_buffer(struct btrfs_fs_info *fs_info,
 
 reallocate:
 	/* Allocate all pages first. */
-	ret = alloc_eb_folio_array(eb, __GFP_NOFAIL);
+	ret = alloc_eb_folio_array(eb, true);
 	if (ret < 0) {
 		btrfs_free_subpage(prealloc);
 		goto out;
diff --git a/fs/btrfs/extent_io.h b/fs/btrfs/extent_io.h
index 8364dcb1ace3..e0cf9a367373 100644
--- a/fs/btrfs/extent_io.h
+++ b/fs/btrfs/extent_io.h
@@ -364,7 +364,7 @@  void btrfs_clear_buffer_dirty(struct btrfs_trans_handle *trans,
 			      struct extent_buffer *buf);
 
 int btrfs_alloc_page_array(unsigned int nr_pages, struct page **page_array,
-			   gfp_t extra_gfp);
+			   bool nofail);
 int btrfs_alloc_folio_array(unsigned int nr_folios, struct folio **folio_array);
 
 #ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 92ef9b01cf5e..0a11d309ee89 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -9128,7 +9128,7 @@  static ssize_t btrfs_encoded_read_regular(struct kiocb *iocb,
 	pages = kcalloc(nr_pages, sizeof(struct page *), GFP_NOFS);
 	if (!pages)
 		return -ENOMEM;
-	ret = btrfs_alloc_page_array(nr_pages, pages, 0);
+	ret = btrfs_alloc_page_array(nr_pages, pages, false);
 	if (ret) {
 		ret = -ENOMEM;
 		goto out;
diff --git a/fs/btrfs/raid56.c b/fs/btrfs/raid56.c
index 3858c00936e8..39bec672df0c 100644
--- a/fs/btrfs/raid56.c
+++ b/fs/btrfs/raid56.c
@@ -1051,7 +1051,7 @@  static int alloc_rbio_pages(struct btrfs_raid_bio *rbio)
 {
 	int ret;
 
-	ret = btrfs_alloc_page_array(rbio->nr_pages, rbio->stripe_pages, 0);
+	ret = btrfs_alloc_page_array(rbio->nr_pages, rbio->stripe_pages, false);
 	if (ret < 0)
 		return ret;
 	/* Mapping all sectors */
@@ -1066,7 +1066,7 @@  static int alloc_rbio_parity_pages(struct btrfs_raid_bio *rbio)
 	int ret;
 
 	ret = btrfs_alloc_page_array(rbio->nr_pages - data_pages,
-				     rbio->stripe_pages + data_pages, 0);
+				     rbio->stripe_pages + data_pages, false);
 	if (ret < 0)
 		return ret;
 
@@ -1640,7 +1640,7 @@  static int alloc_rbio_data_pages(struct btrfs_raid_bio *rbio)
 	const int data_pages = rbio->nr_data * rbio->stripe_npages;
 	int ret;
 
-	ret = btrfs_alloc_page_array(data_pages, rbio->stripe_pages, 0);
+	ret = btrfs_alloc_page_array(data_pages, rbio->stripe_pages, false);
 	if (ret < 0)
 		return ret;
 
diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c
index 4677a4f55b6a..14a8d7100018 100644
--- a/fs/btrfs/scrub.c
+++ b/fs/btrfs/scrub.c
@@ -261,7 +261,7 @@  static int init_scrub_stripe(struct btrfs_fs_info *fs_info,
 	atomic_set(&stripe->pending_io, 0);
 	spin_lock_init(&stripe->write_error_lock);
 
-	ret = btrfs_alloc_page_array(SCRUB_STRIPE_PAGES, stripe->pages, 0);
+	ret = btrfs_alloc_page_array(SCRUB_STRIPE_PAGES, stripe->pages, false);
 	if (ret < 0)
 		goto error;