NFS: Generalise the nfs_client structure
Generalise the nfs_client structure by: (1) Moving nfs_client to a more general place (nfs_fs_sb.h). (2) Renaming its maintenance routines to be non-NFS4 specific. (3) Move those maintenance routines to a new non-NFS4 specific file (client.c) and move the declarations to internal.h. (4) Make nfs_find/get_client() take a full sockaddr_in to include the port number (will be required for NFS2/3). (5) Make nfs_find/get_client() take the NFS protocol version (again will be required to differentiate NFS2, 3 & 4 client records). Also: (6) Make nfs_client construction proceed akin to inodes, marking them as under construction and providing a function to indicate completion. (7) Make nfs_get_client() wait interruptibly if it finds a client that it can share, but that client is currently being constructed. (8) Make nfs4_create_client() use (6) and (7) instead of locking cl_sem. Signed-Off-By:David Howells <dhowells@redhat.com> Signed-off-by:
Trond Myklebust <Trond.Myklebust@netapp.com>
Showing
- fs/nfs/Makefile 3 additions, 3 deletionsfs/nfs/Makefile
- fs/nfs/callback.c 5 additions, 4 deletionsfs/nfs/callback.c
- fs/nfs/callback_proc.c 5 additions, 4 deletionsfs/nfs/callback_proc.c
- fs/nfs/client.c 312 additions, 0 deletionsfs/nfs/client.c
- fs/nfs/delegation.c 5 additions, 4 deletionsfs/nfs/delegation.c
- fs/nfs/internal.h 6 additions, 0 deletionsfs/nfs/internal.h
- fs/nfs/nfs4_fs.h 0 additions, 52 deletionsfs/nfs/nfs4_fs.h
- fs/nfs/nfs4proc.c 1 addition, 1 deletionfs/nfs/nfs4proc.c
- fs/nfs/nfs4state.c 6 additions, 122 deletionsfs/nfs/nfs4state.c
- fs/nfs/super.c 21 additions, 32 deletionsfs/nfs/super.c
- include/linux/nfs_fs.h 1 addition, 0 deletionsinclude/linux/nfs_fs.h
- include/linux/nfs_fs_sb.h 60 additions, 0 deletionsinclude/linux/nfs_fs_sb.h
Loading
Please register or sign in to comment