removed cwd "./" (refer to Bugzilla 14399).
* File join has been disabled in this release, refer to Bugzilla 16929.
+Severity : normal
+Frequency : always with long access acl
+Bugzilla : 17636
+Descriptoin: mds can't pack reply with long acl.
+Details : mds don't control size of acl but they limited by reint/getattr
+ reply buffer.
+
Severity : enhancement
Bugzilla : 18061
Description: Update to SLES10 kernel-2.6.16.60-0.33.
#endif
#define DEBUG_SUBSYSTEM S_MDS
-/* prerequisite for linux/xattr.h */
-#include <linux/types.h>
-/* prerequisite for linux/xattr.h */
-#include <linux/fs.h>
-/* XATTR_{REPLACE,CREATE} */
-#include <linux/xattr.h>
-
+#include <lustre_acl.h>
#include "mdt_internal.h"
if (strncmp(xattr_name, XATTR_USER_PREFIX,
sizeof(XATTR_USER_PREFIX) - 1) == 0) {
+ if (!(req->rq_export->exp_connect_flags & OBD_CONNECT_XATTR))
+ GOTO(out, rc = -EOPNOTSUPP);
if (strcmp(xattr_name, XATTR_NAME_LOV) == 0)
GOTO(out, rc = -EACCES);
if (strcmp(xattr_name, XATTR_NAME_LMA) == 0)
GOTO(out, rc = 0);
if (strcmp(xattr_name, XATTR_NAME_LINK) == 0)
GOTO(out, rc = 0);
- }
+ } else if ((valid & OBD_MD_FLXATTR) &&
+ (strncmp(xattr_name, XATTR_NAME_ACL_ACCESS,
+ sizeof(XATTR_NAME_ACL_ACCESS) - 1) == 0)) {
+ /* currently lustre limit acl access size */
+ xattr_len = req_capsule_get_size(pill, &RMF_EADATA, RCL_CLIENT);
- if (!(req->rq_export->exp_connect_flags & OBD_CONNECT_XATTR) &&
- (strncmp(xattr_name, XATTR_USER_PREFIX,
- sizeof(XATTR_USER_PREFIX) - 1) == 0)) {
- GOTO(out, rc = -EOPNOTSUPP);
+ if (xattr_len > LUSTRE_POSIX_ACL_MAX_SIZE)
+ GOTO(out, -ERANGE);
}
lockpart = MDS_INODELOCK_UPDATE;
mount_client $MOUNT
}
+setup_noconfig() {
+ start_mds
+ start_ost
+ mount_client $MOUNT
+}
+
cleanup_nocli() {
stop_mds || return 201
stop_ost || return 202
}
run_test 47 "server restart does not make client loss lru_resize settings"
+# reformat after this test must need - if test will failed
+# we will have unkillable file at FS
+test_48() { # bug 17636
+ reformat
+ setup_noconfig
+ check_mount || return 2
+
+ $LFS setstripe $MOUNT -c -1 || return 9
+ $LFS getstripe $MOUNT || return 10
+
+ echo "ok" > $MOUNT/widestripe
+ $LFS getstripe $MOUNT/widestripe || return 11
+ # fill acl buffer for avoid expand lsm to them
+ awk -F : '{ print "u:"$1":rwx" }' /etc/passwd | while read acl; do
+ setfacl -m $acl $MOUNT/widestripe
+ done
+ awk -F : '{ print "g:"$1":rwx" }' /etc/groups | while read acl; do
+ setfacl -m $acl $MOUNT/widestripe
+ done
+
+
+ stat $MOUNT/widestripe || return 12
+
+ cleanup || error "can't cleanup"
+ return 0
+}
+run_test 48 "too many acls on file"
+
+
cleanup_gss
equals_msg `basename $0`: test complete
[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG && grep -q FAIL $TESTSUITELOG && exit 1 || true