diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-29 18:13:48 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-29 18:13:48 -0500 |
| commit | 29737370120b0570ac52e334cfc4117d68b3d044 (patch) | |
| tree | 05b3505187402dce85603367211a4720ead9a466 | |
| parent | f6a239a927905278fe378670d5d880f3aa157bdf (diff) | |
| parent | a39bb9a0557a3fc860c3c9d67a7326b0d2f1bd66 (diff) | |
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
| -rw-r--r-- | drivers/xen/tmem.c | 2 | ||||
| -rw-r--r-- | include/linux/cleancache.h | 16 | ||||
| -rw-r--r-- | mm/cleancache.c | 4 |
3 files changed, 10 insertions, 12 deletions
diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c index 945fc4327201..4ac2ca8a7656 100644 --- a/drivers/xen/tmem.c +++ b/drivers/xen/tmem.c | |||
| @@ -242,7 +242,7 @@ static int tmem_cleancache_init_shared_fs(char *uuid, size_t pagesize) | |||
| 242 | return xen_tmem_new_pool(shared_uuid, TMEM_POOL_SHARED, pagesize); | 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 | .put_page = tmem_cleancache_put_page, | 246 | .put_page = tmem_cleancache_put_page, |
| 247 | .get_page = tmem_cleancache_get_page, | 247 | .get_page = tmem_cleancache_get_page, |
| 248 | .invalidate_page = tmem_cleancache_flush_page, | 248 | .invalidate_page = tmem_cleancache_flush_page, |
diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h index bda5ec0b4b4d..fccf7f44139d 100644 --- a/include/linux/cleancache.h +++ b/include/linux/cleancache.h | |||
| @@ -37,7 +37,7 @@ struct cleancache_ops { | |||
| 37 | void (*invalidate_fs)(int); | 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 | extern void __cleancache_init_fs(struct super_block *); | 41 | extern void __cleancache_init_fs(struct super_block *); |
| 42 | extern void __cleancache_init_shared_fs(struct super_block *); | 42 | extern void __cleancache_init_shared_fs(struct super_block *); |
| 43 | extern int __cleancache_get_page(struct page *); | 43 | extern int __cleancache_get_page(struct page *); |
| @@ -48,14 +48,14 @@ extern void __cleancache_invalidate_fs(struct super_block *); | |||
| 48 | 48 | ||
| 49 | #ifdef CONFIG_CLEANCACHE | 49 | #ifdef CONFIG_CLEANCACHE |
| 50 | #define cleancache_enabled (1) | 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 | static inline bool cleancache_fs_enabled_mapping(struct address_space *mapping) | 51 | static inline bool cleancache_fs_enabled_mapping(struct address_space *mapping) |
| 56 | { | 52 | { |
| 57 | return mapping->host->i_sb->cleancache_poolid >= 0; | 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 | #else | 59 | #else |
| 60 | #define cleancache_enabled (0) | 60 | #define cleancache_enabled (0) |
| 61 | #define cleancache_fs_enabled(_page) (0) | 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 | static inline int cleancache_get_page(struct page *page) | 90 | static inline int cleancache_get_page(struct page *page) |
| 91 | { | 91 | { |
| 92 | int ret = -1; | ||
| 93 | |||
| 94 | if (cleancache_enabled && cleancache_fs_enabled(page)) | 92 | if (cleancache_enabled && cleancache_fs_enabled(page)) |
| 95 | ret = __cleancache_get_page(page); | 93 | return __cleancache_get_page(page); |
| 96 | return ret; | 94 | return -1; |
| 97 | } | 95 | } |
| 98 | 96 | ||
| 99 | static inline void cleancache_put_page(struct page *page) | 97 | static inline void cleancache_put_page(struct page *page) |
diff --git a/mm/cleancache.c b/mm/cleancache.c index 8fc50811119b..ba5d8f3e6d68 100644 --- a/mm/cleancache.c +++ b/mm/cleancache.c | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | * cleancache_ops is set by cleancache_register_ops to contain the pointers | 22 | * cleancache_ops is set by cleancache_register_ops to contain the pointers |
| 23 | * to the cleancache "backend" implementation functions. | 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 | * Counters available via /sys/kernel/debug/cleancache (if debugfs is | 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 | * Register operations for cleancache. Returns 0 on success. | 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 | if (cmpxchg(&cleancache_ops, NULL, ops)) | 54 | if (cmpxchg(&cleancache_ops, NULL, ops)) |
| 55 | return -EBUSY; | 55 | return -EBUSY; |
