aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2006-06-09 09:34:22 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2006-06-09 09:34:22 -0400
commit683b57b435326eb512c7305892683b6205669448 (patch)
treeca1e526ab5b27993c0c143c37bb31e18889eeb61 /include/linux
parent8b23ea7bedb8b45a5bb56745fa3ff11018acf04e (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/linux')
-rw-r--r--include/linux/nfs4.h1
-rw-r--r--include/linux/nfs_xdr.h24
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
682struct 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
690struct 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
699struct 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
684struct nfs_page; 708struct nfs_page;