The patch titled Subject: frontswap: remove frontswap_tmem_exclusive_gets has been added to the -mm tree. Its filename is frontswap-remove-frontswap_tmem_exclusive_gets.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/frontswap-remove-frontswap_tmem_exclusive_gets.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/frontswap-remove-frontswap_tmem_exclusive_gets.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Christoph Hellwig <hch@xxxxxx> Subject: frontswap: remove frontswap_tmem_exclusive_gets frontswap_tmem_exclusive_gets is never called, so remove it. Link: https://lkml.kernel.org/r/20211224062246.1258487-4-hch@xxxxxx Signed-off-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Juergen Gross <jgross@xxxxxxxx> Cc: Dan Streetman <ddstreet@xxxxxxxx> Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> Cc: Hugh Dickins <hughd@xxxxxxxxxx> Cc: Konrad Rzeszutek Wilk <Konrad.wilk@xxxxxxxxxx> Cc: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> Cc: Seth Jennings <sjenning@xxxxxxxxxx> Cc: Vitaly Wool <vitaly.wool@xxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/frontswap.h | 2 -- mm/frontswap.c | 23 +---------------------- 2 files changed, 1 insertion(+), 24 deletions(-) --- a/include/linux/frontswap.h~frontswap-remove-frontswap_tmem_exclusive_gets +++ a/include/linux/frontswap.h @@ -26,8 +26,6 @@ struct frontswap_ops { extern void frontswap_register_ops(struct frontswap_ops *ops); extern void frontswap_shrink(unsigned long); extern unsigned long frontswap_curr_pages(void); -#define FRONTSWAP_HAS_EXCLUSIVE_GETS -extern void frontswap_tmem_exclusive_gets(bool); extern bool __frontswap_test(struct swap_info_struct *, pgoff_t); extern void __frontswap_init(unsigned type, unsigned long *map); --- a/mm/frontswap.c~frontswap-remove-frontswap_tmem_exclusive_gets +++ a/mm/frontswap.c @@ -32,13 +32,6 @@ static struct frontswap_ops *frontswap_o #define for_each_frontswap_ops(ops) \ for ((ops) = frontswap_ops; (ops); (ops) = (ops)->next) -/* - * If enabled, the underlying tmem implementation is capable of doing - * exclusive gets, so frontswap_load, on a successful tmem_get must - * mark the page as no longer in frontswap AND mark it dirty. - */ -static bool frontswap_tmem_exclusive_gets_enabled __read_mostly; - #ifdef CONFIG_DEBUG_FS /* * Counters available via /sys/kernel/debug/frontswap (if debugfs is @@ -161,15 +154,6 @@ void frontswap_register_ops(struct front EXPORT_SYMBOL(frontswap_register_ops); /* - * Enable/disable frontswap exclusive gets (see above). - */ -void frontswap_tmem_exclusive_gets(bool enable) -{ - frontswap_tmem_exclusive_gets_enabled = enable; -} -EXPORT_SYMBOL(frontswap_tmem_exclusive_gets); - -/* * Called when a swap device is swapon'd. */ void __frontswap_init(unsigned type, unsigned long *map) @@ -296,13 +280,8 @@ int __frontswap_load(struct page *page) if (!ret) /* successful load */ break; } - if (ret == 0) { + if (ret == 0) inc_frontswap_loads(); - if (frontswap_tmem_exclusive_gets_enabled) { - SetPageDirty(page); - __frontswap_clear(sis, offset); - } - } return ret; } EXPORT_SYMBOL(__frontswap_load); _ Patches currently in -mm which might be from hch@xxxxxx are mm-remove-cleancache.patch frontswap-remove-frontswap_writethrough.patch frontswap-remove-frontswap_tmem_exclusive_gets.patch frontswap-remove-frontswap_shrink.patch frontswap-remove-frontswap_curr_pages.patch frontswap-simplify-frontswap_init.patch frontswap-remove-the-frontswap-exports.patch mm-simplify-try_to_unuse.patch frontswap-remove-frontswap_test.patch frontswap-simplify-frontswap_register_ops.patch mm-mark-swap_lock-and-swap_active_head-static.patch frontswap-remove-support-for-multiple-ops.patch mm-hide-the-frontswap-kconfig-symbol.patch