Commit 29737370 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'stable/for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/mm

Pull cleancache cleanups from Konrad Rzeszutek Wilk:
 "Simple cleanups"

* 'stable/for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/mm:
  include/linux/cleancache.h: Clean up code
  cleancache: constify cleancache_ops structure
parents f6a239a9 a39bb9a0
...@@ -242,7 +242,7 @@ static int tmem_cleancache_init_shared_fs(char *uuid, size_t pagesize) ...@@ -242,7 +242,7 @@ static int tmem_cleancache_init_shared_fs(char *uuid, size_t pagesize)
return xen_tmem_new_pool(shared_uuid, TMEM_POOL_SHARED, pagesize); return xen_tmem_new_pool(shared_uuid, TMEM_POOL_SHARED, pagesize);
} }
static struct cleancache_ops tmem_cleancache_ops = { static const struct cleancache_ops tmem_cleancache_ops = {
.put_page = tmem_cleancache_put_page, .put_page = tmem_cleancache_put_page,
.get_page = tmem_cleancache_get_page, .get_page = tmem_cleancache_get_page,
.invalidate_page = tmem_cleancache_flush_page, .invalidate_page = tmem_cleancache_flush_page,
......
...@@ -37,7 +37,7 @@ struct cleancache_ops { ...@@ -37,7 +37,7 @@ struct cleancache_ops {
void (*invalidate_fs)(int); void (*invalidate_fs)(int);
}; };
extern int cleancache_register_ops(struct cleancache_ops *ops); extern int cleancache_register_ops(const struct cleancache_ops *ops);
extern void __cleancache_init_fs(struct super_block *); extern void __cleancache_init_fs(struct super_block *);
extern void __cleancache_init_shared_fs(struct super_block *); extern void __cleancache_init_shared_fs(struct super_block *);
extern int __cleancache_get_page(struct page *); extern int __cleancache_get_page(struct page *);
...@@ -48,14 +48,14 @@ extern void __cleancache_invalidate_fs(struct super_block *); ...@@ -48,14 +48,14 @@ extern void __cleancache_invalidate_fs(struct super_block *);
#ifdef CONFIG_CLEANCACHE #ifdef CONFIG_CLEANCACHE
#define cleancache_enabled (1) #define cleancache_enabled (1)
static inline bool cleancache_fs_enabled(struct page *page)
{
return page->mapping->host->i_sb->cleancache_poolid >= 0;
}
static inline bool cleancache_fs_enabled_mapping(struct address_space *mapping) static inline bool cleancache_fs_enabled_mapping(struct address_space *mapping)
{ {
return mapping->host->i_sb->cleancache_poolid >= 0; return mapping->host->i_sb->cleancache_poolid >= 0;
} }
static inline bool cleancache_fs_enabled(struct page *page)
{
return cleancache_fs_enabled_mapping(page->mapping);
}
#else #else
#define cleancache_enabled (0) #define cleancache_enabled (0)
#define cleancache_fs_enabled(_page) (0) #define cleancache_fs_enabled(_page) (0)
...@@ -89,11 +89,9 @@ static inline void cleancache_init_shared_fs(struct super_block *sb) ...@@ -89,11 +89,9 @@ static inline void cleancache_init_shared_fs(struct super_block *sb)
static inline int cleancache_get_page(struct page *page) static inline int cleancache_get_page(struct page *page)
{ {
int ret = -1;
if (cleancache_enabled && cleancache_fs_enabled(page)) if (cleancache_enabled && cleancache_fs_enabled(page))
ret = __cleancache_get_page(page); return __cleancache_get_page(page);
return ret; return -1;
} }
static inline void cleancache_put_page(struct page *page) static inline void cleancache_put_page(struct page *page)
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* cleancache_ops is set by cleancache_register_ops to contain the pointers * cleancache_ops is set by cleancache_register_ops to contain the pointers
* to the cleancache "backend" implementation functions. * to the cleancache "backend" implementation functions.
*/ */
static struct cleancache_ops *cleancache_ops __read_mostly; static const struct cleancache_ops *cleancache_ops __read_mostly;
/* /*
* Counters available via /sys/kernel/debug/cleancache (if debugfs is * Counters available via /sys/kernel/debug/cleancache (if debugfs is
...@@ -49,7 +49,7 @@ static void cleancache_register_ops_sb(struct super_block *sb, void *unused) ...@@ -49,7 +49,7 @@ static void cleancache_register_ops_sb(struct super_block *sb, void *unused)
/* /*
* Register operations for cleancache. Returns 0 on success. * Register operations for cleancache. Returns 0 on success.
*/ */
int cleancache_register_ops(struct cleancache_ops *ops) int cleancache_register_ops(const struct cleancache_ops *ops)
{ {
if (cmpxchg(&cleancache_ops, NULL, ops)) if (cmpxchg(&cleancache_ops, NULL, ops))
return -EBUSY; return -EBUSY;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment