Commit c35f9273 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Wupeng Ma
Browse files

mm: move mapping_set_update out of <linux/swap.h>

mainline inclusion
from mainline-v6.9-rc1
commit b64e74e95aa6491b31477e9002aab1d8df3995bf
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IBMMCR

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b64e74e95aa6491b31477e9002aab1d8df3995bf



--------------------------------

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: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatar"Matthew Wilcox (Oracle)" <willy@infradead.org>
Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
Conflicts:
	mm/internal.h
	mm/filemap.c
[context conflicts]
Signed-off-by: default avatarKaixiong Yu <yukaixiong@huawei.com>
Signed-off-by: default avatarMa Wupeng <mawupeng1@huawei.com>
parent 01e57e5f
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -377,16 +377,6 @@ void *workingset_eviction(struct folio *folio, struct mem_cgroup *target_memcg);
void workingset_refault(struct folio *folio, void *shadow);
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 */
extern unsigned long totalreserve_pages;

+9 −0
Original line number Diff line number Diff line
@@ -128,6 +128,15 @@
 *    ->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,
				   struct folio *folio, void *shadow)
{
+4 −0
Original line number Diff line number Diff line
@@ -1496,4 +1496,8 @@ void unlink_file_vma_batch_init(struct unlink_vma_file_batch *);
void unlink_file_vma_batch_add(struct unlink_vma_file_batch *, struct vm_area_struct *);
void unlink_file_vma_batch_final(struct unlink_vma_file_batch *);

/* 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 */
+1 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
#include <linux/dax.h>
#include <linux/fs.h>
#include <linux/mm.h>
#include "internal.h"

/*
 *		Double CLOCK lists