Since owner tarcking is triggerred by pmem device, these functions are
useless.  So remove it.

Signed-off-by: Shiyang Ruan <ruansy.f...@cn.fujitsu.com>
---
 fs/dax.c            | 112 --------------------------------------------
 include/linux/dax.h |   2 -
 2 files changed, 114 deletions(-)

diff --git a/fs/dax.c b/fs/dax.c
index 799210cfa687..4267de360d79 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -323,48 +323,6 @@ static unsigned long dax_end_pfn(void *entry)
        for (pfn = dax_to_pfn(entry); \
                        pfn < dax_end_pfn(entry); pfn++)
 
-/*
- * TODO: for reflink+dax we need a way to associate a single page with
- * multiple address_space instances at different linear_page_index()
- * offsets.
- */
-static void dax_associate_entry(void *entry, struct address_space *mapping,
-               struct vm_area_struct *vma, unsigned long address)
-{
-       unsigned long size = dax_entry_size(entry), pfn, index;
-       int i = 0;
-
-       if (IS_ENABLED(CONFIG_FS_DAX_LIMITED))
-               return;
-
-       index = linear_page_index(vma, address & ~(size - 1));
-       for_each_mapped_pfn(entry, pfn) {
-               struct page *page = pfn_to_page(pfn);
-
-               WARN_ON_ONCE(page->mapping);
-               page->mapping = mapping;
-               page->index = index + i++;
-       }
-}
-
-static void dax_disassociate_entry(void *entry, struct address_space *mapping,
-               bool trunc)
-{
-       unsigned long pfn;
-
-       if (IS_ENABLED(CONFIG_FS_DAX_LIMITED))
-               return;
-
-       for_each_mapped_pfn(entry, pfn) {
-               struct page *page = pfn_to_page(pfn);
-
-               WARN_ON_ONCE(trunc && page_ref_count(page) > 1);
-               WARN_ON_ONCE(page->mapping && page->mapping != mapping);
-               page->mapping = NULL;
-               page->index = 0;
-       }
-}
-
 static struct page *dax_busy_page(void *entry)
 {
        unsigned long pfn;
@@ -399,72 +357,6 @@ unsigned long dax_load_pfn(struct address_space *mapping, 
unsigned long index)
        return pfn;
 }
 
-/*
- * dax_lock_mapping_entry - Lock the DAX entry corresponding to a page
- * @page: The page whose entry we want to lock
- *
- * Context: Process context.
- * Return: A cookie to pass to dax_unlock_page() or 0 if the entry could
- * not be locked.
- */
-dax_entry_t dax_lock_page(struct page *page)
-{
-       XA_STATE(xas, NULL, 0);
-       void *entry;
-
-       /* Ensure page->mapping isn't freed while we look at it */
-       rcu_read_lock();
-       for (;;) {
-               struct address_space *mapping = READ_ONCE(page->mapping);
-
-               entry = NULL;
-               if (!mapping || !dax_mapping(mapping))
-                       break;
-
-               /*
-                * In the device-dax case there's no need to lock, a
-                * struct dev_pagemap pin is sufficient to keep the
-                * inode alive, and we assume we have dev_pagemap pin
-                * otherwise we would not have a valid pfn_to_page()
-                * translation.
-                */
-               entry = (void *)~0UL;
-               if (S_ISCHR(mapping->host->i_mode))
-                       break;
-
-               xas.xa = &mapping->i_pages;
-               xas_lock_irq(&xas);
-               if (mapping != page->mapping) {
-                       xas_unlock_irq(&xas);
-                       continue;
-               }
-               xas_set(&xas, page->index);
-               entry = xas_load(&xas);
-               if (dax_is_locked(entry)) {
-                       rcu_read_unlock();
-                       wait_entry_unlocked(&xas, entry);
-                       rcu_read_lock();
-                       continue;
-               }
-               dax_lock_entry(&xas, entry);
-               xas_unlock_irq(&xas);
-               break;
-       }
-       rcu_read_unlock();
-       return (dax_entry_t)entry;
-}
-
-void dax_unlock_page(struct page *page, dax_entry_t cookie)
-{
-       struct address_space *mapping = page->mapping;
-       XA_STATE(xas, &mapping->i_pages, page->index);
-
-       if (S_ISCHR(mapping->host->i_mode))
-               return;
-
-       dax_unlock_entry(&xas, (void *)cookie);
-}
-
 /*
  * Find page cache entry at given index. If it is a DAX entry, return it
  * with the entry locked. If the page cache doesn't contain an entry at
@@ -543,7 +435,6 @@ static void *grab_mapping_entry(struct xa_state *xas,
                        xas_lock_irq(xas);
                }
 
-               dax_disassociate_entry(entry, mapping, false);
                xas_store(xas, NULL);   /* undo the PMD join */
                dax_wake_entry(xas, entry, true);
                mapping->nrexceptional--;
@@ -680,7 +571,6 @@ static int __dax_invalidate_entry(struct address_space 
*mapping,
            (xas_get_mark(&xas, PAGECACHE_TAG_DIRTY) ||
             xas_get_mark(&xas, PAGECACHE_TAG_TOWRITE)))
                goto out;
-       dax_disassociate_entry(entry, mapping, trunc);
        xas_store(&xas, NULL);
        mapping->nrexceptional--;
        ret = 1;
@@ -774,8 +664,6 @@ static void *dax_insert_entry(struct xa_state *xas,
        if (dax_is_zero_entry(entry) || dax_is_empty_entry(entry)) {
                void *old;
 
-               dax_disassociate_entry(entry, mapping, false);
-               dax_associate_entry(new_entry, mapping, vmf->vma, vmf->address);
                /*
                 * Only swap our new entry into the page cache if the current
                 * entry is a zero page or an empty entry.  If a normal PTE or
diff --git a/include/linux/dax.h b/include/linux/dax.h
index 89e56ceeffc7..c6b8dc094b26 100644
--- a/include/linux/dax.h
+++ b/include/linux/dax.h
@@ -151,8 +151,6 @@ int dax_writeback_mapping_range(struct address_space 
*mapping,
 struct page *dax_layout_busy_page(struct address_space *mapping);
 struct page *dax_layout_busy_page_range(struct address_space *mapping, loff_t 
start, loff_t end);
 unsigned long dax_load_pfn(struct address_space *mapping, unsigned long index);
-dax_entry_t dax_lock_page(struct page *page);
-void dax_unlock_page(struct page *page, dax_entry_t cookie);
 #else
 static inline bool bdev_dax_supported(struct block_device *bdev,
                int blocksize)
-- 
2.29.2



Reply via email to