Revisão | 29737370120b0570ac52e334cfc4117d68b3d044 (tree) |
---|---|
Hora | 2016-01-30 08:13:48 |
Autor | Linus Torvalds <torvalds@linu...> |
Commiter | 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:
* 'stable/for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/mm:
@@ -242,7 +242,7 @@ static int tmem_cleancache_init_shared_fs(char *uuid, size_t pagesize) | ||
242 | 242 | return xen_tmem_new_pool(shared_uuid, TMEM_POOL_SHARED, pagesize); |
243 | 243 | } |
244 | 244 | |
245 | -static struct cleancache_ops tmem_cleancache_ops = { | |
245 | +static const struct cleancache_ops tmem_cleancache_ops = { | |
246 | 246 | .put_page = tmem_cleancache_put_page, |
247 | 247 | .get_page = tmem_cleancache_get_page, |
248 | 248 | .invalidate_page = tmem_cleancache_flush_page, |
@@ -37,7 +37,7 @@ struct cleancache_ops { | ||
37 | 37 | void (*invalidate_fs)(int); |
38 | 38 | }; |
39 | 39 | |
40 | -extern int cleancache_register_ops(struct cleancache_ops *ops); | |
40 | +extern int cleancache_register_ops(const struct cleancache_ops *ops); | |
41 | 41 | extern void __cleancache_init_fs(struct super_block *); |
42 | 42 | extern void __cleancache_init_shared_fs(struct super_block *); |
43 | 43 | extern int __cleancache_get_page(struct page *); |
@@ -48,14 +48,14 @@ extern void __cleancache_invalidate_fs(struct super_block *); | ||
48 | 48 | |
49 | 49 | #ifdef CONFIG_CLEANCACHE |
50 | 50 | #define cleancache_enabled (1) |
51 | -static inline bool cleancache_fs_enabled(struct page *page) | |
52 | -{ | |
53 | - return page->mapping->host->i_sb->cleancache_poolid >= 0; | |
54 | -} | |
55 | 51 | static inline bool cleancache_fs_enabled_mapping(struct address_space *mapping) |
56 | 52 | { |
57 | 53 | return mapping->host->i_sb->cleancache_poolid >= 0; |
58 | 54 | } |
55 | +static inline bool cleancache_fs_enabled(struct page *page) | |
56 | +{ | |
57 | + return cleancache_fs_enabled_mapping(page->mapping); | |
58 | +} | |
59 | 59 | #else |
60 | 60 | #define cleancache_enabled (0) |
61 | 61 | #define cleancache_fs_enabled(_page) (0) |
@@ -89,11 +89,9 @@ static inline void cleancache_init_shared_fs(struct super_block *sb) | ||
89 | 89 | |
90 | 90 | static inline int cleancache_get_page(struct page *page) |
91 | 91 | { |
92 | - int ret = -1; | |
93 | - | |
94 | 92 | if (cleancache_enabled && cleancache_fs_enabled(page)) |
95 | - ret = __cleancache_get_page(page); | |
96 | - return ret; | |
93 | + return __cleancache_get_page(page); | |
94 | + return -1; | |
97 | 95 | } |
98 | 96 | |
99 | 97 | static inline void cleancache_put_page(struct page *page) |
@@ -22,7 +22,7 @@ | ||
22 | 22 | * cleancache_ops is set by cleancache_register_ops to contain the pointers |
23 | 23 | * to the cleancache "backend" implementation functions. |
24 | 24 | */ |
25 | -static struct cleancache_ops *cleancache_ops __read_mostly; | |
25 | +static const struct cleancache_ops *cleancache_ops __read_mostly; | |
26 | 26 | |
27 | 27 | /* |
28 | 28 | * 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 | 49 | /* |
50 | 50 | * Register operations for cleancache. Returns 0 on success. |
51 | 51 | */ |
52 | -int cleancache_register_ops(struct cleancache_ops *ops) | |
52 | +int cleancache_register_ops(const struct cleancache_ops *ops) | |
53 | 53 | { |
54 | 54 | if (cmpxchg(&cleancache_ops, NULL, ops)) |
55 | 55 | return -EBUSY; |