mm: move mapping_set_update out of <linux/swap.h>
mapping_set_update is only used inside mm/. Move mapping_set_update to mm/internal.h and turn it into an inline function instead of a macro. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: "Matthew Wilcox (Oracle)" <willy@infradead.org> Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>
This commit is contained in:
parent
7d5ba7ca6a
commit
b64e74e95a
@ -350,16 +350,6 @@ void *workingset_eviction(struct folio *folio, struct mem_cgroup *target_memcg);
|
|||||||
void workingset_refault(struct folio *folio, void *shadow);
|
void workingset_refault(struct folio *folio, void *shadow);
|
||||||
void workingset_activation(struct folio *folio);
|
void workingset_activation(struct folio *folio);
|
||||||
|
|
||||||
/* Only track the nodes of mappings with shadow entries */
|
|
||||||
void workingset_update_node(struct xa_node *node);
|
|
||||||
extern struct list_lru shadow_nodes;
|
|
||||||
#define mapping_set_update(xas, mapping) do { \
|
|
||||||
if (!dax_mapping(mapping) && !shmem_mapping(mapping)) { \
|
|
||||||
xas_set_update(xas, workingset_update_node); \
|
|
||||||
xas_set_lru(xas, &shadow_nodes); \
|
|
||||||
} \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
/* linux/mm/page_alloc.c */
|
/* linux/mm/page_alloc.c */
|
||||||
extern unsigned long totalreserve_pages;
|
extern unsigned long totalreserve_pages;
|
||||||
|
|
||||||
|
@ -124,6 +124,15 @@
|
|||||||
* ->private_lock (zap_pte_range->block_dirty_folio)
|
* ->private_lock (zap_pte_range->block_dirty_folio)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
static void mapping_set_update(struct xa_state *xas,
|
||||||
|
struct address_space *mapping)
|
||||||
|
{
|
||||||
|
if (dax_mapping(mapping) || shmem_mapping(mapping))
|
||||||
|
return;
|
||||||
|
xas_set_update(xas, workingset_update_node);
|
||||||
|
xas_set_lru(xas, &shadow_nodes);
|
||||||
|
}
|
||||||
|
|
||||||
static void page_cache_delete(struct address_space *mapping,
|
static void page_cache_delete(struct address_space *mapping,
|
||||||
struct folio *folio, void *shadow)
|
struct folio *folio, void *shadow)
|
||||||
{
|
{
|
||||||
|
@ -1266,4 +1266,8 @@ static inline void shrinker_debugfs_remove(struct dentry *debugfs_entry,
|
|||||||
}
|
}
|
||||||
#endif /* CONFIG_SHRINKER_DEBUG */
|
#endif /* CONFIG_SHRINKER_DEBUG */
|
||||||
|
|
||||||
|
/* Only track the nodes of mappings with shadow entries */
|
||||||
|
void workingset_update_node(struct xa_node *node);
|
||||||
|
extern struct list_lru shadow_nodes;
|
||||||
|
|
||||||
#endif /* __MM_INTERNAL_H */
|
#endif /* __MM_INTERNAL_H */
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include <linux/dax.h>
|
#include <linux/dax.h>
|
||||||
#include <linux/fs.h>
|
#include <linux/fs.h>
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
|
#include "internal.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Double CLOCK lists
|
* Double CLOCK lists
|
||||||
|
Loading…
Reference in New Issue
Block a user