if (strcmp(XATTR_NAME_HSM, xattr_name) == 0)
return CL_HSM;
+ /* Avoid logging SOM xattr for every file */
+ if (strcmp(XATTR_NAME_SOM, xattr_name) == 0)
+ return CL_NONE;
+
if (has_prefix(xattr_name, XATTR_USER_PREFIX) ||
has_prefix(xattr_name, XATTR_NAME_POSIX_ACL_ACCESS) ||
has_prefix(xattr_name, XATTR_NAME_POSIX_ACL_DEFAULT) ||
has_prefix(xattr_name, XATTR_SECURITY_PREFIX))
return CL_SETXATTR;
- return -1;
+ return CL_NONE;
}
static int mdd_declare_xattr_set(const struct lu_env *env,
int mode, rc;
ENTRY;
- /* EEXIST check */
- if (mdd_is_dead_obj(obj))
+ /* EEXIST check, also opening of *open* orphans is allowed so we can
+ * open-by-handle unlinked files
+ */
+ if (mdd_is_dead_obj(obj) &&
+ likely(!(mdd_is_orphan_obj(obj) && obj->mod_count > 0)))
RETURN(-ENOENT);
if (S_ISLNK(attr->la_mode))