diff options
author | Matthew Wilcox (Oracle) <willy@infradead.org> | 2020-08-04 11:22:31 -0400 |
---|---|---|
committer | Matthew Wilcox (Oracle) <willy@infradead.org> | 2020-10-26 11:03:56 -0400 |
commit | 7a9db887dc4b5581a8529fc2af8eae2060ed5e71 (patch) | |
tree | 252f351a836f1c83ff9adff6efcbf6b56e03abc9 | |
parent | 5b000fee9c9fb17aeb0e3241f89bb3d2eefb14c9 (diff) |
dax: Account DAX entries as nrpages
Simplify mapping_needs_writeback() by accounting DAX entries as
pages instead of exceptional entries.
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Tested-by: Vishal Verma <vishal.l.verma@intel.com>
-rw-r--r-- | fs/dax.c | 6 | ||||
-rw-r--r-- | mm/filemap.c | 3 |
2 files changed, 3 insertions, 6 deletions
@@ -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 address_space *mapping, 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); diff --git a/mm/filemap.c b/mm/filemap.c index 2e68116be4b0..2214a2c48dd1 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -616,9 +616,6 @@ EXPORT_SYMBOL(filemap_fdatawait_keep_errors); /* 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; } |