[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a4a6606a-06f7-470f-9b57-816f78378143@oracle.com>
Date: Tue, 3 Feb 2026 20:26:20 -0800
From: jane.chu@...cle.com
To: Jiaqi Yan <jiaqiyan@...gle.com>, muchun.song@...ux.dev
Cc: osalvador@...e.de, david@...nel.org, william.roche@...cle.com,
linux-mm@...ck.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1] fs: hugetlb: simplify remove_inode_hugepages() return
type
On 2/2/2026 3:36 PM, Jiaqi Yan wrote:
> When remove_inode_hugepages is introduced in
> commit c86272287bc6 ("hugetlb: create remove_inode_single_folio to remove single file folio")
> it used to return a boolean to indicate if it bailed out due to race with
> page faults. However, since the race is already solved by [1],
> remove_inode_hugepages() doesn't have any path to return false anymore.
>
> Simplify remove_inode_hugepages() return type to void, remove the
> unnecessary ret variable, and adjust the call site in
> remove_inode_hugepages(). No functional change in this commit.
>
> [1] https://lore.kernel.org/all/20220914221810.95771-10-mike.kravetz@oracle.com
>
> Suggested-by: Jane Chu <jane.chu@...cle.com>
> Signed-off-by: Jiaqi Yan <jiaqiyan@...gle.com>
> ---
> fs/hugetlbfs/inode.c | 18 +++++++-----------
> 1 file changed, 7 insertions(+), 11 deletions(-)
>
> diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
> index 3b4c152c5c73a..83d71cea7e384 100644
> --- a/fs/hugetlbfs/inode.c
> +++ b/fs/hugetlbfs/inode.c
> @@ -515,13 +515,11 @@ hugetlb_vmdelete_list(struct rb_root_cached *root, pgoff_t start, pgoff_t end,
> * Called with hugetlb fault mutex held.
> * Returns true if page was actually removed, false otherwise.
> */
> -static bool remove_inode_single_folio(struct hstate *h, struct inode *inode,
> - struct address_space *mapping,
> - struct folio *folio, pgoff_t index,
> - bool truncate_op)
> +static void remove_inode_single_folio(struct hstate *h, struct inode *inode,
> + struct address_space *mapping,
> + struct folio *folio, pgoff_t index,
> + bool truncate_op)
> {
> - bool ret = false;
> -
> /*
> * If folio is mapped, it was faulted in after being
> * unmapped in caller or hugetlb_vmdelete_list() skips
> @@ -543,7 +541,6 @@ static bool remove_inode_single_folio(struct hstate *h, struct inode *inode,
> */
> VM_BUG_ON_FOLIO(folio_test_hugetlb_restore_reserve(folio), folio);
> hugetlb_delete_from_page_cache(folio);
> - ret = true;
> if (!truncate_op) {
> if (unlikely(hugetlb_unreserve_pages(inode, index,
> index + 1, 1)))
> @@ -551,7 +548,6 @@ static bool remove_inode_single_folio(struct hstate *h, struct inode *inode,
> }
>
> folio_unlock(folio);
> - return ret;
> }
>
> /*
> @@ -599,9 +595,9 @@ static void remove_inode_hugepages(struct inode *inode, loff_t lstart,
> /*
> * Remove folio that was part of folio_batch.
> */
> - if (remove_inode_single_folio(h, inode, mapping, folio,
> - index, truncate_op))
> - freed++;
> + remove_inode_single_folio(h, inode, mapping, folio,
> + index, truncate_op);
> + freed++;
>
> mutex_unlock(&hugetlb_fault_mutex_table[hash]);
> }
Looks good, thanks for the clean up.
Reviewed-by: Jane Chu <jane.chu@...cle.com>
-jane
Powered by blists - more mailing lists