[PATCH v8 02/20] fs/dax: Return unmapped busy pages from dax_layout_busy_page_range()
Alistair Popple
apopple at nvidia.com
Tue Feb 18 14:55:18 AEDT 2025
dax_layout_busy_page_range() is used by file systems to scan the DAX
page-cache to unmap mapping pages from user-space and to determine if
any pages in the given range are busy, either due to ongoing DMA or
other get_user_pages() usage.
Currently it checks to see the file mapping is mapped into user-space
with mapping_mapped() and returns early if not, skipping the check for
DMA busy pages. This is wrong as pages may still be undergoing DMA
access even if they have subsequently been unmapped from
user-space. Fix this by dropping the check for mapping_mapped().
Signed-off-by: Alistair Popple <apopple at nvidia.com>
Suggested-by: Dan Williams <dan.j.williams at intel.com>
Reviewed-by: Dan Williams <dan.j.williams at intel.com>
Reviewed-by: Balbir Singh <balbirs at nvidia.com>
---
fs/dax.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/dax.c b/fs/dax.c
index 972febc..b35f538 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -691,7 +691,7 @@ struct page *dax_layout_busy_page_range(struct address_space *mapping,
if (IS_ENABLED(CONFIG_FS_DAX_LIMITED))
return NULL;
- if (!dax_mapping(mapping) || !mapping_mapped(mapping))
+ if (!dax_mapping(mapping))
return NULL;
/* If end == LLONG_MAX, all pages from start to till end of file */
--
git-series 0.9.1
More information about the Linuxppc-dev
mailing list