Linux pnfs client rewrite may 2006
From Linux NFS
pNFS Client Rewrite May 2006
The main purpose of this rewrite is to separate the pNFS code path from the NFSv2/v3/v4 code path. Following the method used to separate the NFSv2/v3/v4 code paths from each other, I created a new rpc_ops for pNFS, and moved all pNFS processing into the appropriate routines. New rpc_ops were created where necessary. Existing nfs functions were split when necessary.
The rpc_ops are set at mount. The NFSv4 client uses the nfs_v4_clientops rpc_ops as usual.