J. Bruce Fields
3d02fa29de
nfsd4: fix open downgrade, again
...
Yet another open-management regression:
- nfs4_file_downgrade() doesn't remove the BOTH access bit on
downgrade, so the server's idea of the stateid's access gets
out of sync with the client's. If we want to keep an O_RDWR
open in this case, we should do that in the file_put_access
logic rather than here.
- We forgot to convert v4 access to an open mode here.
This logic has proven too hard to get right. In the future we may
consider:
- reexamining the lock/openowner relationship (locks probably
don't really need to take their own references here).
- adding open upgrade/downgrade support to the vfs.
- removing the atomic operations. They're redundant as long as
this is all under some other lock.
Also, maybe some kind of additional static checking would help catch
O_/NFS4_SHARE_ACCESS confusion.
Cc: stable@kernel.org
Signed-off-by: J. Bruce Fields <bfields@redhat.com >
2011-09-20 14:43:39 -04:00
..
2011-08-01 02:10:06 -04:00
2011-07-20 20:47:59 -04:00
2011-07-20 20:48:03 -04:00
2011-05-30 01:50:53 -04:00
2011-05-28 01:02:50 -04:00
2011-08-02 21:14:05 -10:00
2011-07-20 01:44:21 -04:00
2011-07-26 13:38:50 -07:00
2011-08-05 15:03:09 +00:00
2011-07-20 20:47:59 -04:00
2011-05-28 01:02:54 -04:00
2011-07-17 23:22:02 -04:00
2011-05-19 16:55:28 +09:30
2011-07-25 22:49:19 -07:00
2011-07-28 23:48:26 -05:00
2011-07-20 01:44:26 -04:00
2011-08-06 22:56:03 -07:00
2011-08-01 13:48:31 -10:00
2011-08-01 02:10:06 -04:00
2011-08-03 14:57:11 -04:00
2011-07-20 20:47:59 -04:00
2011-05-10 10:16:21 +02:00
2011-07-21 10:59:16 -07:00
2011-07-25 22:49:19 -07:00
2011-08-01 13:48:31 -10:00
2011-07-20 20:47:59 -04:00
2011-07-22 19:02:39 -07:00
2011-07-20 20:47:59 -04:00
2011-07-20 20:47:59 -04:00
2011-07-27 22:21:58 -04:00
2011-07-25 21:00:19 -07:00
2011-07-22 19:42:12 -04:00
2011-06-28 00:06:41 +02:00
2011-07-10 22:05:08 -04:00
2011-08-01 02:10:06 -04:00
2011-08-01 13:48:31 -10:00
2011-09-14 08:21:48 -04:00
2011-07-20 20:47:59 -04:00
2011-07-20 20:47:53 -04:00
2011-07-20 20:47:59 -04:00
2011-08-27 14:21:26 -04:00
2011-09-20 14:43:39 -04:00
2011-07-20 20:47:59 -04:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-08-01 02:10:06 -04:00
2011-07-26 13:05:28 -04:00
2011-07-01 16:17:13 +02:00
2011-08-06 11:51:33 -07:00
2011-07-22 16:14:39 -07:00
2011-05-25 08:39:26 -07:00
2011-08-01 02:10:06 -04:00
2011-06-27 18:00:12 -07:00
2011-07-25 22:50:35 -07:00
2011-07-20 01:43:24 -04:00
2011-05-28 01:02:50 -04:00
2011-07-22 19:02:39 -07:00
2011-07-20 01:43:07 -04:00
2011-07-20 01:44:26 -04:00
2011-08-01 13:48:31 -10:00
2011-07-26 12:57:09 -04:00
2011-07-20 20:47:47 -04:00
2011-07-20 20:47:59 -04:00
2011-07-20 01:43:10 -04:00
2011-07-20 01:43:10 -04:00
2011-05-03 10:10:51 +10:00
2011-07-20 01:43:10 -04:00
2011-05-28 14:44:46 +02:00
2011-08-01 21:33:47 -04:00
2011-06-16 11:44:46 -04:00
2011-07-01 22:32:26 +02:00
2011-08-31 11:50:11 -04:00
2011-08-06 22:52:40 -07:00
2011-05-31 16:33:35 +02:00
2011-07-26 16:49:47 -07:00
2011-05-25 08:39:26 -07:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:44 -07:00
2011-07-26 16:49:47 -07:00
2011-07-31 22:52:08 +08:00
2011-08-01 02:10:06 -04:00
2011-08-06 22:53:23 -07:00
2011-07-20 01:44:38 -04:00
2011-08-03 14:25:25 -10:00
2011-07-22 19:42:11 -04:00
2011-08-19 13:25:35 -04:00
2011-07-15 18:58:42 -04:00
2011-05-25 08:39:26 -07:00
2011-05-26 10:01:43 -06:00
2011-08-07 13:42:25 -07:00
2011-07-24 10:08:32 -04:00
2011-07-26 15:07:43 -04:00
2011-07-26 12:57:09 -04:00
2011-08-01 02:10:32 -04:00
2011-07-26 12:57:09 -04:00
2011-07-25 20:57:11 -07:00
2011-08-03 14:25:24 -10:00
2011-08-06 22:53:23 -07:00
2011-07-25 10:33:36 -07:00
2011-07-20 20:47:59 -04:00
2011-06-14 11:46:14 +02:00
2011-05-28 12:02:09 -04:00