cifs: Misc. cleanup in cifsacl handling [try #4]
Change the name of function mode_to_acl to mode_to_cifs_acl. Handle return code in functions mode_to_cifs_acl and cifs_acl_to_fattr. Signed-off-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
committed by
Steve French
parent
523fb8c867
commit
78415d2d30
@@ -726,7 +726,7 @@ cifs_acl_to_fattr(struct cifs_sb_info *cifs_sb, struct cifs_fattr *fattr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Convert mode bits to an ACL so we can update the ACL on the server */
|
/* Convert mode bits to an ACL so we can update the ACL on the server */
|
||||||
int mode_to_acl(struct inode *inode, const char *path, __u64 nmode)
|
int mode_to_cifs_acl(struct inode *inode, const char *path, __u64 nmode)
|
||||||
{
|
{
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
__u32 secdesclen = 0;
|
__u32 secdesclen = 0;
|
||||||
|
@@ -133,7 +133,7 @@ extern int cifs_get_inode_info_unix(struct inode **pinode,
|
|||||||
extern int cifs_acl_to_fattr(struct cifs_sb_info *cifs_sb,
|
extern int cifs_acl_to_fattr(struct cifs_sb_info *cifs_sb,
|
||||||
struct cifs_fattr *fattr, struct inode *inode,
|
struct cifs_fattr *fattr, struct inode *inode,
|
||||||
const char *path, const __u16 *pfid);
|
const char *path, const __u16 *pfid);
|
||||||
extern int mode_to_acl(struct inode *inode, const char *path, __u64);
|
extern int mode_to_cifs_acl(struct inode *inode, const char *path, __u64);
|
||||||
|
|
||||||
extern int cifs_mount(struct super_block *, struct cifs_sb_info *, char *,
|
extern int cifs_mount(struct super_block *, struct cifs_sb_info *, char *,
|
||||||
const char *);
|
const char *);
|
||||||
|
@@ -689,8 +689,13 @@ int cifs_get_inode_info(struct inode **pinode,
|
|||||||
#ifdef CONFIG_CIFS_EXPERIMENTAL
|
#ifdef CONFIG_CIFS_EXPERIMENTAL
|
||||||
/* fill in 0777 bits from ACL */
|
/* fill in 0777 bits from ACL */
|
||||||
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) {
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) {
|
||||||
cFYI(1, "Getting mode bits from ACL");
|
rc = cifs_acl_to_fattr(cifs_sb, &fattr, *pinode, full_path,
|
||||||
cifs_acl_to_fattr(cifs_sb, &fattr, *pinode, full_path, pfid);
|
pfid);
|
||||||
|
if (rc) {
|
||||||
|
cFYI(1, "%s: Getting ACL failed with error: %d",
|
||||||
|
__func__, rc);
|
||||||
|
goto cgii_exit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -2117,9 +2122,14 @@ cifs_setattr_nounix(struct dentry *direntry, struct iattr *attrs)
|
|||||||
if (attrs->ia_valid & ATTR_MODE) {
|
if (attrs->ia_valid & ATTR_MODE) {
|
||||||
rc = 0;
|
rc = 0;
|
||||||
#ifdef CONFIG_CIFS_EXPERIMENTAL
|
#ifdef CONFIG_CIFS_EXPERIMENTAL
|
||||||
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL)
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) {
|
||||||
rc = mode_to_acl(inode, full_path, mode);
|
rc = mode_to_cifs_acl(inode, full_path, mode);
|
||||||
else
|
if (rc) {
|
||||||
|
cFYI(1, "%s: Setting ACL failed with error: %d",
|
||||||
|
__func__, rc);
|
||||||
|
goto cifs_setattr_exit;
|
||||||
|
}
|
||||||
|
} else
|
||||||
#endif
|
#endif
|
||||||
if (((mode & S_IWUGO) == 0) &&
|
if (((mode & S_IWUGO) == 0) &&
|
||||||
(cifsInode->cifsAttrs & ATTR_READONLY) == 0) {
|
(cifsInode->cifsAttrs & ATTR_READONLY) == 0) {
|
||||||
|
Reference in New Issue
Block a user