On Fri 04-09-26 23:27:49, Kaitao Cheng wrote:
> From: Kaitao Cheng <[email protected]>
> 
> dax_layout_busy_page_range() no longer has callers outside fs/dax.c.
> Keeping the range helper exported unnecessarily exposes a low-level
> implementation detail.
> 
> Make the helper static and remove its export and header definitions.
> 
> Also fix the stale dax_layout_busy_page_range() comment to match the
> implementation.
> 
> Signed-off-by: Kaitao Cheng <[email protected]>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <[email protected]>

                                                                Honza

> ---
>  fs/dax.c            | 18 ++++++++----------
>  include/linux/dax.h |  6 ------
>  2 files changed, 8 insertions(+), 16 deletions(-)
> 
> diff --git a/fs/dax.c b/fs/dax.c
> index 1e19e4a354ce..c6ad9533aa54 100644
> --- a/fs/dax.c
> +++ b/fs/dax.c
> @@ -770,24 +770,23 @@ static void *grab_mapping_entry(struct xa_state *xas,
>  
>  /**
>   * dax_layout_busy_page_range - find first pinned page in @mapping
> - * @mapping: address space to scan for a page with ref count > 1
> + * @mapping: address space to scan for a pinned page
>   * @start: Starting offset. Page containing 'start' is included.
>   * @end: End offset. Page containing 'end' is included. If 'end' is 
> LLONG_MAX,
>   *       pages from 'start' till the end of file are included.
>   *
> - * DAX requires ZONE_DEVICE mapped pages. These pages are never
> - * 'onlined' to the page allocator so they are considered idle when
> - * page->count == 1. A filesystem uses this interface to determine if
> - * any page in the mapping is busy, i.e. for DMA, or other
> - * get_user_pages() usages.
> + * DAX requires ZONE_DEVICE mapped pages. A page is considered busy when
> + * folio_ref_count(folio) exceeds folio_mapcount(folio). This helper is
> + * used to determine if any page in the mapping is busy, i.e. for DMA,
> + * or other get_user_pages() usages.
>   *
>   * It is expected that the filesystem is holding locks to block the
>   * establishment of new mappings in this address_space. I.e. it expects
> - * to be able to run unmap_mapping_range() and subsequently not race
> + * to be able to run unmap_mapping_pages() and subsequently not race
>   * mapping_mapped() becoming true.
>   */
> -struct page *dax_layout_busy_page_range(struct address_space *mapping,
> -                                     loff_t start, loff_t end)
> +static struct page *dax_layout_busy_page_range(struct address_space *mapping,
> +                                            loff_t start, loff_t end)
>  {
>       void *entry;
>       unsigned int scanned = 0;
> @@ -839,7 +838,6 @@ struct page *dax_layout_busy_page_range(struct 
> address_space *mapping,
>       xas_unlock_irq(&xas);
>       return page;
>  }
> -EXPORT_SYMBOL_GPL(dax_layout_busy_page_range);
>  
>  static int __dax_invalidate_entry(struct address_space *mapping,
>                                 pgoff_t index, bool trunc)
> diff --git a/include/linux/dax.h b/include/linux/dax.h
> index 05e59e45a1c2..f2d47975d905 100644
> --- a/include/linux/dax.h
> +++ b/include/linux/dax.h
> @@ -155,7 +155,6 @@ int dax_writeback_mapping_range(struct address_space 
> *mapping,
>               struct dax_device *dax_dev, struct writeback_control *wbc);
>  int dax_folio_reset_order(struct folio *folio);
>  
> -struct page *dax_layout_busy_page_range(struct address_space *mapping, 
> loff_t start, loff_t end);
>  dax_entry_t dax_lock_folio(struct folio *folio);
>  void dax_unlock_folio(struct folio *folio, dax_entry_t cookie);
>  dax_entry_t dax_lock_mapping_entry(struct address_space *mapping,
> @@ -172,11 +171,6 @@ static inline int fs_dax_get(struct dax_device *dax_dev, 
> void *holder,
>  {
>       return -EOPNOTSUPP;
>  }
> -static inline struct page *dax_layout_busy_page_range(struct address_space 
> *mapping, pgoff_t start, pgoff_t nr_pages)
> -{
> -     return NULL;
> -}
> -
>  static inline int dax_writeback_mapping_range(struct address_space *mapping,
>               struct dax_device *dax_dev, struct writeback_control *wbc)
>  {
> -- 
> 2.50.1 (Apple Git-155)
> 
-- 
Jan Kara <[email protected]>
SUSE Labs, CR

Reply via email to