diff options
Diffstat (limited to 'fs/cifs/xattr.c')
| -rw-r--r-- | fs/cifs/xattr.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/fs/cifs/xattr.c b/fs/cifs/xattr.c index f375f87c7dbd..777e3363c2a4 100644 --- a/fs/cifs/xattr.c +++ b/fs/cifs/xattr.c | |||
| @@ -254,7 +254,8 @@ ssize_t cifs_getxattr(struct dentry * direntry, const char * ea_name, | |||
| 254 | rc = CIFSSMBQueryEA(xid,pTcon,full_path,ea_name,ea_value, | 254 | rc = CIFSSMBQueryEA(xid,pTcon,full_path,ea_name,ea_value, |
| 255 | buf_size, cifs_sb->local_nls, | 255 | buf_size, cifs_sb->local_nls, |
| 256 | cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR); | 256 | cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR); |
| 257 | } else if(strncmp(ea_name,POSIX_ACL_XATTR_ACCESS,strlen(POSIX_ACL_XATTR_ACCESS)) == 0) { | 257 | } else if(strncmp(ea_name,POSIX_ACL_XATTR_ACCESS, |
| 258 | strlen(POSIX_ACL_XATTR_ACCESS)) == 0) { | ||
| 258 | #ifdef CONFIG_CIFS_POSIX | 259 | #ifdef CONFIG_CIFS_POSIX |
| 259 | if(sb->s_flags & MS_POSIXACL) | 260 | if(sb->s_flags & MS_POSIXACL) |
| 260 | rc = CIFSSMBGetPosixACL(xid, pTcon, full_path, | 261 | rc = CIFSSMBGetPosixACL(xid, pTcon, full_path, |
| @@ -262,10 +263,27 @@ ssize_t cifs_getxattr(struct dentry * direntry, const char * ea_name, | |||
| 262 | cifs_sb->local_nls, | 263 | cifs_sb->local_nls, |
| 263 | cifs_sb->mnt_cifs_flags & | 264 | cifs_sb->mnt_cifs_flags & |
| 264 | CIFS_MOUNT_MAP_SPECIAL_CHR); | 265 | CIFS_MOUNT_MAP_SPECIAL_CHR); |
| 266 | /* else if(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) { | ||
| 267 | __u16 fid; | ||
| 268 | int oplock = FALSE; | ||
| 269 | rc = CIFSSMBOpen(xid, pTcon, full_path, | ||
| 270 | FILE_OPEN, GENERIC_READ, 0, &fid, | ||
| 271 | &oplock, NULL, cifs_sb->local_nls, | ||
| 272 | cifs_sb->mnt_cifs_flags & | ||
| 273 | CIFS_MOUNT_MAP_SPECIAL_CHR); | ||
| 274 | if(rc == 0) { | ||
| 275 | rc = CIFSSMBGetCIFSACL(xid, pTcon, fid, | ||
| 276 | ea_value, buf_size, | ||
| 277 | ACL_TYPE_ACCESS); | ||
| 278 | CIFSSMBClose(xid, pTcon, fid) | ||
| 279 | } | ||
| 280 | } */ /* BB enable after fixing up return data */ | ||
| 281 | |||
| 265 | #else | 282 | #else |
| 266 | cFYI(1,("query POSIX ACL not supported yet")); | 283 | cFYI(1,("query POSIX ACL not supported yet")); |
| 267 | #endif /* CONFIG_CIFS_POSIX */ | 284 | #endif /* CONFIG_CIFS_POSIX */ |
| 268 | } else if(strncmp(ea_name,POSIX_ACL_XATTR_DEFAULT,strlen(POSIX_ACL_XATTR_DEFAULT)) == 0) { | 285 | } else if(strncmp(ea_name,POSIX_ACL_XATTR_DEFAULT, |
| 286 | strlen(POSIX_ACL_XATTR_DEFAULT)) == 0) { | ||
| 269 | #ifdef CONFIG_CIFS_POSIX | 287 | #ifdef CONFIG_CIFS_POSIX |
| 270 | if(sb->s_flags & MS_POSIXACL) | 288 | if(sb->s_flags & MS_POSIXACL) |
| 271 | rc = CIFSSMBGetPosixACL(xid, pTcon, full_path, | 289 | rc = CIFSSMBGetPosixACL(xid, pTcon, full_path, |
