FS-Cache, NFS and page bits

David Howells dhowells at redhat.com
Fri Dec 8 11:49:23 EST 2006


Hi Trond, Linus,

I've just updated my FS-Cache tree to the latest Linus head - or at least
I tried to.

I was using a bit in page->private to indicate that a page was cached and might
be holding cache resources.  I was previously using PG_private, but Trond
claimed that for his own.  I moved my Trond's PG_private and my bit into
page->private and used PG_private to indicate that one of these bits was set.
However, Trond has now claimed page->private for something else too, and I
appear to have run out of bits.

Basically, I need two bits in the page struct to support caching:

 (1) A bit to note that a netfs page binds resources in the cache.  This needs
     to make releasepage() and invalidatepage() be called.  (Well, it doesn't
     have to be those functions, but it must call back to the netfs before
     discarding a page).

 (2) A bit to note that the netfs page is being written to the cache.  I'm
     currently using PG_fs_misc for this (PG_checked as was).  This forces
     releasepage() and invalidatepage() to wait before letting a page be
     destroyed.

So any ideas as to how I can do this now?  Can I steal another page bit
somehow?  Are there any spares?

I'm not sure what else I can do, apart from just forgetting about locally
caching NFS with FS-Cache.

David


More information about the NFSv4 mailing list