aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4proc.c
diff options
context:
space:
mode:
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>2010-12-09 06:35:14 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2011-01-04 13:10:40 -0500
commita8a5da996df7d2d91b5aef2752da9adcefea4bc6 (patch)
tree605be5f4af59d5cc324ae11c18a8b34db7ab3c6a /fs/nfs/nfs4proc.c
parentbf0c84f1614bffc59565d04f09b9ac6b1aa269a9 (diff)
nfs: Set MS_POSIXACL always
We want to skip VFS applying mode for NFS. So set MS_POSIXACL always and selectively use umask. Ideally we would want to use umask only when we don't have inheritable ACEs set. But NFS currently don't allow to send umask to the server. So this is best what we can do and this is consistent with NFSv3 Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4proc.c')
-rw-r--r--fs/nfs/nfs4proc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 78b08993a38b..ca88f294f0af 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -2486,6 +2486,7 @@ nfs4_proc_create(struct inode *dir, struct dentry *dentry, struct iattr *sattr,
2486 path = &ctx->path; 2486 path = &ctx->path;
2487 fmode = ctx->mode; 2487 fmode = ctx->mode;
2488 } 2488 }
2489 sattr->ia_mode &= ~current_umask();
2489 state = nfs4_do_open(dir, path, fmode, flags, sattr, cred); 2490 state = nfs4_do_open(dir, path, fmode, flags, sattr, cred);
2490 d_drop(dentry); 2491 d_drop(dentry);
2491 if (IS_ERR(state)) { 2492 if (IS_ERR(state)) {
@@ -2816,6 +2817,8 @@ static int nfs4_proc_mkdir(struct inode *dir, struct dentry *dentry,
2816{ 2817{
2817 struct nfs4_exception exception = { }; 2818 struct nfs4_exception exception = { };
2818 int err; 2819 int err;
2820
2821 sattr->ia_mode &= ~current_umask();
2819 do { 2822 do {
2820 err = nfs4_handle_exception(NFS_SERVER(dir), 2823 err = nfs4_handle_exception(NFS_SERVER(dir),
2821 _nfs4_proc_mkdir(dir, dentry, sattr), 2824 _nfs4_proc_mkdir(dir, dentry, sattr),
@@ -2916,6 +2919,8 @@ static int nfs4_proc_mknod(struct inode *dir, struct dentry *dentry,
2916{ 2919{
2917 struct nfs4_exception exception = { }; 2920 struct nfs4_exception exception = { };
2918 int err; 2921 int err;
2922
2923 sattr->ia_mode &= ~current_umask();
2919 do { 2924 do {
2920 err = nfs4_handle_exception(NFS_SERVER(dir), 2925 err = nfs4_handle_exception(NFS_SERVER(dir),
2921 _nfs4_proc_mknod(dir, dentry, sattr, rdev), 2926 _nfs4_proc_mknod(dir, dentry, sattr, rdev),