diff options
| author | Neil Brown <neilb@suse.de> | 2010-03-01 06:01:05 +0300 | 
|---|---|---|
| committer | J. Bruce Fields <bfields@citi.umich.edu> | 2010-03-01 07:21:51 +0300 | 
| commit | 301e99ce4a2f42a317129230fd42e6cd874c64b0 (patch) | |
| tree | 5522f3410f486fa34dcc64f2374acf029e173244 /drivers/misc/ibmasm/module.c | |
| parent | 1b644b6e6f6160ae35ce4b52c2ca89ed3e356e18 (diff) | |
| download | linux-301e99ce4a2f42a317129230fd42e6cd874c64b0.tar.xz | |
nfsd: ensure sockets are closed on error
One the changes in commit d7979ae4a "svc: Move close processing to a
single place" is:
  err_delete:
-       svc_delete_socket(svsk);
+       set_bit(SK_CLOSE, &svsk->sk_flags);
        return -EAGAIN;
This is insufficient. The recvfrom methods must always call
svc_xprt_received on completion so that the socket gets re-queued if
there is any more work to do.  This particular path did not make that
call because it actually destroyed the svsk, making requeue pointless.
When the svc_delete_socket was change to just set a bit, we should have
added a call to svc_xprt_received,
This is the problem that b0401d7253 attempted to fix, incorrectly.
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Diffstat (limited to 'drivers/misc/ibmasm/module.c')
0 files changed, 0 insertions, 0 deletions
