@@ -373,7 +373,8 @@ int ll_xattr_list(struct inode *inode, const char *name, int type, void *buffer,
}
if (sbi->ll_xattr_cache_enabled && type != XATTR_ACL_ACCESS_T &&
- (type != XATTR_SECURITY_T || strcmp(name, "security.selinux"))) {
+ (type != XATTR_SECURITY_T || strcmp(name, "security.selinux")) &&
+ (type != XATTR_TRUSTED_T || strcmp(name, XATTR_NAME_SOM))) {
rc = ll_xattr_cache_get(inode, name, buffer, size, valid);
if (rc == -EAGAIN)
goto getxattr_nocache;
@@ -465,6 +465,10 @@ static int ll_xattr_cache_refill(struct inode *inode)
/* Filter out security.selinux, it is cached in slab */
CDEBUG(D_CACHE, "not caching security.selinux\n");
rc = 0;
+ } else if (!strcmp(xdata, XATTR_NAME_SOM)) {
+ /* Filter out trusted.som, it is not cached on client */
+ CDEBUG(D_CACHE, "not caching trusted.som\n");
+ rc = 0;
} else {
rc = ll_xattr_cache_add(&lli->lli_xattrs, xdata, xval,
*xsizes);