From 377051bc6d433a216347536c5b29ef7d84bdb635 Mon Sep 17 00:00:00 2001 From: Jeff Layton Date: Thu, 22 May 2008 09:33:34 -0400 Subject: [PATCH] --- yaml --- r: 97959 b: refs/heads/master c: b0fd30d3e7e768aad5e398caaea6ae5a5c814eab h: refs/heads/master i: 97957: cf2f2c02f64340a32c3b3a6b25647b6e04607e04 97955: cfc749ea63b97c6220d4f0014d701114e2ce0783 97951: 1b173ae7e0c3bc48af0bdefbe7ff56d7b1708034 v: v3 --- [refs] | 2 +- trunk/fs/cifs/dir.c | 4 +++- trunk/fs/cifs/inode.c | 7 +++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 49d0e1c74934..55784eaa1bcb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4468eb3fd102cad559e51594a01cbc65b994d264 +refs/heads/master: b0fd30d3e7e768aad5e398caaea6ae5a5c814eab diff --git a/trunk/fs/cifs/dir.c b/trunk/fs/cifs/dir.c index f0b5b5f3dd2e..fb69c1fa85c9 100644 --- a/trunk/fs/cifs/dir.c +++ b/trunk/fs/cifs/dir.c @@ -260,7 +260,9 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode, buf, inode->i_sb, xid, &fileHandle); if (newinode) { - newinode->i_mode = mode; + if (cifs_sb->mnt_cifs_flags & + CIFS_MOUNT_DYNPERM) + newinode->i_mode = mode; if ((oplock & CIFS_CREATE_ACTION) && (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SET_UID)) { diff --git a/trunk/fs/cifs/inode.c b/trunk/fs/cifs/inode.c index ae5bcaf2031c..12667d6bf305 100644 --- a/trunk/fs/cifs/inode.c +++ b/trunk/fs/cifs/inode.c @@ -1015,8 +1015,11 @@ int cifs_mkdir(struct inode *inode, struct dentry *direntry, int mode) CIFS_MOUNT_MAP_SPECIAL_CHR); } if (direntry->d_inode) { - direntry->d_inode->i_mode = mode; - direntry->d_inode->i_mode |= S_IFDIR; + if (cifs_sb->mnt_cifs_flags & + CIFS_MOUNT_DYNPERM) + direntry->d_inode->i_mode = + (mode | S_IFDIR); + if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SET_UID) { direntry->d_inode->i_uid =