PNFS Todo List

From Linux NFS

Revision as of 08:07, 30 June 2008 by BennyHalevy (Talk | contribs)
Jump to: navigation, search

NFSv4.1 (sessions) Todo List

  • [2008-04-07] Prepare and send nfs41 patches for review. (bhalevy)
    • Depends on support for concurrent 4.0 and 4.1 mounts.
  • [2008-04-10] Add an option to control nfsv4.1 on the server side.
    • The motivation is disabling 4.1 on the server without having to rebuild the kernel. Some use cases: a faulty 4.1 client,

or one that's crashing the server, or just for easier debugging of the client (4.1 client mounting a 4.0 server).

  • [2008-05-22] (low priority) Investigate getting rid of extra indirection level of callback API for the filesystem. Currently the exported filesystem calls a pnfsd function with void* parameter that calls another function via a pointer in struct export_operations. Since we don't really need this abstraction the filesystem can just directly call the EXPORTed API function (that's currently pointed to in export_operations).

pNFS Todo List

  • Agree on LD API changes for block layout (Fred and Dean) then merge generic pnfs patch (fred-pnfs) into pnfs branch. (bhalevy)
  • [2008-04-02] Implement layout stateid as per draft-21+ (bhalevy)
  • [2008-04-02] Implement pnfs-aware page sync state model.

proposed model

Done

  • [2008-04-07] Add an option for nfsv4.1 to the nfs mount program.
    • "{nfs,}vers=41" seems to be the most appropriate. See nfs_mount_option_tokens in fs/nfs/super.c. Note that kernel nfs root (in fs/nfs/nfsroot.c does not current (2.6.25-rc8) support root over nfsv4 only "nfsvers=[23]".
  • [2008-04-07] Support concurrent nfsv4.0 and 4.1.
    • Get rid of global nfs4_procedures and move the pointer to struct nfs_client. (TBD)
    • nfs_version4 should not be global. We apparently need to either:
      • Split nfs_version and nfs_program to nfs_{version,program}4 and nfs_{version,program}41, make them static in fs/nfs/client.c and use either based on minorversion, or
      • teach rpc code, e.g. rpc_bind_new_program about minor version (and represent it in struct rpc_version). (TBD)
    • Manage callback threads for 4.0 and 4.1
      • Can either keep a separate use count, or
      • bring them up and down together. (TBD)
Personal tools