* [PATCH] cleancache: constify cleancache_ops structure
@ 2015-12-23 21:06 ` Julia Lawall
0 siblings, 0 replies; 29+ messages in thread
From: Julia Lawall @ 2015-12-23 21:06 UTC (permalink / raw)
To: linux-mm
Cc: kernel-janitors, linux-kernel, Konrad Rzeszutek Wilk,
Boris Ostrovsky, David Vrabel, xen-devel
The cleancache_ops structure is never modified, so declare it as const.
This also removes the __read_mostly declaration on the cleancache_ops
variable declaration, since it seems redundant with const.
Done with the help of Coccinelle.
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
---
Not sure that the __read_mostly change is correct. Does it apply to the
variable, or to what the variable points to?
drivers/xen/tmem.c | 2 +-
include/linux/cleancache.h | 2 +-
mm/cleancache.c | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
index bda5ec0b4..cb3e142 100644
--- a/include/linux/cleancache.h
+++ b/include/linux/cleancache.h
@@ -37,7 +37,7 @@ struct cleancache_ops {
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_shared_fs(struct super_block *);
extern int __cleancache_get_page(struct page *);
diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c
index 945fc43..4ac2ca8 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)
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,
.get_page = tmem_cleancache_get_page,
.invalidate_page = tmem_cleancache_flush_page,
diff --git a/mm/cleancache.c b/mm/cleancache.c
index 8fc5081..c6356d6 100644
--- a/mm/cleancache.c
+++ b/mm/cleancache.c
@@ -22,7 +22,7 @@
* cleancache_ops is set by cleancache_register_ops to contain the pointers
* to the cleancache "backend" implementation functions.
*/
-static struct cleancache_ops *cleancache_ops __read_mostly;
+static const struct cleancache_ops *cleancache_ops;
/*
* 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)
/*
* 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))
return -EBUSY;
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH] cleancache: constify cleancache_ops structure
@ 2015-12-23 21:06 ` Julia Lawall
0 siblings, 0 replies; 29+ messages in thread
From: Julia Lawall @ 2015-12-23 21:06 UTC (permalink / raw)
To: linux-mm
Cc: kernel-janitors, linux-kernel, Konrad Rzeszutek Wilk,
Boris Ostrovsky, David Vrabel, xen-devel
The cleancache_ops structure is never modified, so declare it as const.
This also removes the __read_mostly declaration on the cleancache_ops
variable declaration, since it seems redundant with const.
Done with the help of Coccinelle.
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
---
Not sure that the __read_mostly change is correct. Does it apply to the
variable, or to what the variable points to?
drivers/xen/tmem.c | 2 +-
include/linux/cleancache.h | 2 +-
mm/cleancache.c | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
index bda5ec0b4..cb3e142 100644
--- a/include/linux/cleancache.h
+++ b/include/linux/cleancache.h
@@ -37,7 +37,7 @@ struct cleancache_ops {
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_shared_fs(struct super_block *);
extern int __cleancache_get_page(struct page *);
diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c
index 945fc43..4ac2ca8 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)
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,
.get_page = tmem_cleancache_get_page,
.invalidate_page = tmem_cleancache_flush_page,
diff --git a/mm/cleancache.c b/mm/cleancache.c
index 8fc5081..c6356d6 100644
--- a/mm/cleancache.c
+++ b/mm/cleancache.c
@@ -22,7 +22,7 @@
* cleancache_ops is set by cleancache_register_ops to contain the pointers
* to the cleancache "backend" implementation functions.
*/
-static struct cleancache_ops *cleancache_ops __read_mostly;
+static const struct cleancache_ops *cleancache_ops;
/*
* 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)
/*
* 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))
return -EBUSY;
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH] cleancache: constify cleancache_ops structure
@ 2015-12-23 21:06 ` Julia Lawall
0 siblings, 0 replies; 29+ messages in thread
From: Julia Lawall @ 2015-12-23 21:06 UTC (permalink / raw)
To: linux-mm
Cc: kernel-janitors, linux-kernel, Konrad Rzeszutek Wilk,
Boris Ostrovsky, David Vrabel, xen-devel
The cleancache_ops structure is never modified, so declare it as const.
This also removes the __read_mostly declaration on the cleancache_ops
variable declaration, since it seems redundant with const.
Done with the help of Coccinelle.
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
---
Not sure that the __read_mostly change is correct. Does it apply to the
variable, or to what the variable points to?
drivers/xen/tmem.c | 2 +-
include/linux/cleancache.h | 2 +-
mm/cleancache.c | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
index bda5ec0b4..cb3e142 100644
--- a/include/linux/cleancache.h
+++ b/include/linux/cleancache.h
@@ -37,7 +37,7 @@ struct cleancache_ops {
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_shared_fs(struct super_block *);
extern int __cleancache_get_page(struct page *);
diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c
index 945fc43..4ac2ca8 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)
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,
.get_page = tmem_cleancache_get_page,
.invalidate_page = tmem_cleancache_flush_page,
diff --git a/mm/cleancache.c b/mm/cleancache.c
index 8fc5081..c6356d6 100644
--- a/mm/cleancache.c
+++ b/mm/cleancache.c
@@ -22,7 +22,7 @@
* cleancache_ops is set by cleancache_register_ops to contain the pointers
* to the cleancache "backend" implementation functions.
*/
-static struct cleancache_ops *cleancache_ops __read_mostly;
+static const struct cleancache_ops *cleancache_ops;
/*
* 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)
/*
* 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))
return -EBUSY;
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply related [flat|nested] 29+ messages in thread
* Re: [PATCH] cleancache: constify cleancache_ops structure
2015-12-23 21:06 ` Julia Lawall
(?)
(?)
@ 2016-01-20 22:20 ` Konrad Rzeszutek Wilk
2016-01-21 20:00 ` Rasmus Villemoes
2016-01-21 20:00 ` Rasmus Villemoes
-1 siblings, 2 replies; 29+ messages in thread
From: Konrad Rzeszutek Wilk @ 2016-01-20 22:20 UTC (permalink / raw)
To: Julia Lawall
Cc: linux-mm, kernel-janitors, linux-kernel, Boris Ostrovsky,
David Vrabel, xen-devel
On Wed, Dec 23, 2015 at 10:06:24PM +0100, Julia Lawall wrote:
> The cleancache_ops structure is never modified, so declare it as const.
>
> This also removes the __read_mostly declaration on the cleancache_ops
> variable declaration, since it seems redundant with const.
>
> Done with the help of Coccinelle.
>
> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
>
> ---
>
> Not sure that the __read_mostly change is correct. Does it apply to the
> variable, or to what the variable points to?
It should just put the structure in the right section (.rodata).
Thanks for the patch!
>
> drivers/xen/tmem.c | 2 +-
> include/linux/cleancache.h | 2 +-
> mm/cleancache.c | 4 ++--
> 3 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
> index bda5ec0b4..cb3e142 100644
> --- a/include/linux/cleancache.h
> +++ b/include/linux/cleancache.h
> @@ -37,7 +37,7 @@ struct cleancache_ops {
> 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_shared_fs(struct super_block *);
> extern int __cleancache_get_page(struct page *);
> diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c
> index 945fc43..4ac2ca8 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)
> 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,
> .get_page = tmem_cleancache_get_page,
> .invalidate_page = tmem_cleancache_flush_page,
> diff --git a/mm/cleancache.c b/mm/cleancache.c
> index 8fc5081..c6356d6 100644
> --- a/mm/cleancache.c
> +++ b/mm/cleancache.c
> @@ -22,7 +22,7 @@
> * cleancache_ops is set by cleancache_register_ops to contain the pointers
> * to the cleancache "backend" implementation functions.
> */
> -static struct cleancache_ops *cleancache_ops __read_mostly;
> +static const struct cleancache_ops *cleancache_ops;
>
> /*
> * 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)
> /*
> * 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))
> return -EBUSY;
>
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH] cleancache: constify cleancache_ops structure
2015-12-23 21:06 ` Julia Lawall
` (2 preceding siblings ...)
(?)
@ 2016-01-20 22:20 ` Konrad Rzeszutek Wilk
-1 siblings, 0 replies; 29+ messages in thread
From: Konrad Rzeszutek Wilk @ 2016-01-20 22:20 UTC (permalink / raw)
To: Julia Lawall
Cc: kernel-janitors, linux-kernel, linux-mm, David Vrabel, xen-devel,
Boris Ostrovsky
On Wed, Dec 23, 2015 at 10:06:24PM +0100, Julia Lawall wrote:
> The cleancache_ops structure is never modified, so declare it as const.
>
> This also removes the __read_mostly declaration on the cleancache_ops
> variable declaration, since it seems redundant with const.
>
> Done with the help of Coccinelle.
>
> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
>
> ---
>
> Not sure that the __read_mostly change is correct. Does it apply to the
> variable, or to what the variable points to?
It should just put the structure in the right section (.rodata).
Thanks for the patch!
>
> drivers/xen/tmem.c | 2 +-
> include/linux/cleancache.h | 2 +-
> mm/cleancache.c | 4 ++--
> 3 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
> index bda5ec0b4..cb3e142 100644
> --- a/include/linux/cleancache.h
> +++ b/include/linux/cleancache.h
> @@ -37,7 +37,7 @@ struct cleancache_ops {
> 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_shared_fs(struct super_block *);
> extern int __cleancache_get_page(struct page *);
> diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c
> index 945fc43..4ac2ca8 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)
> 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,
> .get_page = tmem_cleancache_get_page,
> .invalidate_page = tmem_cleancache_flush_page,
> diff --git a/mm/cleancache.c b/mm/cleancache.c
> index 8fc5081..c6356d6 100644
> --- a/mm/cleancache.c
> +++ b/mm/cleancache.c
> @@ -22,7 +22,7 @@
> * cleancache_ops is set by cleancache_register_ops to contain the pointers
> * to the cleancache "backend" implementation functions.
> */
> -static struct cleancache_ops *cleancache_ops __read_mostly;
> +static const struct cleancache_ops *cleancache_ops;
>
> /*
> * 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)
> /*
> * 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))
> return -EBUSY;
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [Xen-devel] [PATCH] cleancache: constify cleancache_ops structure
2015-12-23 21:06 ` Julia Lawall
(?)
@ 2016-01-21 10:45 ` David Vrabel
-1 siblings, 0 replies; 29+ messages in thread
From: David Vrabel @ 2016-01-21 10:45 UTC (permalink / raw)
To: Julia Lawall, linux-mm
Cc: kernel-janitors, linux-kernel, David Vrabel, xen-devel, Boris Ostrovsky
On 23/12/15 21:06, Julia Lawall wrote:
> The cleancache_ops structure is never modified, so declare it as const.
>
> This also removes the __read_mostly declaration on the cleancache_ops
> variable declaration, since it seems redundant with const.
>
> Done with the help of Coccinelle.
>
> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
>
> ---
>
> Not sure that the __read_mostly change is correct. Does it apply to the
> variable, or to what the variable points to?
The variable, so...
> --- a/mm/cleancache.c
> +++ b/mm/cleancache.c
> @@ -22,7 +22,7 @@
> * cleancache_ops is set by cleancache_register_ops to contain the pointers
> * to the cleancache "backend" implementation functions.
> */
> -static struct cleancache_ops *cleancache_ops __read_mostly;
> +static const struct cleancache_ops *cleancache_ops;
...you want to retain the __read_mostly here.
David
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [Xen-devel] [PATCH] cleancache: constify cleancache_ops structure
@ 2016-01-21 10:45 ` David Vrabel
0 siblings, 0 replies; 29+ messages in thread
From: David Vrabel @ 2016-01-21 10:45 UTC (permalink / raw)
To: Julia Lawall, linux-mm
Cc: kernel-janitors, linux-kernel, David Vrabel, xen-devel, Boris Ostrovsky
On 23/12/15 21:06, Julia Lawall wrote:
> The cleancache_ops structure is never modified, so declare it as const.
>
> This also removes the __read_mostly declaration on the cleancache_ops
> variable declaration, since it seems redundant with const.
>
> Done with the help of Coccinelle.
>
> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
>
> ---
>
> Not sure that the __read_mostly change is correct. Does it apply to the
> variable, or to what the variable points to?
The variable, so...
> --- a/mm/cleancache.c
> +++ b/mm/cleancache.c
> @@ -22,7 +22,7 @@
> * cleancache_ops is set by cleancache_register_ops to contain the pointers
> * to the cleancache "backend" implementation functions.
> */
> -static struct cleancache_ops *cleancache_ops __read_mostly;
> +static const struct cleancache_ops *cleancache_ops;
...you want to retain the __read_mostly here.
David
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [Xen-devel] [PATCH] cleancache: constify cleancache_ops structure
@ 2016-01-21 10:45 ` David Vrabel
0 siblings, 0 replies; 29+ messages in thread
From: David Vrabel @ 2016-01-21 10:45 UTC (permalink / raw)
To: Julia Lawall, linux-mm
Cc: kernel-janitors, linux-kernel, David Vrabel, xen-devel, Boris Ostrovsky
On 23/12/15 21:06, Julia Lawall wrote:
> The cleancache_ops structure is never modified, so declare it as const.
>
> This also removes the __read_mostly declaration on the cleancache_ops
> variable declaration, since it seems redundant with const.
>
> Done with the help of Coccinelle.
>
> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
>
> ---
>
> Not sure that the __read_mostly change is correct. Does it apply to the
> variable, or to what the variable points to?
The variable, so...
> --- a/mm/cleancache.c
> +++ b/mm/cleancache.c
> @@ -22,7 +22,7 @@
> * cleancache_ops is set by cleancache_register_ops to contain the pointers
> * to the cleancache "backend" implementation functions.
> */
> -static struct cleancache_ops *cleancache_ops __read_mostly;
> +static const struct cleancache_ops *cleancache_ops;
...you want to retain the __read_mostly here.
David
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH] cleancache: constify cleancache_ops structure
2015-12-23 21:06 ` Julia Lawall
` (3 preceding siblings ...)
(?)
@ 2016-01-21 10:45 ` David Vrabel
-1 siblings, 0 replies; 29+ messages in thread
From: David Vrabel @ 2016-01-21 10:45 UTC (permalink / raw)
To: Julia Lawall, linux-mm
Cc: xen-devel, Boris Ostrovsky, kernel-janitors, linux-kernel, David Vrabel
On 23/12/15 21:06, Julia Lawall wrote:
> The cleancache_ops structure is never modified, so declare it as const.
>
> This also removes the __read_mostly declaration on the cleancache_ops
> variable declaration, since it seems redundant with const.
>
> Done with the help of Coccinelle.
>
> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
>
> ---
>
> Not sure that the __read_mostly change is correct. Does it apply to the
> variable, or to what the variable points to?
The variable, so...
> --- a/mm/cleancache.c
> +++ b/mm/cleancache.c
> @@ -22,7 +22,7 @@
> * cleancache_ops is set by cleancache_register_ops to contain the pointers
> * to the cleancache "backend" implementation functions.
> */
> -static struct cleancache_ops *cleancache_ops __read_mostly;
> +static const struct cleancache_ops *cleancache_ops;
...you want to retain the __read_mostly here.
David
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [Xen-devel] [PATCH] cleancache: constify cleancache_ops structure
2016-01-21 10:45 ` David Vrabel
(?)
@ 2016-01-21 11:06 ` Julia Lawall
-1 siblings, 0 replies; 29+ messages in thread
From: Julia Lawall @ 2016-01-21 11:06 UTC (permalink / raw)
To: David Vrabel
Cc: linux-mm, kernel-janitors, linux-kernel, xen-devel, Boris Ostrovsky
On Thu, 21 Jan 2016, David Vrabel wrote:
> On 23/12/15 21:06, Julia Lawall wrote:
> > The cleancache_ops structure is never modified, so declare it as const.
> >
> > This also removes the __read_mostly declaration on the cleancache_ops
> > variable declaration, since it seems redundant with const.
> >
> > Done with the help of Coccinelle.
> >
> > Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
> >
> > ---
> >
> > Not sure that the __read_mostly change is correct. Does it apply to the
> > variable, or to what the variable points to?
>
> The variable, so...
Thanks. I'll update the patch, unless you have already fixed it.
julia
> > --- a/mm/cleancache.c
> > +++ b/mm/cleancache.c
> > @@ -22,7 +22,7 @@
> > * cleancache_ops is set by cleancache_register_ops to contain the pointers
> > * to the cleancache "backend" implementation functions.
> > */
> > -static struct cleancache_ops *cleancache_ops __read_mostly;
> > +static const struct cleancache_ops *cleancache_ops;
>
> ...you want to retain the __read_mostly here.
>
> David
> --
> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [Xen-devel] [PATCH] cleancache: constify cleancache_ops structure
@ 2016-01-21 11:06 ` Julia Lawall
0 siblings, 0 replies; 29+ messages in thread
From: Julia Lawall @ 2016-01-21 11:06 UTC (permalink / raw)
To: David Vrabel
Cc: linux-mm, kernel-janitors, linux-kernel, xen-devel, Boris Ostrovsky
On Thu, 21 Jan 2016, David Vrabel wrote:
> On 23/12/15 21:06, Julia Lawall wrote:
> > The cleancache_ops structure is never modified, so declare it as const.
> >
> > This also removes the __read_mostly declaration on the cleancache_ops
> > variable declaration, since it seems redundant with const.
> >
> > Done with the help of Coccinelle.
> >
> > Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
> >
> > ---
> >
> > Not sure that the __read_mostly change is correct. Does it apply to the
> > variable, or to what the variable points to?
>
> The variable, so...
Thanks. I'll update the patch, unless you have already fixed it.
julia
> > --- a/mm/cleancache.c
> > +++ b/mm/cleancache.c
> > @@ -22,7 +22,7 @@
> > * cleancache_ops is set by cleancache_register_ops to contain the pointers
> > * to the cleancache "backend" implementation functions.
> > */
> > -static struct cleancache_ops *cleancache_ops __read_mostly;
> > +static const struct cleancache_ops *cleancache_ops;
>
> ...you want to retain the __read_mostly here.
>
> David
> --
> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [Xen-devel] [PATCH] cleancache: constify cleancache_ops structure
@ 2016-01-21 11:06 ` Julia Lawall
0 siblings, 0 replies; 29+ messages in thread
From: Julia Lawall @ 2016-01-21 11:06 UTC (permalink / raw)
To: David Vrabel
Cc: linux-mm, kernel-janitors, linux-kernel, xen-devel, Boris Ostrovsky
On Thu, 21 Jan 2016, David Vrabel wrote:
> On 23/12/15 21:06, Julia Lawall wrote:
> > The cleancache_ops structure is never modified, so declare it as const.
> >
> > This also removes the __read_mostly declaration on the cleancache_ops
> > variable declaration, since it seems redundant with const.
> >
> > Done with the help of Coccinelle.
> >
> > Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
> >
> > ---
> >
> > Not sure that the __read_mostly change is correct. Does it apply to the
> > variable, or to what the variable points to?
>
> The variable, so...
Thanks. I'll update the patch, unless you have already fixed it.
julia
> > --- a/mm/cleancache.c
> > +++ b/mm/cleancache.c
> > @@ -22,7 +22,7 @@
> > * cleancache_ops is set by cleancache_register_ops to contain the pointers
> > * to the cleancache "backend" implementation functions.
> > */
> > -static struct cleancache_ops *cleancache_ops __read_mostly;
> > +static const struct cleancache_ops *cleancache_ops;
>
> ...you want to retain the __read_mostly here.
>
> David
> --
> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH] cleancache: constify cleancache_ops structure
2016-01-21 10:45 ` David Vrabel
(?)
(?)
@ 2016-01-21 11:06 ` Julia Lawall
-1 siblings, 0 replies; 29+ messages in thread
From: Julia Lawall @ 2016-01-21 11:06 UTC (permalink / raw)
To: David Vrabel
Cc: linux-mm, Boris Ostrovsky, kernel-janitors, linux-kernel, xen-devel
On Thu, 21 Jan 2016, David Vrabel wrote:
> On 23/12/15 21:06, Julia Lawall wrote:
> > The cleancache_ops structure is never modified, so declare it as const.
> >
> > This also removes the __read_mostly declaration on the cleancache_ops
> > variable declaration, since it seems redundant with const.
> >
> > Done with the help of Coccinelle.
> >
> > Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
> >
> > ---
> >
> > Not sure that the __read_mostly change is correct. Does it apply to the
> > variable, or to what the variable points to?
>
> The variable, so...
Thanks. I'll update the patch, unless you have already fixed it.
julia
> > --- a/mm/cleancache.c
> > +++ b/mm/cleancache.c
> > @@ -22,7 +22,7 @@
> > * cleancache_ops is set by cleancache_register_ops to contain the pointers
> > * to the cleancache "backend" implementation functions.
> > */
> > -static struct cleancache_ops *cleancache_ops __read_mostly;
> > +static const struct cleancache_ops *cleancache_ops;
>
> ...you want to retain the __read_mostly here.
>
> David
> --
> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* [Xen-devel] [PATCH v2] cleancache: constify cleancache_ops structure
2016-01-21 10:45 ` David Vrabel
(?)
@ 2016-01-21 15:47 ` Julia Lawall
-1 siblings, 0 replies; 29+ messages in thread
From: Julia Lawall @ 2016-01-21 15:47 UTC (permalink / raw)
To: David Vrabel
Cc: linux-mm, kernel-janitors, linux-kernel, xen-devel, Boris Ostrovsky
The cleancache_ops structure is never modified, so declare it as const.
Done with the help of Coccinelle.
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
---
v2: put back the read mostly
drivers/xen/tmem.c | 2 +-
include/linux/cleancache.h | 2 +-
mm/cleancache.c | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
index bda5ec0b4..cb3e142 100644
--- a/include/linux/cleancache.h
+++ b/include/linux/cleancache.h
@@ -37,7 +37,7 @@ struct cleancache_ops {
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_shared_fs(struct super_block *);
extern int __cleancache_get_page(struct page *);
diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c
index 945fc43..4ac2ca8 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)
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,
.get_page = tmem_cleancache_get_page,
.invalidate_page = tmem_cleancache_flush_page,
diff --git a/mm/cleancache.c b/mm/cleancache.c
index 8fc5081..c6356d6 100644
--- a/mm/cleancache.c
+++ b/mm/cleancache.c
@@ -22,7 +22,7 @@
* cleancache_ops is set by cleancache_register_ops to contain the pointers
* 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
@@ -49,7 +49,7 @@ static void cleancache_register_ops_sb(struct super_block *sb, void *unused)
/*
* 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))
return -EBUSY;
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [Xen-devel] [PATCH v2] cleancache: constify cleancache_ops structure
@ 2016-01-21 15:47 ` Julia Lawall
0 siblings, 0 replies; 29+ messages in thread
From: Julia Lawall @ 2016-01-21 15:47 UTC (permalink / raw)
To: David Vrabel
Cc: linux-mm, kernel-janitors, linux-kernel, xen-devel, Boris Ostrovsky
The cleancache_ops structure is never modified, so declare it as const.
Done with the help of Coccinelle.
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
---
v2: put back the read mostly
drivers/xen/tmem.c | 2 +-
include/linux/cleancache.h | 2 +-
mm/cleancache.c | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
index bda5ec0b4..cb3e142 100644
--- a/include/linux/cleancache.h
+++ b/include/linux/cleancache.h
@@ -37,7 +37,7 @@ struct cleancache_ops {
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_shared_fs(struct super_block *);
extern int __cleancache_get_page(struct page *);
diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c
index 945fc43..4ac2ca8 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)
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,
.get_page = tmem_cleancache_get_page,
.invalidate_page = tmem_cleancache_flush_page,
diff --git a/mm/cleancache.c b/mm/cleancache.c
index 8fc5081..c6356d6 100644
--- a/mm/cleancache.c
+++ b/mm/cleancache.c
@@ -22,7 +22,7 @@
* cleancache_ops is set by cleancache_register_ops to contain the pointers
* 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
@@ -49,7 +49,7 @@ static void cleancache_register_ops_sb(struct super_block *sb, void *unused)
/*
* 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))
return -EBUSY;
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [Xen-devel] [PATCH v2] cleancache: constify cleancache_ops structure
@ 2016-01-21 15:47 ` Julia Lawall
0 siblings, 0 replies; 29+ messages in thread
From: Julia Lawall @ 2016-01-21 15:47 UTC (permalink / raw)
To: David Vrabel
Cc: linux-mm, kernel-janitors, linux-kernel, xen-devel, Boris Ostrovsky
The cleancache_ops structure is never modified, so declare it as const.
Done with the help of Coccinelle.
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
---
v2: put back the read mostly
drivers/xen/tmem.c | 2 +-
include/linux/cleancache.h | 2 +-
mm/cleancache.c | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
index bda5ec0b4..cb3e142 100644
--- a/include/linux/cleancache.h
+++ b/include/linux/cleancache.h
@@ -37,7 +37,7 @@ struct cleancache_ops {
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_shared_fs(struct super_block *);
extern int __cleancache_get_page(struct page *);
diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c
index 945fc43..4ac2ca8 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)
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,
.get_page = tmem_cleancache_get_page,
.invalidate_page = tmem_cleancache_flush_page,
diff --git a/mm/cleancache.c b/mm/cleancache.c
index 8fc5081..c6356d6 100644
--- a/mm/cleancache.c
+++ b/mm/cleancache.c
@@ -22,7 +22,7 @@
* cleancache_ops is set by cleancache_register_ops to contain the pointers
* 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
@@ -49,7 +49,7 @@ static void cleancache_register_ops_sb(struct super_block *sb, void *unused)
/*
* 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))
return -EBUSY;
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH v2] cleancache: constify cleancache_ops structure
2016-01-21 10:45 ` David Vrabel
` (4 preceding siblings ...)
(?)
@ 2016-01-21 15:47 ` Julia Lawall
-1 siblings, 0 replies; 29+ messages in thread
From: Julia Lawall @ 2016-01-21 15:47 UTC (permalink / raw)
To: David Vrabel
Cc: linux-mm, Boris Ostrovsky, kernel-janitors, linux-kernel, xen-devel
The cleancache_ops structure is never modified, so declare it as const.
Done with the help of Coccinelle.
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
---
v2: put back the read mostly
drivers/xen/tmem.c | 2 +-
include/linux/cleancache.h | 2 +-
mm/cleancache.c | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
index bda5ec0b4..cb3e142 100644
--- a/include/linux/cleancache.h
+++ b/include/linux/cleancache.h
@@ -37,7 +37,7 @@ struct cleancache_ops {
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_shared_fs(struct super_block *);
extern int __cleancache_get_page(struct page *);
diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c
index 945fc43..4ac2ca8 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)
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,
.get_page = tmem_cleancache_get_page,
.invalidate_page = tmem_cleancache_flush_page,
diff --git a/mm/cleancache.c b/mm/cleancache.c
index 8fc5081..c6356d6 100644
--- a/mm/cleancache.c
+++ b/mm/cleancache.c
@@ -22,7 +22,7 @@
* cleancache_ops is set by cleancache_register_ops to contain the pointers
* 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
@@ -49,7 +49,7 @@ static void cleancache_register_ops_sb(struct super_block *sb, void *unused)
/*
* 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))
return -EBUSY;
^ permalink raw reply related [flat|nested] 29+ messages in thread
* Re: [PATCH] cleancache: constify cleancache_ops structure
2016-01-20 22:20 ` Konrad Rzeszutek Wilk
2016-01-21 20:00 ` Rasmus Villemoes
@ 2016-01-21 20:00 ` Rasmus Villemoes
1 sibling, 0 replies; 29+ messages in thread
From: Rasmus Villemoes @ 2016-01-21 20:00 UTC (permalink / raw)
To: Konrad Rzeszutek Wilk
Cc: Julia Lawall, linux-mm, kernel-janitors, linux-kernel,
Boris Ostrovsky, David Vrabel, xen-devel
On Wed, Jan 20 2016, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
> On Wed, Dec 23, 2015 at 10:06:24PM +0100, Julia Lawall wrote:
>> The cleancache_ops structure is never modified, so declare it as const.
>>
>> This also removes the __read_mostly declaration on the cleancache_ops
>> variable declaration, since it seems redundant with const.
>>
>> Done with the help of Coccinelle.
>>
>> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
>>
>> ---
>>
>> Not sure that the __read_mostly change is correct. Does it apply to the
>> variable, or to what the variable points to?
>
> It should just put the structure in the right section (.rodata).
>
> Thanks for the patch!
The __read_mostly marker should probably be left there...
>> */
>> -static struct cleancache_ops *cleancache_ops __read_mostly;
>> +static const struct cleancache_ops *cleancache_ops;
>>
>> /*
>> * 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)
>> /*
>> * 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))
>> return -EBUSY;
>>
I don't know this code, but I assume that this is mostly a one-time
thing, so once cleancache_ops gets its value assigned, it doesn't
change, and that's what the __read_mostly is about (it applies to the
object declared, not whatever it happens to point to).
(Also, the commit message is slightly inaccurate: it is
tmem_cleancache_ops which is never changed and hence declared const;
changing the various pointers to it to const is just a necessary followup).
Rasmus
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH] cleancache: constify cleancache_ops structure
@ 2016-01-21 20:00 ` Rasmus Villemoes
0 siblings, 0 replies; 29+ messages in thread
From: Rasmus Villemoes @ 2016-01-21 20:00 UTC (permalink / raw)
To: Konrad Rzeszutek Wilk
Cc: Julia Lawall, linux-mm, kernel-janitors, linux-kernel,
Boris Ostrovsky, David Vrabel, xen-devel
On Wed, Jan 20 2016, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
> On Wed, Dec 23, 2015 at 10:06:24PM +0100, Julia Lawall wrote:
>> The cleancache_ops structure is never modified, so declare it as const.
>>
>> This also removes the __read_mostly declaration on the cleancache_ops
>> variable declaration, since it seems redundant with const.
>>
>> Done with the help of Coccinelle.
>>
>> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
>>
>> ---
>>
>> Not sure that the __read_mostly change is correct. Does it apply to the
>> variable, or to what the variable points to?
>
> It should just put the structure in the right section (.rodata).
>
> Thanks for the patch!
The __read_mostly marker should probably be left there...
>> */
>> -static struct cleancache_ops *cleancache_ops __read_mostly;
>> +static const struct cleancache_ops *cleancache_ops;
>>
>> /*
>> * 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)
>> /*
>> * 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))
>> return -EBUSY;
>>
I don't know this code, but I assume that this is mostly a one-time
thing, so once cleancache_ops gets its value assigned, it doesn't
change, and that's what the __read_mostly is about (it applies to the
object declared, not whatever it happens to point to).
(Also, the commit message is slightly inaccurate: it is
tmem_cleancache_ops which is never changed and hence declared const;
changing the various pointers to it to const is just a necessary followup).
Rasmus
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH] cleancache: constify cleancache_ops structure
@ 2016-01-21 20:00 ` Rasmus Villemoes
0 siblings, 0 replies; 29+ messages in thread
From: Rasmus Villemoes @ 2016-01-21 20:00 UTC (permalink / raw)
To: Konrad Rzeszutek Wilk
Cc: Julia Lawall, linux-mm, kernel-janitors, linux-kernel,
Boris Ostrovsky, David Vrabel, xen-devel
On Wed, Jan 20 2016, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
> On Wed, Dec 23, 2015 at 10:06:24PM +0100, Julia Lawall wrote:
>> The cleancache_ops structure is never modified, so declare it as const.
>>
>> This also removes the __read_mostly declaration on the cleancache_ops
>> variable declaration, since it seems redundant with const.
>>
>> Done with the help of Coccinelle.
>>
>> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
>>
>> ---
>>
>> Not sure that the __read_mostly change is correct. Does it apply to the
>> variable, or to what the variable points to?
>
> It should just put the structure in the right section (.rodata).
>
> Thanks for the patch!
The __read_mostly marker should probably be left there...
>> */
>> -static struct cleancache_ops *cleancache_ops __read_mostly;
>> +static const struct cleancache_ops *cleancache_ops;
>>
>> /*
>> * 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)
>> /*
>> * 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))
>> return -EBUSY;
>>
I don't know this code, but I assume that this is mostly a one-time
thing, so once cleancache_ops gets its value assigned, it doesn't
change, and that's what the __read_mostly is about (it applies to the
object declared, not whatever it happens to point to).
(Also, the commit message is slightly inaccurate: it is
tmem_cleancache_ops which is never changed and hence declared const;
changing the various pointers to it to const is just a necessary followup).
Rasmus
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH] cleancache: constify cleancache_ops structure
2016-01-20 22:20 ` Konrad Rzeszutek Wilk
2016-01-21 20:00 ` Rasmus Villemoes
@ 2016-01-21 20:00 ` Rasmus Villemoes
1 sibling, 0 replies; 29+ messages in thread
From: Rasmus Villemoes @ 2016-01-21 20:00 UTC (permalink / raw)
To: Konrad Rzeszutek Wilk
Cc: linux-mm, kernel-janitors, linux-kernel, Julia Lawall,
David Vrabel, xen-devel, Boris Ostrovsky
On Wed, Jan 20 2016, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
> On Wed, Dec 23, 2015 at 10:06:24PM +0100, Julia Lawall wrote:
>> The cleancache_ops structure is never modified, so declare it as const.
>>
>> This also removes the __read_mostly declaration on the cleancache_ops
>> variable declaration, since it seems redundant with const.
>>
>> Done with the help of Coccinelle.
>>
>> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
>>
>> ---
>>
>> Not sure that the __read_mostly change is correct. Does it apply to the
>> variable, or to what the variable points to?
>
> It should just put the structure in the right section (.rodata).
>
> Thanks for the patch!
The __read_mostly marker should probably be left there...
>> */
>> -static struct cleancache_ops *cleancache_ops __read_mostly;
>> +static const struct cleancache_ops *cleancache_ops;
>>
>> /*
>> * 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)
>> /*
>> * 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))
>> return -EBUSY;
>>
I don't know this code, but I assume that this is mostly a one-time
thing, so once cleancache_ops gets its value assigned, it doesn't
change, and that's what the __read_mostly is about (it applies to the
object declared, not whatever it happens to point to).
(Also, the commit message is slightly inaccurate: it is
tmem_cleancache_ops which is never changed and hence declared const;
changing the various pointers to it to const is just a necessary followup).
Rasmus
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH] cleancache: constify cleancache_ops structure
2016-01-21 20:00 ` Rasmus Villemoes
(?)
@ 2016-01-21 20:03 ` Julia Lawall
-1 siblings, 0 replies; 29+ messages in thread
From: Julia Lawall @ 2016-01-21 20:03 UTC (permalink / raw)
To: Rasmus Villemoes
Cc: Konrad Rzeszutek Wilk, Julia Lawall, linux-mm, kernel-janitors,
linux-kernel, Boris Ostrovsky, David Vrabel, xen-devel
On Thu, 21 Jan 2016, Rasmus Villemoes wrote:
> On Wed, Jan 20 2016, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
>
> > On Wed, Dec 23, 2015 at 10:06:24PM +0100, Julia Lawall wrote:
> >> The cleancache_ops structure is never modified, so declare it as const.
> >>
> >> This also removes the __read_mostly declaration on the cleancache_ops
> >> variable declaration, since it seems redundant with const.
> >>
> >> Done with the help of Coccinelle.
> >>
> >> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
> >>
> >> ---
> >>
> >> Not sure that the __read_mostly change is correct. Does it apply to the
> >> variable, or to what the variable points to?
> >
> > It should just put the structure in the right section (.rodata).
> >
> > Thanks for the patch!
>
> The __read_mostly marker should probably be left there...
I sent a corrected version this afternoon.
>
> >> */
> >> -static struct cleancache_ops *cleancache_ops __read_mostly;
> >> +static const struct cleancache_ops *cleancache_ops;
> >>
> >> /*
> >> * 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)
> >> /*
> >> * 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))
> >> return -EBUSY;
> >>
>
> I don't know this code, but I assume that this is mostly a one-time
> thing, so once cleancache_ops gets its value assigned, it doesn't
> change, and that's what the __read_mostly is about (it applies to the
> object declared, not whatever it happens to point to).
>
> (Also, the commit message is slightly inaccurate: it is
> tmem_cleancache_ops which is never changed and hence declared const;
> changing the various pointers to it to const is just a necessary followup).
OK, in general, I have referred to the type rather than the structure name
in these patches, since there can be more than one structure.
julia
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH] cleancache: constify cleancache_ops structure
@ 2016-01-21 20:03 ` Julia Lawall
0 siblings, 0 replies; 29+ messages in thread
From: Julia Lawall @ 2016-01-21 20:03 UTC (permalink / raw)
To: Rasmus Villemoes
Cc: Konrad Rzeszutek Wilk, Julia Lawall, linux-mm, kernel-janitors,
linux-kernel, Boris Ostrovsky, David Vrabel, xen-devel
On Thu, 21 Jan 2016, Rasmus Villemoes wrote:
> On Wed, Jan 20 2016, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
>
> > On Wed, Dec 23, 2015 at 10:06:24PM +0100, Julia Lawall wrote:
> >> The cleancache_ops structure is never modified, so declare it as const.
> >>
> >> This also removes the __read_mostly declaration on the cleancache_ops
> >> variable declaration, since it seems redundant with const.
> >>
> >> Done with the help of Coccinelle.
> >>
> >> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
> >>
> >> ---
> >>
> >> Not sure that the __read_mostly change is correct. Does it apply to the
> >> variable, or to what the variable points to?
> >
> > It should just put the structure in the right section (.rodata).
> >
> > Thanks for the patch!
>
> The __read_mostly marker should probably be left there...
I sent a corrected version this afternoon.
>
> >> */
> >> -static struct cleancache_ops *cleancache_ops __read_mostly;
> >> +static const struct cleancache_ops *cleancache_ops;
> >>
> >> /*
> >> * 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)
> >> /*
> >> * 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))
> >> return -EBUSY;
> >>
>
> I don't know this code, but I assume that this is mostly a one-time
> thing, so once cleancache_ops gets its value assigned, it doesn't
> change, and that's what the __read_mostly is about (it applies to the
> object declared, not whatever it happens to point to).
>
> (Also, the commit message is slightly inaccurate: it is
> tmem_cleancache_ops which is never changed and hence declared const;
> changing the various pointers to it to const is just a necessary followup).
OK, in general, I have referred to the type rather than the structure name
in these patches, since there can be more than one structure.
julia
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH] cleancache: constify cleancache_ops structure
@ 2016-01-21 20:03 ` Julia Lawall
0 siblings, 0 replies; 29+ messages in thread
From: Julia Lawall @ 2016-01-21 20:03 UTC (permalink / raw)
To: Rasmus Villemoes
Cc: Konrad Rzeszutek Wilk, Julia Lawall, linux-mm, kernel-janitors,
linux-kernel, Boris Ostrovsky, David Vrabel, xen-devel
On Thu, 21 Jan 2016, Rasmus Villemoes wrote:
> On Wed, Jan 20 2016, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
>
> > On Wed, Dec 23, 2015 at 10:06:24PM +0100, Julia Lawall wrote:
> >> The cleancache_ops structure is never modified, so declare it as const.
> >>
> >> This also removes the __read_mostly declaration on the cleancache_ops
> >> variable declaration, since it seems redundant with const.
> >>
> >> Done with the help of Coccinelle.
> >>
> >> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
> >>
> >> ---
> >>
> >> Not sure that the __read_mostly change is correct. Does it apply to the
> >> variable, or to what the variable points to?
> >
> > It should just put the structure in the right section (.rodata).
> >
> > Thanks for the patch!
>
> The __read_mostly marker should probably be left there...
I sent a corrected version this afternoon.
>
> >> */
> >> -static struct cleancache_ops *cleancache_ops __read_mostly;
> >> +static const struct cleancache_ops *cleancache_ops;
> >>
> >> /*
> >> * 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)
> >> /*
> >> * 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))
> >> return -EBUSY;
> >>
>
> I don't know this code, but I assume that this is mostly a one-time
> thing, so once cleancache_ops gets its value assigned, it doesn't
> change, and that's what the __read_mostly is about (it applies to the
> object declared, not whatever it happens to point to).
>
> (Also, the commit message is slightly inaccurate: it is
> tmem_cleancache_ops which is never changed and hence declared const;
> changing the various pointers to it to const is just a necessary followup).
OK, in general, I have referred to the type rather than the structure name
in these patches, since there can be more than one structure.
julia
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH] cleancache: constify cleancache_ops structure
2016-01-21 20:00 ` Rasmus Villemoes
(?)
(?)
@ 2016-01-21 20:03 ` Julia Lawall
-1 siblings, 0 replies; 29+ messages in thread
From: Julia Lawall @ 2016-01-21 20:03 UTC (permalink / raw)
To: Rasmus Villemoes
Cc: Julia Lawall, kernel-janitors, linux-kernel, linux-mm,
David Vrabel, xen-devel, Boris Ostrovsky
On Thu, 21 Jan 2016, Rasmus Villemoes wrote:
> On Wed, Jan 20 2016, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
>
> > On Wed, Dec 23, 2015 at 10:06:24PM +0100, Julia Lawall wrote:
> >> The cleancache_ops structure is never modified, so declare it as const.
> >>
> >> This also removes the __read_mostly declaration on the cleancache_ops
> >> variable declaration, since it seems redundant with const.
> >>
> >> Done with the help of Coccinelle.
> >>
> >> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
> >>
> >> ---
> >>
> >> Not sure that the __read_mostly change is correct. Does it apply to the
> >> variable, or to what the variable points to?
> >
> > It should just put the structure in the right section (.rodata).
> >
> > Thanks for the patch!
>
> The __read_mostly marker should probably be left there...
I sent a corrected version this afternoon.
>
> >> */
> >> -static struct cleancache_ops *cleancache_ops __read_mostly;
> >> +static const struct cleancache_ops *cleancache_ops;
> >>
> >> /*
> >> * 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)
> >> /*
> >> * 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))
> >> return -EBUSY;
> >>
>
> I don't know this code, but I assume that this is mostly a one-time
> thing, so once cleancache_ops gets its value assigned, it doesn't
> change, and that's what the __read_mostly is about (it applies to the
> object declared, not whatever it happens to point to).
>
> (Also, the commit message is slightly inaccurate: it is
> tmem_cleancache_ops which is never changed and hence declared const;
> changing the various pointers to it to const is just a necessary followup).
OK, in general, I have referred to the type rather than the structure name
in these patches, since there can be more than one structure.
julia
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [Xen-devel] [PATCH v2] cleancache: constify cleancache_ops structure
2016-01-21 15:47 ` Julia Lawall
(?)
@ 2016-01-21 21:35 ` Konrad Rzeszutek Wilk
-1 siblings, 0 replies; 29+ messages in thread
From: Konrad Rzeszutek Wilk @ 2016-01-21 21:35 UTC (permalink / raw)
To: Julia Lawall
Cc: David Vrabel, linux-mm, Boris Ostrovsky, kernel-janitors,
linux-kernel, xen-devel
On Thu, Jan 21, 2016 at 04:47:29PM +0100, Julia Lawall wrote:
> The cleancache_ops structure is never modified, so declare it as const.
>
> Done with the help of Coccinelle.
I will pull it in my tree and sent it to Linus.
Thanks!
>
> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
>
> ---
>
> v2: put back the read mostly
>
> drivers/xen/tmem.c | 2 +-
> include/linux/cleancache.h | 2 +-
> mm/cleancache.c | 4 ++--
> 3 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
> index bda5ec0b4..cb3e142 100644
> --- a/include/linux/cleancache.h
> +++ b/include/linux/cleancache.h
> @@ -37,7 +37,7 @@ struct cleancache_ops {
> 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_shared_fs(struct super_block *);
> extern int __cleancache_get_page(struct page *);
> diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c
> index 945fc43..4ac2ca8 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)
> 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,
> .get_page = tmem_cleancache_get_page,
> .invalidate_page = tmem_cleancache_flush_page,
> diff --git a/mm/cleancache.c b/mm/cleancache.c
> index 8fc5081..c6356d6 100644
> --- a/mm/cleancache.c
> +++ b/mm/cleancache.c
> @@ -22,7 +22,7 @@
> * cleancache_ops is set by cleancache_register_ops to contain the pointers
> * 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
> @@ -49,7 +49,7 @@ static void cleancache_register_ops_sb(struct super_block *sb, void *unused)
> /*
> * 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))
> return -EBUSY;
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [Xen-devel] [PATCH v2] cleancache: constify cleancache_ops structure
@ 2016-01-21 21:35 ` Konrad Rzeszutek Wilk
0 siblings, 0 replies; 29+ messages in thread
From: Konrad Rzeszutek Wilk @ 2016-01-21 21:35 UTC (permalink / raw)
To: Julia Lawall
Cc: David Vrabel, linux-mm, Boris Ostrovsky, kernel-janitors,
linux-kernel, xen-devel
On Thu, Jan 21, 2016 at 04:47:29PM +0100, Julia Lawall wrote:
> The cleancache_ops structure is never modified, so declare it as const.
>
> Done with the help of Coccinelle.
I will pull it in my tree and sent it to Linus.
Thanks!
>
> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
>
> ---
>
> v2: put back the read mostly
>
> drivers/xen/tmem.c | 2 +-
> include/linux/cleancache.h | 2 +-
> mm/cleancache.c | 4 ++--
> 3 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
> index bda5ec0b4..cb3e142 100644
> --- a/include/linux/cleancache.h
> +++ b/include/linux/cleancache.h
> @@ -37,7 +37,7 @@ struct cleancache_ops {
> 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_shared_fs(struct super_block *);
> extern int __cleancache_get_page(struct page *);
> diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c
> index 945fc43..4ac2ca8 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)
> 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,
> .get_page = tmem_cleancache_get_page,
> .invalidate_page = tmem_cleancache_flush_page,
> diff --git a/mm/cleancache.c b/mm/cleancache.c
> index 8fc5081..c6356d6 100644
> --- a/mm/cleancache.c
> +++ b/mm/cleancache.c
> @@ -22,7 +22,7 @@
> * cleancache_ops is set by cleancache_register_ops to contain the pointers
> * 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
> @@ -49,7 +49,7 @@ static void cleancache_register_ops_sb(struct super_block *sb, void *unused)
> /*
> * 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))
> return -EBUSY;
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [Xen-devel] [PATCH v2] cleancache: constify cleancache_ops structure
@ 2016-01-21 21:35 ` Konrad Rzeszutek Wilk
0 siblings, 0 replies; 29+ messages in thread
From: Konrad Rzeszutek Wilk @ 2016-01-21 21:35 UTC (permalink / raw)
To: Julia Lawall
Cc: David Vrabel, linux-mm, Boris Ostrovsky, kernel-janitors,
linux-kernel, xen-devel
On Thu, Jan 21, 2016 at 04:47:29PM +0100, Julia Lawall wrote:
> The cleancache_ops structure is never modified, so declare it as const.
>
> Done with the help of Coccinelle.
I will pull it in my tree and sent it to Linus.
Thanks!
>
> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
>
> ---
>
> v2: put back the read mostly
>
> drivers/xen/tmem.c | 2 +-
> include/linux/cleancache.h | 2 +-
> mm/cleancache.c | 4 ++--
> 3 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
> index bda5ec0b4..cb3e142 100644
> --- a/include/linux/cleancache.h
> +++ b/include/linux/cleancache.h
> @@ -37,7 +37,7 @@ struct cleancache_ops {
> 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_shared_fs(struct super_block *);
> extern int __cleancache_get_page(struct page *);
> diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c
> index 945fc43..4ac2ca8 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)
> 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,
> .get_page = tmem_cleancache_get_page,
> .invalidate_page = tmem_cleancache_flush_page,
> diff --git a/mm/cleancache.c b/mm/cleancache.c
> index 8fc5081..c6356d6 100644
> --- a/mm/cleancache.c
> +++ b/mm/cleancache.c
> @@ -22,7 +22,7 @@
> * cleancache_ops is set by cleancache_register_ops to contain the pointers
> * 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
> @@ -49,7 +49,7 @@ static void cleancache_register_ops_sb(struct super_block *sb, void *unused)
> /*
> * 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))
> return -EBUSY;
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v2] cleancache: constify cleancache_ops structure
2016-01-21 15:47 ` Julia Lawall
(?)
(?)
@ 2016-01-21 21:35 ` Konrad Rzeszutek Wilk
-1 siblings, 0 replies; 29+ messages in thread
From: Konrad Rzeszutek Wilk @ 2016-01-21 21:35 UTC (permalink / raw)
To: Julia Lawall
Cc: kernel-janitors, linux-kernel, linux-mm, David Vrabel, xen-devel,
Boris Ostrovsky
On Thu, Jan 21, 2016 at 04:47:29PM +0100, Julia Lawall wrote:
> The cleancache_ops structure is never modified, so declare it as const.
>
> Done with the help of Coccinelle.
I will pull it in my tree and sent it to Linus.
Thanks!
>
> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
>
> ---
>
> v2: put back the read mostly
>
> drivers/xen/tmem.c | 2 +-
> include/linux/cleancache.h | 2 +-
> mm/cleancache.c | 4 ++--
> 3 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
> index bda5ec0b4..cb3e142 100644
> --- a/include/linux/cleancache.h
> +++ b/include/linux/cleancache.h
> @@ -37,7 +37,7 @@ struct cleancache_ops {
> 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_shared_fs(struct super_block *);
> extern int __cleancache_get_page(struct page *);
> diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c
> index 945fc43..4ac2ca8 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)
> 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,
> .get_page = tmem_cleancache_get_page,
> .invalidate_page = tmem_cleancache_flush_page,
> diff --git a/mm/cleancache.c b/mm/cleancache.c
> index 8fc5081..c6356d6 100644
> --- a/mm/cleancache.c
> +++ b/mm/cleancache.c
> @@ -22,7 +22,7 @@
> * cleancache_ops is set by cleancache_register_ops to contain the pointers
> * 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
> @@ -49,7 +49,7 @@ static void cleancache_register_ops_sb(struct super_block *sb, void *unused)
> /*
> * 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))
> return -EBUSY;
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 29+ messages in thread
end of thread, other threads:[~2016-01-21 21:35 UTC | newest]
Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-23 21:06 [PATCH] cleancache: constify cleancache_ops structure Julia Lawall
2015-12-23 21:06 ` Julia Lawall
2015-12-23 21:06 ` Julia Lawall
2016-01-20 22:20 ` Konrad Rzeszutek Wilk
2016-01-21 20:00 ` Rasmus Villemoes
2016-01-21 20:00 ` Rasmus Villemoes
2016-01-21 20:00 ` Rasmus Villemoes
2016-01-21 20:03 ` Julia Lawall
2016-01-21 20:03 ` Julia Lawall
2016-01-21 20:03 ` Julia Lawall
2016-01-21 20:03 ` Julia Lawall
2016-01-21 20:00 ` Rasmus Villemoes
2016-01-20 22:20 ` Konrad Rzeszutek Wilk
2016-01-21 10:45 ` David Vrabel
2016-01-21 10:45 ` [Xen-devel] " David Vrabel
2016-01-21 10:45 ` David Vrabel
2016-01-21 10:45 ` David Vrabel
2016-01-21 11:06 ` Julia Lawall
2016-01-21 11:06 ` [Xen-devel] " Julia Lawall
2016-01-21 11:06 ` Julia Lawall
2016-01-21 11:06 ` Julia Lawall
2016-01-21 15:47 ` [Xen-devel] [PATCH v2] " Julia Lawall
2016-01-21 15:47 ` Julia Lawall
2016-01-21 15:47 ` Julia Lawall
2016-01-21 21:35 ` Konrad Rzeszutek Wilk
2016-01-21 21:35 ` [Xen-devel] " Konrad Rzeszutek Wilk
2016-01-21 21:35 ` Konrad Rzeszutek Wilk
2016-01-21 21:35 ` Konrad Rzeszutek Wilk
2016-01-21 15:47 ` Julia Lawall
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.