[PATCH] cifs: Only send POSIX ACL calls to server if server claims to support that...
authorSteve French <smfrench@austin.rr.com>
Fri, 29 Apr 2005 05:41:04 +0000 (22:41 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 29 Apr 2005 05:41:04 +0000 (22:41 -0700)
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/cifs/xattr.c

index 549afa184fd67f852e3e55319af42731ced1b9b9..9a41bee11c5a58621e990e539361e2d1e9975ac6 100644 (file)
@@ -161,18 +161,20 @@ int cifs_setxattr(struct dentry * direntry, const char * ea_name,
                        strlen(POSIX_ACL_XATTR_ACCESS));
                if (temp == 0) {
 #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));
 #else
                        cFYI(1,("set POSIX ACL not supported"));
 #endif
                } else if(strncmp(ea_name,POSIX_ACL_XATTR_DEFAULT,strlen(POSIX_ACL_XATTR_DEFAULT)) == 0) {
 #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));
 #else
                        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);
        } else if(strncmp(ea_name,POSIX_ACL_XATTR_ACCESS,strlen(POSIX_ACL_XATTR_ACCESS)) == 0) {
 #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, 
                                cifs_sb->local_nls);
 #else 
@@ -256,7 +259,8 @@ ssize_t cifs_getxattr(struct dentry * direntry, const char * ea_name,
 #endif /* CONFIG_CIFS_POSIX */
        } else if(strncmp(ea_name,POSIX_ACL_XATTR_DEFAULT,strlen(POSIX_ACL_XATTR_DEFAULT)) == 0) {
 #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, 
                                cifs_sb->local_nls);
 #else