|
@@ -161,18 +161,20 @@ int cifs_setxattr(struct dentry * direntry, const char * ea_name,
|
|
strlen(POSIX_ACL_XATTR_ACCESS));
|
|
strlen(POSIX_ACL_XATTR_ACCESS));
|
|
if (temp == 0) {
|
|
if (temp == 0) {
|
|
#ifdef CONFIG_CIFS_POSIX
|
|
#ifdef CONFIG_CIFS_POSIX
|
|
- rc = CIFSSMBSetPosixACL(xid, pTcon,full_path,ea_value,
|
|
|
|
- (const int)value_size, ACL_TYPE_ACCESS,
|
|
|
|
- cifs_sb->local_nls);
|
|
|
|
|
|
+ if(sb->s_flags & MS_POSIXACL)
|
|
|
|
+ rc = CIFSSMBSetPosixACL(xid, pTcon,full_path,
|
|
|
|
+ ea_value, (const int)value_size,
|
|
|
|
+ ACL_TYPE_ACCESS,cifs_sb->local_nls);
|
|
cFYI(1,("set POSIX ACL rc %d",rc));
|
|
cFYI(1,("set POSIX ACL rc %d",rc));
|
|
#else
|
|
#else
|
|
cFYI(1,("set POSIX ACL not supported"));
|
|
cFYI(1,("set POSIX ACL not supported"));
|
|
#endif
|
|
#endif
|
|
} else if(strncmp(ea_name,POSIX_ACL_XATTR_DEFAULT,strlen(POSIX_ACL_XATTR_DEFAULT)) == 0) {
|
|
} else if(strncmp(ea_name,POSIX_ACL_XATTR_DEFAULT,strlen(POSIX_ACL_XATTR_DEFAULT)) == 0) {
|
|
#ifdef CONFIG_CIFS_POSIX
|
|
#ifdef CONFIG_CIFS_POSIX
|
|
- rc = CIFSSMBSetPosixACL(xid, pTcon,full_path,ea_value,
|
|
|
|
- (const int)value_size, ACL_TYPE_DEFAULT,
|
|
|
|
- cifs_sb->local_nls);
|
|
|
|
|
|
+ if(sb->s_flags & MS_POSIXACL)
|
|
|
|
+ rc = CIFSSMBSetPosixACL(xid, pTcon,full_path,
|
|
|
|
+ ea_value, (const int)value_size,
|
|
|
|
+ ACL_TYPE_DEFAULT, cifs_sb->local_nls);
|
|
cFYI(1,("set POSIX default ACL rc %d",rc));
|
|
cFYI(1,("set POSIX default ACL rc %d",rc));
|
|
#else
|
|
#else
|
|
cFYI(1,("set default POSIX ACL not supported"));
|
|
cFYI(1,("set default POSIX ACL not supported"));
|
|
@@ -248,7 +250,8 @@ ssize_t cifs_getxattr(struct dentry * direntry, const char * ea_name,
|
|
buf_size, cifs_sb->local_nls);
|
|
buf_size, cifs_sb->local_nls);
|
|
} else if(strncmp(ea_name,POSIX_ACL_XATTR_ACCESS,strlen(POSIX_ACL_XATTR_ACCESS)) == 0) {
|
|
} else if(strncmp(ea_name,POSIX_ACL_XATTR_ACCESS,strlen(POSIX_ACL_XATTR_ACCESS)) == 0) {
|
|
#ifdef CONFIG_CIFS_POSIX
|
|
#ifdef CONFIG_CIFS_POSIX
|
|
- rc = CIFSSMBGetPosixACL(xid, pTcon, full_path,
|
|
|
|
|
|
+ if(sb->s_flags & MS_POSIXACL)
|
|
|
|
+ rc = CIFSSMBGetPosixACL(xid, pTcon, full_path,
|
|
ea_value, buf_size, ACL_TYPE_ACCESS,
|
|
ea_value, buf_size, ACL_TYPE_ACCESS,
|
|
cifs_sb->local_nls);
|
|
cifs_sb->local_nls);
|
|
#else
|
|
#else
|
|
@@ -256,7 +259,8 @@ ssize_t cifs_getxattr(struct dentry * direntry, const char * ea_name,
|
|
#endif /* CONFIG_CIFS_POSIX */
|
|
#endif /* CONFIG_CIFS_POSIX */
|
|
} else if(strncmp(ea_name,POSIX_ACL_XATTR_DEFAULT,strlen(POSIX_ACL_XATTR_DEFAULT)) == 0) {
|
|
} else if(strncmp(ea_name,POSIX_ACL_XATTR_DEFAULT,strlen(POSIX_ACL_XATTR_DEFAULT)) == 0) {
|
|
#ifdef CONFIG_CIFS_POSIX
|
|
#ifdef CONFIG_CIFS_POSIX
|
|
- rc = CIFSSMBGetPosixACL(xid, pTcon, full_path,
|
|
|
|
|
|
+ if(sb->s_flags & MS_POSIXACL)
|
|
|
|
+ rc = CIFSSMBGetPosixACL(xid, pTcon, full_path,
|
|
ea_value, buf_size, ACL_TYPE_DEFAULT,
|
|
ea_value, buf_size, ACL_TYPE_DEFAULT,
|
|
cifs_sb->local_nls);
|
|
cifs_sb->local_nls);
|
|
#else
|
|
#else
|