diff options
author | J. Bruce Fields <bfields@redhat.com> | 2011-07-18 18:40:21 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2011-07-18 18:41:33 -0400 |
commit | c46556c6be057da79f51b1a8325ec4c27938bd49 (patch) | |
tree | 14cd28c1c2a0917aac4af7c99975c53cfe6dcbd2 | |
parent | 1091006c5eb15cba56785bd5b498a8d0b9546903 (diff) |
nfsd4: update nfsv4.1 implementation notes
Update documentation to reflect recent progress.
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
-rw-r--r-- | Documentation/filesystems/nfs/nfs41-server.txt | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/Documentation/filesystems/nfs/nfs41-server.txt b/Documentation/filesystems/nfs/nfs41-server.txt index 04884914a1c8..092fad92a3f0 100644 --- a/Documentation/filesystems/nfs/nfs41-server.txt +++ b/Documentation/filesystems/nfs/nfs41-server.txt | |||
@@ -39,27 +39,17 @@ interoperability problems with future clients. Known issues: | |||
39 | from a linux client are possible, but we aren't really | 39 | from a linux client are possible, but we aren't really |
40 | conformant with the spec (for example, we don't use kerberos | 40 | conformant with the spec (for example, we don't use kerberos |
41 | on the backchannel correctly). | 41 | on the backchannel correctly). |
42 | - no trunking support: no clients currently take advantage of | ||
43 | trunking, but this is a mandatory feature, and its use is | ||
44 | recommended to clients in a number of places. (E.g. to ensure | ||
45 | timely renewal in case an existing connection's retry timeouts | ||
46 | have gotten too long; see section 8.3 of the RFC.) | ||
47 | Therefore, lack of this feature may cause future clients to | ||
48 | fail. | ||
49 | - Incomplete backchannel support: incomplete backchannel gss | 42 | - Incomplete backchannel support: incomplete backchannel gss |
50 | support and no support for BACKCHANNEL_CTL mean that | 43 | support and no support for BACKCHANNEL_CTL mean that |
51 | callbacks (hence delegations and layouts) may not be | 44 | callbacks (hence delegations and layouts) may not be |
52 | available and clients confused by the incomplete | 45 | available and clients confused by the incomplete |
53 | implementation may fail. | 46 | implementation may fail. |
54 | - Server reboot recovery is unsupported; if the server reboots, | ||
55 | clients may fail. | ||
56 | - We do not support SSV, which provides security for shared | 47 | - We do not support SSV, which provides security for shared |
57 | client-server state (thus preventing unauthorized tampering | 48 | client-server state (thus preventing unauthorized tampering |
58 | with locks and opens, for example). It is mandatory for | 49 | with locks and opens, for example). It is mandatory for |
59 | servers to support this, though no clients use it yet. | 50 | servers to support this, though no clients use it yet. |
60 | - Mandatory operations which we do not support, such as | 51 | - Mandatory operations which we do not support, such as |
61 | DESTROY_CLIENTID, FREE_STATEID, SECINFO_NO_NAME, and | 52 | DESTROY_CLIENTID, are not currently used by clients, but will be |
62 | TEST_STATEID, are not currently used by clients, but will be | ||
63 | (and the spec recommends their uses in common cases), and | 53 | (and the spec recommends their uses in common cases), and |
64 | clients should not be expected to know how to recover from the | 54 | clients should not be expected to know how to recover from the |
65 | case where they are not supported. This will eventually cause | 55 | case where they are not supported. This will eventually cause |
@@ -69,8 +59,9 @@ In addition, some limitations are inherited from the current NFSv4 | |||
69 | implementation: | 59 | implementation: |
70 | 60 | ||
71 | - Incomplete delegation enforcement: if a file is renamed or | 61 | - Incomplete delegation enforcement: if a file is renamed or |
72 | unlinked, a client holding a delegation may continue to | 62 | unlinked by a local process, a client holding a delegation may |
73 | indefinitely allow opens of the file under the old name. | 63 | continue to indefinitely allow opens of the file under the old |
64 | name. | ||
74 | 65 | ||
75 | The table below, taken from the NFSv4.1 document, lists | 66 | The table below, taken from the NFSv4.1 document, lists |
76 | the operations that are mandatory to implement (REQ), optional | 67 | the operations that are mandatory to implement (REQ), optional |
@@ -99,7 +90,7 @@ Operations | |||
99 | +----------------------+------------+--------------+----------------+ | 90 | +----------------------+------------+--------------+----------------+ |
100 | | ACCESS | REQ | | Section 18.1 | | 91 | | ACCESS | REQ | | Section 18.1 | |
101 | NS | BACKCHANNEL_CTL | REQ | | Section 18.33 | | 92 | NS | BACKCHANNEL_CTL | REQ | | Section 18.33 | |
102 | NS | BIND_CONN_TO_SESSION | REQ | | Section 18.34 | | 93 | I | BIND_CONN_TO_SESSION | REQ | | Section 18.34 | |
103 | | CLOSE | REQ | | Section 18.2 | | 94 | | CLOSE | REQ | | Section 18.2 | |
104 | | COMMIT | REQ | | Section 18.3 | | 95 | | COMMIT | REQ | | Section 18.3 | |
105 | | CREATE | REQ | | Section 18.4 | | 96 | | CREATE | REQ | | Section 18.4 | |
@@ -111,7 +102,7 @@ NS*| DELEGPURGE | OPT | FDELG (REQ) | Section 18.5 | | |||
111 | NS | DESTROY_CLIENTID | REQ | | Section 18.50 | | 102 | NS | DESTROY_CLIENTID | REQ | | Section 18.50 | |
112 | I | DESTROY_SESSION | REQ | | Section 18.37 | | 103 | I | DESTROY_SESSION | REQ | | Section 18.37 | |
113 | I | EXCHANGE_ID | REQ | | Section 18.35 | | 104 | I | EXCHANGE_ID | REQ | | Section 18.35 | |
114 | NS | FREE_STATEID | REQ | | Section 18.38 | | 105 | I | FREE_STATEID | REQ | | Section 18.38 | |
115 | | GETATTR | REQ | | Section 18.7 | | 106 | | GETATTR | REQ | | Section 18.7 | |
116 | P | GETDEVICEINFO | OPT | pNFS (REQ) | Section 18.40 | | 107 | P | GETDEVICEINFO | OPT | pNFS (REQ) | Section 18.40 | |
117 | P | GETDEVICELIST | OPT | pNFS (OPT) | Section 18.41 | | 108 | P | GETDEVICELIST | OPT | pNFS (OPT) | Section 18.41 | |
@@ -145,14 +136,14 @@ NS*| OPENATTR | OPT | | Section 18.17 | | |||
145 | | RESTOREFH | REQ | | Section 18.27 | | 136 | | RESTOREFH | REQ | | Section 18.27 | |
146 | | SAVEFH | REQ | | Section 18.28 | | 137 | | SAVEFH | REQ | | Section 18.28 | |
147 | | SECINFO | REQ | | Section 18.29 | | 138 | | SECINFO | REQ | | Section 18.29 | |
148 | NS | SECINFO_NO_NAME | REC | pNFS files | Section 18.45, | | 139 | I | SECINFO_NO_NAME | REC | pNFS files | Section 18.45, | |
149 | | | | layout (REQ) | Section 13.12 | | 140 | | | | layout (REQ) | Section 13.12 | |
150 | I | SEQUENCE | REQ | | Section 18.46 | | 141 | I | SEQUENCE | REQ | | Section 18.46 | |
151 | | SETATTR | REQ | | Section 18.30 | | 142 | | SETATTR | REQ | | Section 18.30 | |
152 | | SETCLIENTID | MNI | | N/A | | 143 | | SETCLIENTID | MNI | | N/A | |
153 | | SETCLIENTID_CONFIRM | MNI | | N/A | | 144 | | SETCLIENTID_CONFIRM | MNI | | N/A | |
154 | NS | SET_SSV | REQ | | Section 18.47 | | 145 | NS | SET_SSV | REQ | | Section 18.47 | |
155 | NS | TEST_STATEID | REQ | | Section 18.48 | | 146 | I | TEST_STATEID | REQ | | Section 18.48 | |
156 | | VERIFY | REQ | | Section 18.31 | | 147 | | VERIFY | REQ | | Section 18.31 | |
157 | NS*| WANT_DELEGATION | OPT | FDELG (OPT) | Section 18.49 | | 148 | NS*| WANT_DELEGATION | OPT | FDELG (OPT) | Section 18.49 | |
158 | | WRITE | REQ | | Section 18.32 | | 149 | | WRITE | REQ | | Section 18.32 | |
@@ -206,12 +197,6 @@ CREATE_SESSION: | |||
206 | SEQUENCE: | 197 | SEQUENCE: |
207 | * no support for dynamic slot table renegotiation (optional) | 198 | * no support for dynamic slot table renegotiation (optional) |
208 | 199 | ||
209 | nfsv4.1 COMPOUND rules: | ||
210 | The following cases aren't supported yet: | ||
211 | * Enforcing of NFS4ERR_NOT_ONLY_OP for: BIND_CONN_TO_SESSION, CREATE_SESSION, | ||
212 | DESTROY_CLIENTID, DESTROY_SESSION, EXCHANGE_ID. | ||
213 | * DESTROY_SESSION MUST be the final operation in the COMPOUND request. | ||
214 | |||
215 | Nonstandard compound limitations: | 200 | Nonstandard compound limitations: |
216 | * No support for a sessions fore channel RPC compound that requires both a | 201 | * No support for a sessions fore channel RPC compound that requires both a |
217 | ca_maxrequestsize request and a ca_maxresponsesize reply, so we may | 202 | ca_maxrequestsize request and a ca_maxresponsesize reply, so we may |
@@ -219,3 +204,5 @@ Nonstandard compound limitations: | |||
219 | negotiation. | 204 | negotiation. |
220 | * No more than one IO operation (read, write, readdir) allowed per | 205 | * No more than one IO operation (read, write, readdir) allowed per |
221 | compound. | 206 | compound. |
207 | |||
208 | See also http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues. | ||