[PATCH 0/2] Statd port change recovery

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



These two attempt to address the issue of the kernel not recovering from
a statd port change, which Bruce pointed out in

http://marc.info/?t=140865700700001&r=1&w=2

The second patch here re-attempts the call after doing rpc_force_rebind
which is basically copied from what NLM would do in the same case.  However,
while working on that I discovered that when the transport attempts to reuse
a socket in the first call after rpc_force_rebind, it calls kernel_connect
with AF_UNSPEC to disconnect, which wakes the task in xs_error_report.  The
change in the task's status causes the first call after rpc_force_rebind to
fail, and a soft task returns which would otherwise succeed if the
connection had already been up.

The first patch tries to remedy this by not waking the task if we end up in
xs_error_report while trying to reuse the connection.  We expect to end up
in xs_error_report with an error, but we don't want to wake the task yet
since we're already set up to immediately reconnect.

Benjamin Coddington (2):
  SUNRPC: Don't wake tasks during connection abort
  lockd: Try to reconnect if statd has moved

 fs/lockd/mon.c              |    6 ++++++
 include/linux/sunrpc/xprt.h |    1 +
 net/sunrpc/xprtsock.c       |    4 ++++
 3 files changed, 11 insertions(+), 0 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux