projects
/
linux-2.6-microblaze.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2646a1f
)
VFS: Add forget_all_cached_acls()
author
Steven Whitehouse
<swhiteho@redhat.com>
Tue, 29 Sep 2009 11:27:23 +0000
(12:27 +0100)
committer
Steven Whitehouse
<swhiteho@redhat.com>
Thu, 3 Dec 2009 11:43:23 +0000
(11:43 +0000)
This is required for cluster filesystems which want to use
cached ACLs so that they can invalidate the cache when
required.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Cc: Alexander Viro <aviro@redhat.com>
Cc: Christoph Hellwig <hch@infradead.org>
include/linux/posix_acl.h
patch
|
blob
|
history
diff --git
a/include/linux/posix_acl.h
b/include/linux/posix_acl.h
index
065a365
..
6760816
100644
(file)
--- a/
include/linux/posix_acl.h
+++ b/
include/linux/posix_acl.h
@@
-147,6
+147,20
@@
static inline void forget_cached_acl(struct inode *inode, int type)
if (old != ACL_NOT_CACHED)
posix_acl_release(old);
}
if (old != ACL_NOT_CACHED)
posix_acl_release(old);
}
+
+static inline void forget_all_cached_acls(struct inode *inode)
+{
+ struct posix_acl *old_access, *old_default;
+ spin_lock(&inode->i_lock);
+ old_access = inode->i_acl;
+ old_default = inode->i_default_acl;
+ inode->i_acl = inode->i_default_acl = ACL_NOT_CACHED;
+ spin_unlock(&inode->i_lock);
+ if (old_access != ACL_NOT_CACHED)
+ posix_acl_release(old_access);
+ if (old_default != ACL_NOT_CACHED)
+ posix_acl_release(old_default);
+}
#endif
static inline void cache_no_acl(struct inode *inode)
#endif
static inline void cache_no_acl(struct inode *inode)