Whamcloud - gitweb
LU-5560 llite: basic support of SELinux in CLIO
[fs/lustre-release.git] / lustre / llite / xattr_cache.c
index 763bc77..031a470 100644 (file)
@@ -24,6 +24,8 @@
 /*
  * Copyright 2012 Xyratex Technology Limited
  *
+ * Copyright (c) 2013, 2014, Intel Corporation.
+ *
  * Author: Andrew Perepechko <Andrew_Perepechko@xyratex.com>
  *
  */
@@ -84,7 +86,7 @@ static void ll_xattr_cache_init(struct ll_inode_info *lli)
        LASSERT(lli != NULL);
 
        INIT_LIST_HEAD(&lli->lli_xattrs);
-       lli->lli_flags |= LLIF_XATTR_CACHE;
+       ll_file_set_flag(lli, LLIF_XATTR_CACHE);
 }
 
 /**
@@ -256,7 +258,7 @@ static int ll_xattr_cache_list(struct list_head *cache,
  */
 static int ll_xattr_cache_valid(struct ll_inode_info *lli)
 {
-       return !!(lli->lli_flags & LLIF_XATTR_CACHE);
+       return ll_file_test_flag(lli, LLIF_XATTR_CACHE);
 }
 
 /**
@@ -275,7 +277,8 @@ static int ll_xattr_cache_destroy_locked(struct ll_inode_info *lli)
 
        while (ll_xattr_cache_del(&lli->lli_xattrs, NULL) == 0)
                /* empty loop */ ;
-       lli->lli_flags &= ~LLIF_XATTR_CACHE;
+
+       ll_file_clear_flag(lli, LLIF_XATTR_CACHE);
 
        RETURN(0);
 }
@@ -458,6 +461,10 @@ static int ll_xattr_cache_refill(struct inode *inode, struct lookup_intent *oit)
                        CDEBUG(D_CACHE, "not caching %s\n",
                               XATTR_NAME_ACL_ACCESS);
                        rc = 0;
+               } else if (!strcmp(xdata, "security.selinux")) {
+                       /* Filter out security.selinux, it is cached in slab */
+                       CDEBUG(D_CACHE, "not caching security.selinux\n");
+                       rc = 0;
                } else {
                        rc = ll_xattr_cache_add(&lli->lli_xattrs, xdata, xval,
                                                *xsizes);