diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-20 17:04:11 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-20 17:04:11 -0500 |
commit | 982197277c85018cc6eb77f1d3bef17933b0c5fd (patch) | |
tree | 805fcef9ec7c1e83867b89332fd37f751594fae3 /net/sunrpc/svc.c | |
parent | 40889e8d9fc6355980cf2bc94ef4356c10dec4ec (diff) | |
parent | 24ffb93872f7363a01ad639e3c8a9889b46c3f0a (diff) |
Merge branch 'for-3.8' of git://linux-nfs.org/~bfields/linux
Pull nfsd update from Bruce Fields:
"Included this time:
- more nfsd containerization work from Stanislav Kinsbursky: we're
not quite there yet, but should be by 3.9.
- NFSv4.1 progress: implementation of basic backchannel security
negotiation and the mandatory BACKCHANNEL_CTL operation. See
http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues
for remaining TODO's
- Fixes for some bugs that could be triggered by unusual compounds.
Our xdr code wasn't designed with v4 compounds in mind, and it
shows. A more thorough rewrite is still a todo.
- If you've ever seen "RPC: multiple fragments per record not
supported" logged while using some sort of odd userland NFS client,
that should now be fixed.
- Further work from Jeff Layton on our mechanism for storing
information about NFSv4 clients across reboots.
- Further work from Bryan Schumaker on his fault-injection mechanism
(which allows us to discard selective NFSv4 state, to excercise
rarely-taken recovery code paths in the client.)
- The usual mix of miscellaneous bugs and cleanup.
Thanks to everyone who tested or contributed this cycle."
* 'for-3.8' of git://linux-nfs.org/~bfields/linux: (111 commits)
nfsd4: don't leave freed stateid hashed
nfsd4: free_stateid can use the current stateid
nfsd4: cleanup: replace rq_resused count by rq_next_page pointer
nfsd: warn on odd reply state in nfsd_vfs_read
nfsd4: fix oops on unusual readlike compound
nfsd4: disable zero-copy on non-final read ops
svcrpc: fix some printks
NFSD: Correct the size calculation in fault_inject_write
NFSD: Pass correct buffer size to rpc_ntop
nfsd: pass proper net to nfsd_destroy() from NFSd kthreads
nfsd: simplify service shutdown
nfsd: replace boolean nfsd_up flag by users counter
nfsd: simplify NFSv4 state init and shutdown
nfsd: introduce helpers for generic resources init and shutdown
nfsd: make NFSd service structure allocated per net
nfsd: make NFSd service boot time per-net
nfsd: per-net NFSd up flag introduced
nfsd: move per-net startup code to separated function
nfsd: pass net to __write_ports() and down
nfsd: pass net to nfsd_set_nrthreads()
...
Diffstat (limited to 'net/sunrpc/svc.c')
-rw-r--r-- | net/sunrpc/svc.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c index dfa4ba69ff45..dbf12ac5ecb7 100644 --- a/net/sunrpc/svc.c +++ b/net/sunrpc/svc.c | |||
@@ -20,7 +20,6 @@ | |||
20 | #include <linux/module.h> | 20 | #include <linux/module.h> |
21 | #include <linux/kthread.h> | 21 | #include <linux/kthread.h> |
22 | #include <linux/slab.h> | 22 | #include <linux/slab.h> |
23 | #include <linux/nsproxy.h> | ||
24 | 23 | ||
25 | #include <linux/sunrpc/types.h> | 24 | #include <linux/sunrpc/types.h> |
26 | #include <linux/sunrpc/xdr.h> | 25 | #include <linux/sunrpc/xdr.h> |
@@ -1041,7 +1040,7 @@ static void svc_unregister(const struct svc_serv *serv, struct net *net) | |||
1041 | } | 1040 | } |
1042 | 1041 | ||
1043 | /* | 1042 | /* |
1044 | * Printk the given error with the address of the client that caused it. | 1043 | * dprintk the given error with the address of the client that caused it. |
1045 | */ | 1044 | */ |
1046 | static __printf(2, 3) | 1045 | static __printf(2, 3) |
1047 | void svc_printk(struct svc_rqst *rqstp, const char *fmt, ...) | 1046 | void svc_printk(struct svc_rqst *rqstp, const char *fmt, ...) |
@@ -1055,8 +1054,7 @@ void svc_printk(struct svc_rqst *rqstp, const char *fmt, ...) | |||
1055 | vaf.fmt = fmt; | 1054 | vaf.fmt = fmt; |
1056 | vaf.va = &args; | 1055 | vaf.va = &args; |
1057 | 1056 | ||
1058 | net_warn_ratelimited("svc: %s: %pV", | 1057 | dprintk("svc: %s: %pV", svc_print_addr(rqstp, buf, sizeof(buf)), &vaf); |
1059 | svc_print_addr(rqstp, buf, sizeof(buf)), &vaf); | ||
1060 | 1058 | ||
1061 | va_end(args); | 1059 | va_end(args); |
1062 | } | 1060 | } |
@@ -1305,7 +1303,7 @@ svc_process(struct svc_rqst *rqstp) | |||
1305 | * Setup response xdr_buf. | 1303 | * Setup response xdr_buf. |
1306 | * Initially it has just one page | 1304 | * Initially it has just one page |
1307 | */ | 1305 | */ |
1308 | rqstp->rq_resused = 1; | 1306 | rqstp->rq_next_page = &rqstp->rq_respages[1]; |
1309 | resv->iov_base = page_address(rqstp->rq_respages[0]); | 1307 | resv->iov_base = page_address(rqstp->rq_respages[0]); |
1310 | resv->iov_len = 0; | 1308 | resv->iov_len = 0; |
1311 | rqstp->rq_res.pages = rqstp->rq_respages + 1; | 1309 | rqstp->rq_res.pages = rqstp->rq_respages + 1; |