diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-06-09 09:34:22 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-06-09 09:34:22 -0400 |
commit | 683b57b435326eb512c7305892683b6205669448 (patch) | |
tree | ca1e526ab5b27993c0c143c37bb31e18889eeb61 /include | |
parent | 8b23ea7bedb8b45a5bb56745fa3ff11018acf04e (diff) |
NFSv4: Implement the fs_locations function call
NFSv4 allows for the fact that filesystems may be replicated across
several servers or that they may be migrated to a backup server in case of
failure of the primary server.
fs_locations is an NFSv4 operation for retrieving information about the
location of migrated and/or replicated filesystems.
Based on an initial implementation by Jiaying Zhang <jiayingz@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/nfs4.h | 1 | ||||
-rw-r--r-- | include/linux/nfs_xdr.h | 24 |
2 files changed, 25 insertions, 0 deletions
diff --git a/include/linux/nfs4.h b/include/linux/nfs4.h index 0c1c306cdaec..1477fc857f6b 100644 --- a/include/linux/nfs4.h +++ b/include/linux/nfs4.h | |||
@@ -384,6 +384,7 @@ enum { | |||
384 | NFSPROC4_CLNT_DELEGRETURN, | 384 | NFSPROC4_CLNT_DELEGRETURN, |
385 | NFSPROC4_CLNT_GETACL, | 385 | NFSPROC4_CLNT_GETACL, |
386 | NFSPROC4_CLNT_SETACL, | 386 | NFSPROC4_CLNT_SETACL, |
387 | NFSPROC4_CLNT_FS_LOCATIONS, | ||
387 | }; | 388 | }; |
388 | 389 | ||
389 | #endif | 390 | #endif |
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 95682f7d738a..15a20b815302 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
@@ -679,6 +679,30 @@ struct nfs4_server_caps_res { | |||
679 | u32 has_symlinks; | 679 | u32 has_symlinks; |
680 | }; | 680 | }; |
681 | 681 | ||
682 | struct nfs_fs_location { | ||
683 | unsigned int serverlen; | ||
684 | char * server; | ||
685 | unsigned int rootpathlen; | ||
686 | char * rootpath; | ||
687 | }; | ||
688 | |||
689 | #define NFS_FS_LOCATIONS_MAXENTRIES 10 | ||
690 | struct nfs_fs_locations { | ||
691 | struct nfs_fattr fattr; | ||
692 | const struct nfs_server *server; | ||
693 | unsigned int fs_pathlen; | ||
694 | char * fs_path; | ||
695 | int nlocations; | ||
696 | struct nfs_fs_location locations[NFS_FS_LOCATIONS_MAXENTRIES]; | ||
697 | }; | ||
698 | |||
699 | struct nfs4_fs_locations_arg { | ||
700 | const struct nfs_fh *dir_fh; | ||
701 | const struct qstr *name; | ||
702 | struct page *page; | ||
703 | const u32 *bitmask; | ||
704 | }; | ||
705 | |||
682 | #endif /* CONFIG_NFS_V4 */ | 706 | #endif /* CONFIG_NFS_V4 */ |
683 | 707 | ||
684 | struct nfs_page; | 708 | struct nfs_page; |