diff options
author | Ross Zwisler <ross.zwisler@linux.intel.com> | 2016-11-08 11:32:20 +1100 |
---|---|---|
committer | Dave Chinner <david@fromorbit.com> | 2016-11-08 11:32:20 +1100 |
commit | 63e95b5c4f16e156b98adcf2f7d820ba941c82a3 (patch) | |
tree | d8f6bf08bde092b10bf5222dec67fec720e89376 /mm | |
parent | e3ad61c64abceeb5cc122f0bde3700e6e17ca60a (diff) | |
download | linux-63e95b5c4f16e156b98adcf2f7d820ba941c82a3.tar.gz linux-63e95b5c4f16e156b98adcf2f7d820ba941c82a3.tar.bz2 linux-63e95b5c4f16e156b98adcf2f7d820ba941c82a3.zip |
dax: coordinate locking for offsets in PMD range
DAX radix tree locking currently locks entries based on the unique
combination of the 'mapping' pointer and the pgoff_t 'index' for the entry.
This works for PTEs, but as we move to PMDs we will need to have all the
offsets within the range covered by the PMD to map to the same bit lock.
To accomplish this, for ranges covered by a PMD entry we will instead lock
based on the page offset of the beginning of the PMD entry. The 'mapping'
pointer is still used in the same way.
Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/filemap.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/filemap.c b/mm/filemap.c index 849f459ad078..1ffb7dcd1b5d 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -143,7 +143,7 @@ static int page_cache_tree_insert(struct address_space *mapping, if (node) workingset_node_pages_dec(node); /* Wakeup waiters for exceptional entry lock */ - dax_wake_mapping_entry_waiter(mapping, page->index, + dax_wake_mapping_entry_waiter(mapping, page->index, p, false); } } |