The patch titled Subject: dax: account DAX entries as nrpages has been added to the -mm tree. Its filename is dax-account-dax-entries-as-nrpages.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/dax-account-dax-entries-as-nrpages.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/dax-account-dax-entries-as-nrpages.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: "Matthew Wilcox (Oracle)" <willy@xxxxxxxxxxxxx> Subject: dax: account DAX entries as nrpages Simplify mapping_needs_writeback() by accounting DAX entries as pages instead of exceptional entries. Link: https://lkml.kernel.org/r/20201026151849.24232-4-willy@xxxxxxxxxxxxx Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> Tested-by: Vishal Verma <vishal.l.verma@xxxxxxxxx> Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- fs/dax.c | 6 +++--- mm/filemap.c | 3 --- 2 files changed, 3 insertions(+), 6 deletions(-) --- a/fs/dax.c~dax-account-dax-entries-as-nrpages +++ a/fs/dax.c @@ -525,7 +525,7 @@ retry: dax_disassociate_entry(entry, mapping, false); xas_store(xas, NULL); /* undo the PMD join */ dax_wake_entry(xas, entry, true); - mapping->nrexceptional--; + mapping->nrpages -= PG_PMD_NR; entry = NULL; xas_set(xas, index); } @@ -541,7 +541,7 @@ retry: dax_lock_entry(xas, entry); if (xas_error(xas)) goto out_unlock; - mapping->nrexceptional++; + mapping->nrpages += 1UL << order; } out_unlock: @@ -661,7 +661,7 @@ static int __dax_invalidate_entry(struct goto out; dax_disassociate_entry(entry, mapping, trunc); xas_store(&xas, NULL); - mapping->nrexceptional--; + mapping->nrpages -= 1UL << dax_entry_order(entry); ret = 1; out: put_unlocked_entry(&xas, entry); --- a/mm/filemap.c~dax-account-dax-entries-as-nrpages +++ a/mm/filemap.c @@ -618,9 +618,6 @@ EXPORT_SYMBOL(filemap_fdatawait_keep_err /* Returns true if writeback might be needed or already in progress. */ static bool mapping_needs_writeback(struct address_space *mapping) { - if (dax_mapping(mapping)) - return mapping->nrexceptional; - return mapping->nrpages; } _ Patches currently in -mm which might be from willy@xxxxxxxxxxxxx are mm-filemap-use-filemap_read_page-in-filemap_fault.patch mm-filemap-drop-check-for-truncated-page-after-i-o.patch mm-introduce-and-use-mapping_empty.patch mm-stop-accounting-shadow-entries.patch dax-account-dax-entries-as-nrpages.patch mm-remove-nrexceptional-from-inode.patch mm-page_alloc-rename-alloc_mask-to-alloc_gfp.patch mm-page_alloc-rename-gfp_mask-to-gfp.patch mm-page_alloc-combine-__alloc_pages-and-__alloc_pages_nodemask.patch mm-mempolicy-rename-alloc_pages_current-to-alloc_pages.patch mm-mempolicy-rewrite-alloc_pages-documentation.patch mm-mempolicy-rewrite-alloc_pages_vma-documentation.patch mm-mempolicy-fix-mpol_misplaced-kernel-doc.patch include-remove-pagemaph-from-blkdevh.patch