mirror of https://gitee.com/openkylin/linux.git
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
This commit is contained in:
commit
843c04a0f6
|
@ -251,7 +251,7 @@ NFS/RDMA Setup
|
||||||
|
|
||||||
Instruct the server to listen on the RDMA transport:
|
Instruct the server to listen on the RDMA transport:
|
||||||
|
|
||||||
$ echo rdma 2050 > /proc/fs/nfsd/portlist
|
$ echo rdma 20049 > /proc/fs/nfsd/portlist
|
||||||
|
|
||||||
- On the client system
|
- On the client system
|
||||||
|
|
||||||
|
@ -263,7 +263,7 @@ NFS/RDMA Setup
|
||||||
Regardless of how the client was built (module or built-in), use this
|
Regardless of how the client was built (module or built-in), use this
|
||||||
command to mount the NFS/RDMA server:
|
command to mount the NFS/RDMA server:
|
||||||
|
|
||||||
$ mount -o rdma,port=2050 <IPoIB-server-name-or-address>:/<export> /mnt
|
$ mount -o rdma,port=20049 <IPoIB-server-name-or-address>:/<export> /mnt
|
||||||
|
|
||||||
To verify that the mount is using RDMA, run "cat /proc/mounts" and check
|
To verify that the mount is using RDMA, run "cat /proc/mounts" and check
|
||||||
the "proto" field for the given mount.
|
the "proto" field for the given mount.
|
||||||
|
|
|
@ -49,6 +49,8 @@ int nfsd_setuser(struct svc_rqst *rqstp, struct svc_export *exp)
|
||||||
new->fsuid = exp->ex_anon_uid;
|
new->fsuid = exp->ex_anon_uid;
|
||||||
new->fsgid = exp->ex_anon_gid;
|
new->fsgid = exp->ex_anon_gid;
|
||||||
gi = groups_alloc(0);
|
gi = groups_alloc(0);
|
||||||
|
if (!gi)
|
||||||
|
goto oom;
|
||||||
} else if (flags & NFSEXP_ROOTSQUASH) {
|
} else if (flags & NFSEXP_ROOTSQUASH) {
|
||||||
if (!new->fsuid)
|
if (!new->fsuid)
|
||||||
new->fsuid = exp->ex_anon_uid;
|
new->fsuid = exp->ex_anon_uid;
|
||||||
|
@ -85,6 +87,7 @@ int nfsd_setuser(struct svc_rqst *rqstp, struct svc_export *exp)
|
||||||
new->cap_effective = cap_raise_nfsd_set(new->cap_effective,
|
new->cap_effective = cap_raise_nfsd_set(new->cap_effective,
|
||||||
new->cap_permitted);
|
new->cap_permitted);
|
||||||
put_cred(override_creds(new));
|
put_cred(override_creds(new));
|
||||||
|
put_cred(new);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
oom:
|
oom:
|
||||||
|
|
|
@ -2871,7 +2871,6 @@ nfsd4_lockt(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
|
||||||
file_lock.fl_owner = (fl_owner_t)lockt->lt_stateowner;
|
file_lock.fl_owner = (fl_owner_t)lockt->lt_stateowner;
|
||||||
file_lock.fl_pid = current->tgid;
|
file_lock.fl_pid = current->tgid;
|
||||||
file_lock.fl_flags = FL_POSIX;
|
file_lock.fl_flags = FL_POSIX;
|
||||||
file_lock.fl_lmops = &nfsd_posix_mng_ops;
|
|
||||||
|
|
||||||
file_lock.fl_start = lockt->lt_offset;
|
file_lock.fl_start = lockt->lt_offset;
|
||||||
file_lock.fl_end = last_byte_offset(lockt->lt_offset, lockt->lt_length);
|
file_lock.fl_end = last_byte_offset(lockt->lt_offset, lockt->lt_length);
|
||||||
|
|
|
@ -9,9 +9,8 @@ config SUNRPC_XPRT_RDMA
|
||||||
depends on SUNRPC && INFINIBAND && EXPERIMENTAL
|
depends on SUNRPC && INFINIBAND && EXPERIMENTAL
|
||||||
default SUNRPC && INFINIBAND
|
default SUNRPC && INFINIBAND
|
||||||
help
|
help
|
||||||
This option enables an RPC client transport capability that
|
This option allows the NFS client and server to support
|
||||||
allows the NFS client to mount servers via an RDMA-enabled
|
an RDMA-enabled transport.
|
||||||
transport.
|
|
||||||
|
|
||||||
To compile RPC client RDMA transport support as a module,
|
To compile RPC client RDMA transport support as a module,
|
||||||
choose M here: the module will be called xprtrdma.
|
choose M here: the module will be called xprtrdma.
|
||||||
|
|
Loading…
Reference in New Issue