diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-12 21:53:54 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-12 21:53:54 -0400 |
commit | bd81ccea8558daab570d70d2c23746413f26cecf (patch) | |
tree | a3a75dde2dc3cf26c74353b21792da30d65d7c13 /fs/nfs | |
parent | 98260daa184c4a171834463cf85ab3a2c509d983 (diff) | |
parent | a9ca4043d074509b9d15003fbcb068d3cdae85a4 (diff) |
Merge branch 'for-3.7' of git://linux-nfs.org/~bfields/linux
Pull nfsd update from J Bruce Fields:
"Another relatively quiet cycle. There was some progress on my
remaining 4.1 todo's, but a couple of them were just of the form
"check that we do X correctly", so didn't have much affect on the
code.
Other than that, a bunch of cleanup and some bugfixes (including an
annoying NFSv4.0 state leak and a busy-loop in the server that could
cause it to peg the CPU without making progress)."
* 'for-3.7' of git://linux-nfs.org/~bfields/linux: (46 commits)
UAPI: (Scripted) Disintegrate include/linux/sunrpc
UAPI: (Scripted) Disintegrate include/linux/nfsd
nfsd4: don't allow reclaims of expired clients
nfsd4: remove redundant callback probe
nfsd4: expire old client earlier
nfsd4: separate session allocation and initialization
nfsd4: clean up session allocation
nfsd4: minor free_session cleanup
nfsd4: new_conn_from_crses should only allocate
nfsd4: separate connection allocation and initialization
nfsd4: reject bad forechannel attrs earlier
nfsd4: enforce per-client sessions/no-sessions distinction
nfsd4: set cl_minorversion at create time
nfsd4: don't pin clientids to pseudoflavors
nfsd4: fix bind_conn_to_session xdr comment
nfsd4: cast readlink() bug argument
NFSD: pass null terminated buf to kstrtouint()
nfsd: remove duplicate init in nfsd4_cb_recall
nfsd4: eliminate redundant nfs4_free_stateid
fs/nfsd/nfs4idmap.c: adjust inconsistent IS_ERR and PTR_ERR
...
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/callback.c | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c index 2245bef50f37..9a521fb39869 100644 --- a/fs/nfs/callback.c +++ b/fs/nfs/callback.c | |||
@@ -72,7 +72,7 @@ out_err: | |||
72 | static int | 72 | static int |
73 | nfs4_callback_svc(void *vrqstp) | 73 | nfs4_callback_svc(void *vrqstp) |
74 | { | 74 | { |
75 | int err, preverr = 0; | 75 | int err; |
76 | struct svc_rqst *rqstp = vrqstp; | 76 | struct svc_rqst *rqstp = vrqstp; |
77 | 77 | ||
78 | set_freezable(); | 78 | set_freezable(); |
@@ -82,20 +82,8 @@ nfs4_callback_svc(void *vrqstp) | |||
82 | * Listen for a request on the socket | 82 | * Listen for a request on the socket |
83 | */ | 83 | */ |
84 | err = svc_recv(rqstp, MAX_SCHEDULE_TIMEOUT); | 84 | err = svc_recv(rqstp, MAX_SCHEDULE_TIMEOUT); |
85 | if (err == -EAGAIN || err == -EINTR) { | 85 | if (err == -EAGAIN || err == -EINTR) |
86 | preverr = err; | ||
87 | continue; | 86 | continue; |
88 | } | ||
89 | if (err < 0) { | ||
90 | if (err != preverr) { | ||
91 | printk(KERN_WARNING "NFS: %s: unexpected error " | ||
92 | "from svc_recv (%d)\n", __func__, err); | ||
93 | preverr = err; | ||
94 | } | ||
95 | schedule_timeout_uninterruptible(HZ); | ||
96 | continue; | ||
97 | } | ||
98 | preverr = err; | ||
99 | svc_process(rqstp); | 87 | svc_process(rqstp); |
100 | } | 88 | } |
101 | return 0; | 89 | return 0; |