From: Bobi Jam Date: Thu, 28 Jul 2011 14:12:38 +0000 (+0800) Subject: LU-542 Fix mdt xattr handler logic error X-Git-Tag: 2.1.53~54 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=383f5453a8c3a903b0fd2239dd3922c75d9a76b2;p=fs%2Flustre-release.git LU-542 Fix mdt xattr handler logic error Record system ACL and user xattr change/deletion changelog. Change-Id: I5aabf1879ec6e812361fe0d1b8255f84d0e817d6 Signed-off-by: Bobi Jam Reviewed-on: http://review.whamcloud.com/1158 Tested-by: Hudson Tested-by: Maloo Reviewed-by: Mikhail Pershin Reviewed-by: Oleg Drokin --- diff --git a/lustre/mdd/mdd_object.c b/lustre/mdd/mdd_object.c index ecfe82b..2ae3f53 100644 --- a/lustre/mdd/mdd_object.c +++ b/lustre/mdd/mdd_object.c @@ -1680,8 +1680,13 @@ static int mdd_xattr_set(const struct lu_env *env, struct md_object *obj, rc = mdd_xattr_set_txn(env, mdd_obj, buf, name, fl, handle); - /* Only record user xattr changes */ - if ((rc == 0) && (strncmp("user.", name, 5) == 0)) + /* Only record system & user xattr changes */ + if ((rc == 0) && (strncmp(XATTR_USER_PREFIX, name, + sizeof(XATTR_USER_PREFIX) - 1) == 0 || + strncmp(POSIX_ACL_XATTR_ACCESS, name, + sizeof(POSIX_ACL_XATTR_ACCESS) - 1) == 0 || + strncmp(POSIX_ACL_XATTR_DEFAULT, name, + sizeof(POSIX_ACL_XATTR_DEFAULT) - 1) == 0)) rc = mdd_changelog_data_store(env, mdd, CL_XATTR, 0, mdd_obj, handle); mdd_trans_stop(env, mdd, rc, handle); @@ -1716,8 +1721,13 @@ int mdd_xattr_del(const struct lu_env *env, struct md_object *obj, mdd_object_capa(env, mdd_obj)); mdd_write_unlock(env, mdd_obj); - /* Only record user xattr changes */ - if ((rc == 0) && (strncmp("user.", name, 5) != 0)) + /* Only record system & user xattr changes */ + if ((rc == 0) && (strncmp(XATTR_USER_PREFIX, name, + sizeof(XATTR_USER_PREFIX) - 1) == 0 || + strncmp(POSIX_ACL_XATTR_ACCESS, name, + sizeof(POSIX_ACL_XATTR_ACCESS) - 1) == 0 || + strncmp(POSIX_ACL_XATTR_DEFAULT, name, + sizeof(POSIX_ACL_XATTR_DEFAULT) - 1) == 0)) rc = mdd_changelog_data_store(env, mdd, CL_XATTR, 0, mdd_obj, handle);