Commit 1da0c78b authored by Steve French's avatar Steve French Committed by Linus Torvalds

[PATCH] cifs: Only send POSIX ACL calls to server if server claims to support that capability bit

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 2604f6da
...@@ -161,18 +161,20 @@ int cifs_setxattr(struct dentry * direntry, const char * ea_name, ...@@ -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, if(sb->s_flags & MS_POSIXACL)
(const int)value_size, ACL_TYPE_ACCESS, rc = CIFSSMBSetPosixACL(xid, pTcon,full_path,
cifs_sb->local_nls); 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, if(sb->s_flags & MS_POSIXACL)
(const int)value_size, ACL_TYPE_DEFAULT, rc = CIFSSMBSetPosixACL(xid, pTcon,full_path,
cifs_sb->local_nls); 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, ...@@ -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, ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment