diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-26 01:49:19 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-26 01:49:19 -0400 |
commit | 2dad3206db5c3832cde1f58650027fea3ff7adf3 (patch) | |
tree | 96314a554afdab5904a939793156d4ae23ec11c1 /Documentation/filesystems | |
parent | 84635d68be4b846ba984a89f386524153330c597 (diff) | |
parent | 0c12eaffdf09466f36a9ffe970dda8f4aeb6efc0 (diff) |
Merge branch 'for-3.1' of git://linux-nfs.org/~bfields/linux
* 'for-3.1' of git://linux-nfs.org/~bfields/linux:
nfsd: don't break lease on CLAIM_DELEGATE_CUR
locks: rename lock-manager ops
nfsd4: update nfsv4.1 implementation notes
nfsd: turn on reply cache for NFSv4
nfsd4: call nfsd4_release_compoundargs from pc_release
nfsd41: Deny new lock before RECLAIM_COMPLETE done
fs: locks: remove init_once
nfsd41: check the size of request
nfsd41: error out when client sets maxreq_sz or maxresp_sz too small
nfsd4: fix file leak on open_downgrade
nfsd4: remember to put RW access on stateid destruction
NFSD: Added TEST_STATEID operation
NFSD: added FREE_STATEID operation
svcrpc: fix list-corrupting race on nfsd shutdown
rpc: allow autoloading of gss mechanisms
svcauth_unix.c: quiet sparse noise
svcsock.c: include sunrpc.h to quiet sparse noise
nfsd: Remove deprecated nfsctl system call and related code.
NFSD: allow OP_DESTROY_CLIENTID to be only op in COMPOUND
Fix up trivial conflicts in Documentation/feature-removal-schedule.txt
Diffstat (limited to 'Documentation/filesystems')
-rw-r--r-- | Documentation/filesystems/Locking | 24 | ||||
-rw-r--r-- | Documentation/filesystems/nfs/nfs41-server.txt | 33 |
2 files changed, 22 insertions, 35 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index 7e4699146fe1..653380793a6c 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
@@ -338,21 +338,21 @@ fl_release_private: maybe no | |||
338 | 338 | ||
339 | ----------------------- lock_manager_operations --------------------------- | 339 | ----------------------- lock_manager_operations --------------------------- |
340 | prototypes: | 340 | prototypes: |
341 | int (*fl_compare_owner)(struct file_lock *, struct file_lock *); | 341 | int (*lm_compare_owner)(struct file_lock *, struct file_lock *); |
342 | void (*fl_notify)(struct file_lock *); /* unblock callback */ | 342 | void (*lm_notify)(struct file_lock *); /* unblock callback */ |
343 | int (*fl_grant)(struct file_lock *, struct file_lock *, int); | 343 | int (*lm_grant)(struct file_lock *, struct file_lock *, int); |
344 | void (*fl_release_private)(struct file_lock *); | 344 | void (*lm_release_private)(struct file_lock *); |
345 | void (*fl_break)(struct file_lock *); /* break_lease callback */ | 345 | void (*lm_break)(struct file_lock *); /* break_lease callback */ |
346 | int (*fl_change)(struct file_lock **, int); | 346 | int (*lm_change)(struct file_lock **, int); |
347 | 347 | ||
348 | locking rules: | 348 | locking rules: |
349 | file_lock_lock may block | 349 | file_lock_lock may block |
350 | fl_compare_owner: yes no | 350 | lm_compare_owner: yes no |
351 | fl_notify: yes no | 351 | lm_notify: yes no |
352 | fl_grant: no no | 352 | lm_grant: no no |
353 | fl_release_private: maybe no | 353 | lm_release_private: maybe no |
354 | fl_break: yes no | 354 | lm_break: yes no |
355 | fl_change yes no | 355 | lm_change yes no |
356 | 356 | ||
357 | --------------------------- buffer_head ----------------------------------- | 357 | --------------------------- buffer_head ----------------------------------- |
358 | prototypes: | 358 | prototypes: |
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. | ||