aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/nfs4.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/nfs4.h')
-rw-r--r--include/linux/nfs4.h65
1 files changed, 63 insertions, 2 deletions
diff --git a/include/linux/nfs4.h b/include/linux/nfs4.h
index 07e40c625972..4925b22219d2 100644
--- a/include/linux/nfs4.h
+++ b/include/linux/nfs4.h
@@ -17,7 +17,9 @@
17 17
18#define NFS4_BITMAP_SIZE 2 18#define NFS4_BITMAP_SIZE 2
19#define NFS4_VERIFIER_SIZE 8 19#define NFS4_VERIFIER_SIZE 8
20#define NFS4_STATEID_SIZE 16 20#define NFS4_STATEID_SEQID_SIZE 4
21#define NFS4_STATEID_OTHER_SIZE 12
22#define NFS4_STATEID_SIZE (NFS4_STATEID_SEQID_SIZE + NFS4_STATEID_OTHER_SIZE)
21#define NFS4_FHSIZE 128 23#define NFS4_FHSIZE 128
22#define NFS4_MAXPATHLEN PATH_MAX 24#define NFS4_MAXPATHLEN PATH_MAX
23#define NFS4_MAXNAMLEN NAME_MAX 25#define NFS4_MAXNAMLEN NAME_MAX
@@ -61,6 +63,9 @@
61#define NFS4_SHARE_SIGNAL_DELEG_WHEN_RESRC_AVAIL 0x10000 63#define NFS4_SHARE_SIGNAL_DELEG_WHEN_RESRC_AVAIL 0x10000
62#define NFS4_SHARE_PUSH_DELEG_WHEN_UNCONTENDED 0x20000 64#define NFS4_SHARE_PUSH_DELEG_WHEN_UNCONTENDED 0x20000
63 65
66#define NFS4_CDFC4_FORE 0x1
67#define NFS4_CDFC4_BACK 0x2
68
64#define NFS4_SET_TO_SERVER_TIME 0 69#define NFS4_SET_TO_SERVER_TIME 0
65#define NFS4_SET_TO_CLIENT_TIME 1 70#define NFS4_SET_TO_CLIENT_TIME 1
66 71
@@ -167,7 +172,16 @@ struct nfs4_acl {
167}; 172};
168 173
169typedef struct { char data[NFS4_VERIFIER_SIZE]; } nfs4_verifier; 174typedef struct { char data[NFS4_VERIFIER_SIZE]; } nfs4_verifier;
170typedef struct { char data[NFS4_STATEID_SIZE]; } nfs4_stateid; 175
176struct nfs41_stateid {
177 __be32 seqid;
178 char other[NFS4_STATEID_OTHER_SIZE];
179} __attribute__ ((packed));
180
181typedef union {
182 char data[NFS4_STATEID_SIZE];
183 struct nfs41_stateid stateid;
184} nfs4_stateid;
171 185
172enum nfs_opnum4 { 186enum nfs_opnum4 {
173 OP_ACCESS = 3, 187 OP_ACCESS = 3,
@@ -471,6 +485,8 @@ enum lock_type4 {
471#define FATTR4_WORD1_TIME_MODIFY (1UL << 21) 485#define FATTR4_WORD1_TIME_MODIFY (1UL << 21)
472#define FATTR4_WORD1_TIME_MODIFY_SET (1UL << 22) 486#define FATTR4_WORD1_TIME_MODIFY_SET (1UL << 22)
473#define FATTR4_WORD1_MOUNTED_ON_FILEID (1UL << 23) 487#define FATTR4_WORD1_MOUNTED_ON_FILEID (1UL << 23)
488#define FATTR4_WORD1_FS_LAYOUT_TYPES (1UL << 30)
489#define FATTR4_WORD2_LAYOUT_BLKSIZE (1UL << 1)
474 490
475#define NFSPROC4_NULL 0 491#define NFSPROC4_NULL 0
476#define NFSPROC4_COMPOUND 1 492#define NFSPROC4_COMPOUND 1
@@ -532,6 +548,8 @@ enum {
532 NFSPROC4_CLNT_SEQUENCE, 548 NFSPROC4_CLNT_SEQUENCE,
533 NFSPROC4_CLNT_GET_LEASE_TIME, 549 NFSPROC4_CLNT_GET_LEASE_TIME,
534 NFSPROC4_CLNT_RECLAIM_COMPLETE, 550 NFSPROC4_CLNT_RECLAIM_COMPLETE,
551 NFSPROC4_CLNT_LAYOUTGET,
552 NFSPROC4_CLNT_GETDEVICEINFO,
535}; 553};
536 554
537/* nfs41 types */ 555/* nfs41 types */
@@ -550,6 +568,49 @@ enum state_protect_how4 {
550 SP4_SSV = 2 568 SP4_SSV = 2
551}; 569};
552 570
571enum pnfs_layouttype {
572 LAYOUT_NFSV4_1_FILES = 1,
573 LAYOUT_OSD2_OBJECTS = 2,
574 LAYOUT_BLOCK_VOLUME = 3,
575};
576
577/* used for both layout return and recall */
578enum pnfs_layoutreturn_type {
579 RETURN_FILE = 1,
580 RETURN_FSID = 2,
581 RETURN_ALL = 3
582};
583
584enum pnfs_iomode {
585 IOMODE_READ = 1,
586 IOMODE_RW = 2,
587 IOMODE_ANY = 3,
588};
589
590enum pnfs_notify_deviceid_type4 {
591 NOTIFY_DEVICEID4_CHANGE = 1 << 1,
592 NOTIFY_DEVICEID4_DELETE = 1 << 2,
593};
594
595#define NFL4_UFLG_MASK 0x0000003F
596#define NFL4_UFLG_DENSE 0x00000001
597#define NFL4_UFLG_COMMIT_THRU_MDS 0x00000002
598#define NFL4_UFLG_STRIPE_UNIT_SIZE_MASK 0xFFFFFFC0
599
600/* Encoded in the loh_body field of type layouthint4 */
601enum filelayout_hint_care4 {
602 NFLH4_CARE_DENSE = NFL4_UFLG_DENSE,
603 NFLH4_CARE_COMMIT_THRU_MDS = NFL4_UFLG_COMMIT_THRU_MDS,
604 NFLH4_CARE_STRIPE_UNIT_SIZE = 0x00000040,
605 NFLH4_CARE_STRIPE_COUNT = 0x00000080
606};
607
608#define NFS4_DEVICEID4_SIZE 16
609
610struct nfs4_deviceid {
611 char data[NFS4_DEVICEID4_SIZE];
612};
613
553#endif 614#endif
554#endif 615#endif
555 616