Files
ack-tegra/include/linux
Andy Adamson c36fca52f5 NFS refactor nfs_find_client and reference client across callback processing
Fixes a bug where the nfs_client could be freed during callback processing.
Refactor nfs_find_client to use minorversion specific means to locate the
correct nfs_client structure.

In the NFS layer, V4.0 clients are found using the callback_ident field in the
CB_COMPOUND header.  V4.1 clients are found using the sessionID in the
CB_SEQUENCE operation which is also compared against the sessionID associated
with the back channel thread after a successful CREATE_SESSION.

Each of these methods finds the one an only nfs_client associated
with the incoming callback request - so nfs_find_client_next is not needed.

In the RPC layer, the pg_authenticate call needs to find the nfs_client. For
the v4.0 callback service, the callback identifier has not been decoded so a
search by address, version, and minorversion is used.  The sessionid for the
sessions based callback service has (usually) not been set for the
pg_authenticate on a CB_NULL call which can be sent prior to the return
of a CREATE_SESSION call, so the sessionid associated with the back channel
thread is not used to find the client in pg_authenticate for CB_NULL calls.

Pass the referenced nfs_client to each CB_COMPOUND operation being proceesed
via the new cb_process_state structure. The reference is held across
cb_compound processing.

Use the new cb_process_state struct to move the NFS4ERR_RETRY_UNCACHED_REP
processing from process_op into nfs4_callback_sequence where it belongs.

Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2011-01-06 14:46:24 -05:00
..
2010-10-30 08:31:35 -07:00
2010-10-15 21:18:59 +02:00
2010-12-11 01:28:58 -05:00
2010-10-30 08:45:43 -04:00
2010-11-10 14:54:09 +01:00
2010-11-10 14:54:09 +01:00
2010-11-10 14:54:09 +01:00
2010-10-25 21:18:20 -04:00
2010-10-25 08:02:40 -07:00
2010-10-22 15:55:22 +02:00
2010-10-21 14:47:59 +02:00
2010-10-28 17:22:16 -04:00
2010-11-17 14:55:45 +09:00
2010-10-25 14:11:37 -07:00
2010-10-23 22:49:32 +02:00
2010-10-12 16:53:37 +02:00
2010-11-15 22:40:38 +01:00
2010-11-15 22:40:38 +01:00
2010-10-26 16:52:08 -07:00
2010-10-28 17:22:13 -04:00
2010-10-22 15:34:12 -05:00
2010-11-12 07:55:32 -08:00
2010-11-16 13:33:23 -08:00
2010-10-25 21:24:15 -04:00
2010-10-28 09:08:47 -05:00
2010-10-26 16:52:05 -07:00
2010-10-12 16:53:34 +02:00
2011-01-06 14:46:24 -05:00
2010-12-02 09:58:00 -05:00
2010-10-15 12:45:44 +02:00
2010-10-17 20:03:03 -07:00
2010-10-17 20:03:06 -07:00
2010-10-24 15:07:11 -07:00
2010-11-12 07:55:32 -08:00
2010-10-29 04:16:31 -04:00
2010-10-27 18:03:16 -07:00
2010-10-30 12:12:50 +02:00
2010-10-20 03:02:23 -07:00
2010-10-27 17:28:36 +01:00
2010-10-21 04:11:07 -07:00
2010-10-22 10:20:04 -07:00
2010-10-26 16:52:03 -07:00
2010-10-26 16:52:14 -07:00