diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-27 19:07:44 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-27 19:07:44 -0500 |
commit | 843c04a0f63c74c6424e4b7d1ab85223b1ecf740 (patch) | |
tree | c7f6b771ccc47a249b3c607471b3fbd1ad7ab7d2 /fs | |
parent | b00ecabf1d00f6c164aee62703df5dae7ac79894 (diff) | |
parent | fa82a491275a613b15489aab4b99acecb00958d3 (diff) |
Merge branch 'for-2.6.29' of git://linux-nfs.org/~bfields/linux
* 'for-2.6.29' of git://linux-nfs.org/~bfields/linux:
nfsd: only set file_lock.fl_lmops in nfsd4_lockt if a stateowner is found
nfsd: fix cred leak on every rpc
nfsd: fix null dereference on error path
nfs: note that CONFIG_SUNRPC_XPRT_RDMA turns on server side support too
update port number in NFS/RDMA documentation
Diffstat (limited to 'fs')
-rw-r--r-- | fs/nfsd/auth.c | 3 | ||||
-rw-r--r-- | fs/nfsd/nfs4state.c | 1 |
2 files changed, 3 insertions, 1 deletions
diff --git a/fs/nfsd/auth.c b/fs/nfsd/auth.c index c903e04aa217..5573508f707f 100644 --- a/fs/nfsd/auth.c +++ b/fs/nfsd/auth.c | |||
@@ -49,6 +49,8 @@ int nfsd_setuser(struct svc_rqst *rqstp, struct svc_export *exp) | |||
49 | new->fsuid = exp->ex_anon_uid; | 49 | new->fsuid = exp->ex_anon_uid; |
50 | new->fsgid = exp->ex_anon_gid; | 50 | new->fsgid = exp->ex_anon_gid; |
51 | gi = groups_alloc(0); | 51 | gi = groups_alloc(0); |
52 | if (!gi) | ||
53 | goto oom; | ||
52 | } else if (flags & NFSEXP_ROOTSQUASH) { | 54 | } else if (flags & NFSEXP_ROOTSQUASH) { |
53 | if (!new->fsuid) | 55 | if (!new->fsuid) |
54 | new->fsuid = exp->ex_anon_uid; | 56 | new->fsuid = exp->ex_anon_uid; |
@@ -85,6 +87,7 @@ int nfsd_setuser(struct svc_rqst *rqstp, struct svc_export *exp) | |||
85 | new->cap_effective = cap_raise_nfsd_set(new->cap_effective, | 87 | new->cap_effective = cap_raise_nfsd_set(new->cap_effective, |
86 | new->cap_permitted); | 88 | new->cap_permitted); |
87 | put_cred(override_creds(new)); | 89 | put_cred(override_creds(new)); |
90 | put_cred(new); | ||
88 | return 0; | 91 | return 0; |
89 | 92 | ||
90 | oom: | 93 | oom: |
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 88db7d3ec120..b6f60f48e94b 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c | |||
@@ -2871,7 +2871,6 @@ nfsd4_lockt(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, | |||
2871 | file_lock.fl_owner = (fl_owner_t)lockt->lt_stateowner; | 2871 | file_lock.fl_owner = (fl_owner_t)lockt->lt_stateowner; |
2872 | file_lock.fl_pid = current->tgid; | 2872 | file_lock.fl_pid = current->tgid; |
2873 | file_lock.fl_flags = FL_POSIX; | 2873 | file_lock.fl_flags = FL_POSIX; |
2874 | file_lock.fl_lmops = &nfsd_posix_mng_ops; | ||
2875 | 2874 | ||
2876 | file_lock.fl_start = lockt->lt_offset; | 2875 | file_lock.fl_start = lockt->lt_offset; |
2877 | file_lock.fl_end = last_byte_offset(lockt->lt_offset, lockt->lt_length); | 2876 | file_lock.fl_end = last_byte_offset(lockt->lt_offset, lockt->lt_length); |