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

