[Ocfs2-devel] Cleancache [PATCH 2/7] (was Transcendent Memory): core files

Al Viro viro at ZenIV.linux.org.uk
Fri May 14 16:18:29 PDT 2010


On Thu, Apr 22, 2010 at 06:28:09AM -0700, Dan Magenheimer wrote:
> +struct cleancache_ops {
> +	int (*init_fs)(unsigned long);

unsigned long?  Really?  Not even size_t?

> +	int (*init_shared_fs)(char *uuid, unsigned long);

Ditto.

> +	int (*get_page)(int, unsigned long, unsigned long, struct page *);

Ugh.  First of all, presumably you have some structure behind that index,
don't you?  Might be a better way to do it.

What's more, use of ->i_ino is simply wrong.  How stable do you want that
to be and how much do you want it to outlive struct address_space in question?
>From my reading of your code, it doesn't outlive that anyway, so...

The third one is pgoff_t; again, use sane types, _if_ you actually want
the argument #3 at all - it can be derived from struct page you are passing
there as well.

> +	int (*put_page)(int, unsigned long, unsigned long, struct page *);
> +	int (*flush_page)(int, unsigned long, unsigned long);
> +	int (*flush_inode)(int, unsigned long);
> +	void (*flush_fs)(int);

Same questions as above...



More information about the Ocfs2-devel mailing list