diff options
Diffstat (limited to 'Documentation/filesystems/nfs/nfs41-server.txt')
| -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. | ||
