VFS: Add forget_all_cached_acls()

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>
This commit is contained in:
Steven Whitehouse 2009-09-29 12:27:23 +01:00
Родитель 2646a1f61a
Коммит 796bd95247
1 изменённых файлов: 14 добавлений и 0 удалений

Просмотреть файл

@ -147,6 +147,20 @@ static inline void forget_cached_acl(struct inode *inode, int type)
if (old != ACL_NOT_CACHED) if (old != ACL_NOT_CACHED)
posix_acl_release(old); 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 #endif
static inline void cache_no_acl(struct inode *inode) static inline void cache_no_acl(struct inode *inode)