On Mar. 28, 2009, 20:23 +0300, Trond Myklebust <Trond.Myklebust@xxxxxxxxxx> wrote: > On Sat, 2009-03-28 at 11:20 +0300, Benny Halevy wrote: >> On Mar. 28, 2009, 3:39 +0300, "Myklebust, Trond" <Trond.Myklebust@xxxxxxxxxx> wrote: >>> On Mar 27, 2009, at 8:06 PM, "J. Bruce Fields" <bfields@xxxxxxxxxxxx> >>> wrote: >>> >>>> On Fri, Mar 27, 2009 at 06:01:48AM +0300, Benny Halevy wrote: >>>>> From: Andy Adamson <andros@xxxxxxxxxx> >>>>> >>>>> Note: the NFSv4.1 client also uses (and declares) this pointer. >>>> OK. Ack from trond? >>> >>> First, someone would need to remind me why it is necessary, and add >>> that justification to the changelog. >> First time this is used in this patchset is here: >> [PATCH 35/47] nfsd: minorversion support for the back channel >> >> The client uses cl_private to determine the minorversion >> (via a struct nfs_client *) to be set in the compound header, >> and to know when to generate a SEQUENCE op. >> Similarly, the server puts a struct nfs4_callback * in >> there for callback compounds' CB_COMPOUND and CB_SEQUENCE. > > Why would the rpc_client need to know and track minor versions? That is > an NFS protocol specific thing. Agreed. the rpc_client doesn't know anything about the minor version. This is why we store it in a void *cl_private. > > Besides, the caller should always know what minor version it is using. > It shouldn't need a back-pointer in the rpc_client... > The back pointer is used in the xdr layer like this: struct xdr_stream xdr; + struct nfs_client *clp = + (struct nfs_client *)req->rq_task->tk_client->cl_private; struct compound_hdr hdr = { - .nops = 0, + .minorversion = clp->cl_minorversion, }; Benny -- 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