Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1c456013 authored by Jeff Layton's avatar Jeff Layton Committed by Steve French
Browse files

cifs: on multiuser mount, set ownership to current_fsuid/current_fsgid (try #7)



commit 3aa1c8c2 made cifs_getattr set
the ownership of files to current_fsuid/current_fsgid when multiuser
mounts were in use and when mnt_uid/mnt_gid were non-zero.

It should have instead based that decision on the
CIFS_MOUNT_OVERR_UID/GID flags.

Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent 9daa42e2
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -1765,11 +1765,17 @@ int cifs_getattr(struct vfsmount *mnt, struct dentry *dentry,
		generic_fillattr(dentry->d_inode, stat);
		stat->blksize = CIFS_MAX_MSGSIZE;
		stat->ino = CIFS_I(dentry->d_inode)->uniqueid;

		/*
		 * If on a multiuser mount without unix extensions, and the
		 * admin hasn't overridden them, set the ownership to the
		 * fsuid/fsgid of the current process.
		 */
		if ((cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MULTIUSER) &&
		    !tcon->unix_ext) {
			if (!cifs_sb->mnt_uid)
			if (!(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_UID))
				stat->uid = current_fsuid();
			if (!cifs_sb->mnt_uid)
			if (!(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_GID))
				stat->gid = current_fsgid();
		}
	}