fuse: invalidation reverse calls
authorJohn Muir <muirj@nortel.com>
Sun, 31 May 2009 15:13:57 +0000 (11:13 -0400)
committerMiklos Szeredi <mszeredi@suse.cz>
Tue, 30 Jun 2009 18:12:24 +0000 (20:12 +0200)
commit3b463ae0c6264f70e5d4c0a9c46af20fed43c96e
tree03c6abdd0671d74452cbd1f6fc6d637363eb6389
parente0a43ddcc08c34dbd666d93600fd23914505f4aa
fuse: invalidation reverse calls

Add notification messages that allow the filesystem to invalidate VFS
caches.

Two notifications are added:

 1) inode invalidation

   - invalidate cached attributes
   - invalidate a range of pages in the page cache (this is optional)

 2) dentry invalidation

   - try to invalidate a subtree in the dentry cache

Care must be taken while accessing the 'struct super_block' for the
mount, as it can go away while an invalidation is in progress.  To
prevent this, introduce a rw-semaphore, that is taken for read during
the invalidation and taken for write in the ->kill_sb callback.

Cc: Csaba Henk <csaba@gluster.com>
Cc: Anand Avati <avati@zresearch.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
fs/fuse/dev.c
fs/fuse/dir.c
fs/fuse/fuse_i.h
fs/fuse/inode.c
include/linux/fuse.h