X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fnfs_xdr.h;fp=include%2Flinux%2Fnfs_xdr.h;h=6d6f69ec5675bf1992dc8a6f532164fb8438fbc6;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=2426b11b6cce5093e6eca363db4a213a36ea3311;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 2426b11b6..6d6f69ec5 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h @@ -14,19 +14,11 @@ #define NFS_DEF_FILE_IO_SIZE (4096U) #define NFS_MIN_FILE_IO_SIZE (1024U) -struct nfs_fsid { - uint64_t major; - uint64_t minor; +struct nfs4_fsid { + __u64 major; + __u64 minor; }; -/* - * Helper for checking equality between 2 fsids. - */ -static inline int nfs_fsid_equal(const struct nfs_fsid *a, const struct nfs_fsid *b) -{ - return a->major == b->major && a->minor == b->minor; -} - struct nfs_fattr { unsigned short valid; /* which fields are valid */ __u64 pre_size; /* pre_op_attr.size */ @@ -48,7 +40,10 @@ struct nfs_fattr { } nfs3; } du; dev_t rdev; - struct nfs_fsid fsid; + union { + __u64 nfs3; /* also nfs2 */ + struct nfs4_fsid nfs4; + } fsid_u; __u64 fileid; struct timespec atime; struct timespec mtime; @@ -62,8 +57,8 @@ struct nfs_fattr { #define NFS_ATTR_WCC 0x0001 /* pre-op WCC data */ #define NFS_ATTR_FATTR 0x0002 /* post-op attributes */ #define NFS_ATTR_FATTR_V3 0x0004 /* NFSv3 attributes */ -#define NFS_ATTR_FATTR_V4 0x0008 /* NFSv4 change attribute */ -#define NFS_ATTR_FATTR_V4_REFERRAL 0x0010 /* NFSv4 referral */ +#define NFS_ATTR_FATTR_V4 0x0008 +#define NFS_ATTR_PRE_CHANGE 0x0010 /* * Info on the file system @@ -659,7 +654,7 @@ struct nfs4_rename_res { struct nfs4_setclientid { const nfs4_verifier * sc_verifier; /* request */ unsigned int sc_name_len; - char sc_name[48]; /* request */ + char sc_name[32]; /* request */ u32 sc_prog; /* request */ unsigned int sc_netid_len; char sc_netid[4]; /* request */ @@ -680,40 +675,6 @@ struct nfs4_server_caps_res { u32 has_symlinks; }; -struct nfs4_string { - unsigned int len; - char *data; -}; - -#define NFS4_PATHNAME_MAXCOMPONENTS 512 -struct nfs4_pathname { - unsigned int ncomponents; - struct nfs4_string components[NFS4_PATHNAME_MAXCOMPONENTS]; -}; - -#define NFS4_FS_LOCATION_MAXSERVERS 10 -struct nfs4_fs_location { - unsigned int nservers; - struct nfs4_string servers[NFS4_FS_LOCATION_MAXSERVERS]; - struct nfs4_pathname rootpath; -}; - -#define NFS4_FS_LOCATIONS_MAXENTRIES 10 -struct nfs4_fs_locations { - struct nfs_fattr fattr; - const struct nfs_server *server; - struct nfs4_pathname fs_path; - int nlocations; - struct nfs4_fs_location locations[NFS4_FS_LOCATIONS_MAXENTRIES]; -}; - -struct nfs4_fs_locations_arg { - const struct nfs_fh *dir_fh; - const struct qstr *name; - struct page *page; - const u32 *bitmask; -}; - #endif /* CONFIG_NFS_V4 */ struct nfs_page; @@ -729,13 +690,13 @@ struct nfs_read_data { struct list_head pages; /* Coalesced read requests */ struct nfs_page *req; /* multi ops per nfs_page */ struct page **pagevec; - unsigned int npages; /* Max length of pagevec */ struct nfs_readargs args; struct nfs_readres res; #ifdef CONFIG_NFS_V4 unsigned long timestamp; /* For lease renewal */ #endif - struct page *page_array[NFS_PAGEVEC_SIZE]; + void (*complete) (struct nfs_read_data *, int); + struct page *page_array[NFS_PAGEVEC_SIZE + 1]; }; struct nfs_write_data { @@ -748,13 +709,13 @@ struct nfs_write_data { struct list_head pages; /* Coalesced requests we wish to flush */ struct nfs_page *req; /* multi ops per nfs_page */ struct page **pagevec; - unsigned int npages; /* Max length of pagevec */ struct nfs_writeargs args; /* argument struct */ struct nfs_writeres res; /* result struct */ #ifdef CONFIG_NFS_V4 unsigned long timestamp; /* For lease renewal */ #endif - struct page *page_array[NFS_PAGEVEC_SIZE]; + void (*complete) (struct nfs_write_data *, int); + struct page *page_array[NFS_PAGEVEC_SIZE + 1]; }; struct nfs_access_entry; @@ -770,9 +731,6 @@ struct nfs_rpc_ops { int (*getroot) (struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *); - int (*lookupfh)(struct nfs_server *, struct nfs_fh *, - struct qstr *, struct nfs_fh *, - struct nfs_fattr *); int (*getattr) (struct nfs_server *, struct nfs_fh *, struct nfs_fattr *); int (*setattr) (struct dentry *, struct nfs_fattr *, @@ -809,14 +767,10 @@ struct nfs_rpc_ops { struct nfs_fsinfo *); int (*pathconf) (struct nfs_server *, struct nfs_fh *, struct nfs_pathconf *); - int (*set_capabilities)(struct nfs_server *, struct nfs_fh *); u32 * (*decode_dirent)(u32 *, struct nfs_entry *, int plus); void (*read_setup) (struct nfs_read_data *); - int (*read_done) (struct rpc_task *, struct nfs_read_data *); void (*write_setup) (struct nfs_write_data *, int how); - int (*write_done) (struct rpc_task *, struct nfs_write_data *); void (*commit_setup) (struct nfs_write_data *, int how); - int (*commit_done) (struct rpc_task *, struct nfs_write_data *); int (*file_open) (struct inode *, struct file *); int (*file_release) (struct inode *, struct file *); int (*lock)(struct file *, int, struct file_lock *); @@ -833,9 +787,9 @@ struct nfs_rpc_ops { /* * Function vectors etc. for the NFS client */ -extern const struct nfs_rpc_ops nfs_v2_clientops; -extern const struct nfs_rpc_ops nfs_v3_clientops; -extern const struct nfs_rpc_ops nfs_v4_clientops; +extern struct nfs_rpc_ops nfs_v2_clientops; +extern struct nfs_rpc_ops nfs_v3_clientops; +extern struct nfs_rpc_ops nfs_v4_clientops; extern struct rpc_version nfs_version2; extern struct rpc_version nfs_version3; extern struct rpc_version nfs_version4;