2010-08-30 22:35:13

by Dan Magenheimer

[permalink] [raw]
Subject: [PATCH V4 5/8] Cleancache: ext3 hook for cleancache

[PATCH V4 5/8] Cleancache: ext3 hook for cleancache

Filesystems must explicitly enable cleancache by calling
cleancache_init_fs anytime a instance of the filesystem
is mounted and must save the returned poolid. For ext3,
all other cleancache hooks are in the VFS layer including
the matching cleancache_flush_fs hook which must be
called on unmount.

Signed-off-by: Dan Magenheimer <[email protected]>
Acked-by: Andreas Dilger <[email protected]>

Diffstat:
super.c | 2 ++
1 file changed, 2 insertions(+)

--- linux-2.6.36-rc3/fs/ext3/super.c 2010-08-29 09:36:04.000000000 -0600
+++ linux-2.6.36-rc3-cleancache/fs/ext3/super.c 2010-08-30 09:20:42.000000000 -0600
@@ -37,6 +37,7 @@
#include <linux/quotaops.h>
#include <linux/seq_file.h>
#include <linux/log2.h>
+#include <linux/cleancache.h>

#include <asm/uaccess.h>

@@ -1349,6 +1350,7 @@ static int ext3_setup_super(struct super
} else {
ext3_msg(sb, KERN_INFO, "using internal journal");
}
+ sb->cleancache_poolid = cleancache_init_fs(PAGE_SIZE);
return res;
}


2010-08-30 22:53:31

by Jeremy Fitzhardinge

[permalink] [raw]
Subject: Re: [PATCH V4 5/8] Cleancache: ext3 hook for cleancache

On 08/30/2010 03:32 PM, Dan Magenheimer wrote:
> [PATCH V4 5/8] Cleancache: ext3 hook for cleancache
>
> Filesystems must explicitly enable cleancache by calling
> cleancache_init_fs anytime a instance of the filesystem
> is mounted and must save the returned poolid. For ext3,
> all other cleancache hooks are in the VFS layer including
> the matching cleancache_flush_fs hook which must be
> called on unmount.
>
> Signed-off-by: Dan Magenheimer <[email protected]>
> Acked-by: Andreas Dilger <[email protected]>
>
> Diffstat:
> super.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> --- linux-2.6.36-rc3/fs/ext3/super.c 2010-08-29 09:36:04.000000000 -0600
> +++ linux-2.6.36-rc3-cleancache/fs/ext3/super.c 2010-08-30 09:20:42.000000000 -0600
> @@ -37,6 +37,7 @@
> #include <linux/quotaops.h>
> #include <linux/seq_file.h>
> #include <linux/log2.h>
> +#include <linux/cleancache.h>
>
> #include <asm/uaccess.h>
>
> @@ -1349,6 +1350,7 @@ static int ext3_setup_super(struct super
> } else {
> ext3_msg(sb, KERN_INFO, "using internal journal");
> }
> + sb->cleancache_poolid = cleancache_init_fs(PAGE_SIZE);

Do you really need to pass in the page size? What about just
"cleancache_init_fs(sb)" rather than exposing the
"sb->cleancache_poolid"? In other words, what if you want to do
more/other per-filesystem init at some point?

J

2010-08-31 01:00:14

by Dan Magenheimer

[permalink] [raw]
Subject: RE: [PATCH V4 5/8] Cleancache: ext3 hook for cleancache

> > @@ -1349,6 +1350,7 @@ static int ext3_setup_super(struct super
> > } else {
> > ext3_msg(sb, KERN_INFO, "using internal journal");
> > }
> > + sb->cleancache_poolid = cleancache_init_fs(PAGE_SIZE);
>
> Do you really need to pass in the page size? What about just
> "cleancache_init_fs(sb)" rather than exposing the
> "sb->cleancache_poolid"? In other words, what if you want to do
> more/other per-filesystem init at some point?

IIRC, I think I was trying to stay away from including
fs.h in cleancache.h (or one of its predecessors). I
agree that that no longer makes sense and it is cleaner
as you suggest. Will change.

Thanks,
Dan