J. Bruce Fields
52c571676d
nfsd: allow fh_want_write to be called twice
...
[ Upstream commit 0b8f62625d ]
A fuzzer recently triggered lockdep warnings about potential sb_writers
deadlocks caused by fh_want_write().
Looks like we aren't careful to pair each fh_want_write() with an
fh_drop_write().
It's not normally a problem since fh_put() will call fh_drop_write() for
us. And was OK for NFSv3 where we'd do one operation that might call
fh_want_write(), and then put the filehandle.
But an NFSv4 protocol fuzzer can do weird things like call unlink twice
in a compound, and then we get into trouble.
I'm a little worried about this approach of just leaving everything to
fh_put(). But I think there are probably a lot of
fh_want_write()/fh_drop_write() imbalances so for now I think we need it
to be more forgiving.
Signed-off-by: J. Bruce Fields <bfields@redhat.com >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2023-05-15 13:47:55 +09:00
..
2023-05-15 12:23:10 +09:00
2016-10-10 20:16:43 -07:00
2018-05-30 07:50:16 +02:00
2018-03-02 13:27:23 -08:00
2023-05-15 11:50:43 +09:00
2016-10-15 12:09:13 -07:00
2023-05-15 09:57:32 +09:00
2023-05-15 13:40:12 +09:00
2023-05-15 10:31:46 +09:00
2023-05-15 12:52:47 +09:00
2023-05-15 13:40:26 +09:00
2017-11-24 08:33:42 +01:00
2023-05-15 13:47:38 +09:00
2023-05-15 09:23:12 +09:00
2023-05-12 16:41:53 +09:00
2023-05-15 12:38:42 +09:00
2023-05-15 12:05:59 +09:00
2023-05-15 11:22:15 +09:00
2018-05-30 13:19:56 +02:00
2016-10-10 20:16:43 -07:00
2016-05-20 17:58:30 -07:00
2020-02-04 13:48:58 +09:00
2023-05-15 09:51:17 +09:00
2023-05-15 10:31:15 +09:00
2023-05-15 12:06:08 +09:00
2023-05-15 12:58:58 +09:00
2023-05-15 08:58:11 +09:00
2023-05-15 13:47:02 +09:00
2016-06-13 10:20:39 +02:00
2023-05-15 10:31:45 +09:00
2023-05-15 13:47:53 +09:00
2023-05-15 12:59:41 +09:00
2023-05-15 10:31:48 +09:00
2023-05-15 10:31:49 +09:00
2016-10-10 20:16:43 -07:00
2016-10-10 20:16:43 -07:00
2023-05-15 12:59:23 +09:00
2017-11-30 08:39:04 +00:00
2023-05-15 12:51:37 +09:00
2023-05-15 12:38:40 +09:00
2023-05-12 16:46:26 +09:00
2023-05-15 10:05:42 +09:00
2023-05-15 09:22:56 +09:00
2018-03-02 13:27:29 -08:00
2016-10-10 20:16:43 -07:00
2023-05-15 11:49:44 +09:00
2023-05-15 12:52:39 +09:00
2018-02-03 17:05:38 +01:00
2023-05-15 13:47:55 +09:00
2018-05-30 07:50:16 +02:00
2023-05-15 11:16:44 +09:00
2016-10-30 13:09:42 -04:00
2023-05-15 12:51:29 +09:00
2016-10-10 20:16:43 -07:00
2016-09-27 21:06:21 -04:00
2023-05-15 09:12:19 +09:00
2018-04-13 19:48:12 +02:00
2023-05-15 12:35:44 +09:00
2023-05-15 11:05:08 +09:00
2016-05-09 11:41:14 -04:00
2016-05-09 11:41:14 -04:00
2023-05-12 17:24:57 +09:00
2016-10-10 20:16:43 -07:00
2023-05-15 09:51:08 +09:00
2017-06-17 06:41:56 +02:00
2020-12-17 17:32:09 +09:00
2023-05-12 17:14:36 +09:00
2023-05-12 17:16:51 +09:00
2023-05-15 10:31:02 +09:00
2016-09-27 21:06:21 -04:00
2023-05-15 10:45:32 +09:00
2023-05-15 12:06:51 +09:00
2023-05-15 12:53:34 +09:00
2023-05-15 10:06:57 +09:00
2023-05-15 10:36:26 +09:00
2017-01-31 10:47:22 -08:00
2017-01-09 08:32:24 +01:00
2016-05-28 16:34:59 -07:00
2016-07-25 16:51:49 +10:00
2023-05-15 08:20:48 +09:00
2016-08-02 19:35:15 -04:00
2016-07-28 13:29:12 +10:00
2018-06-26 08:08:09 +08:00
2023-05-15 11:30:33 +09:00
2023-05-15 11:01:39 +09:00
2023-05-15 12:16:57 +09:00
2023-05-15 13:35:49 +09:00
2018-02-25 11:05:55 +01:00
2018-04-08 12:12:44 +02:00
2016-09-27 21:20:53 -04:00
2017-07-05 16:18:14 +02:00
2018-02-28 10:18:33 +01:00
2023-05-15 12:07:04 +09:00
2023-05-15 11:45:37 +09:00
2023-05-15 11:50:41 +09:00
2016-03-22 15:36:02 -07:00
2023-05-15 11:23:40 +09:00
2023-05-15 11:50:09 +09:00
2018-01-31 12:55:52 +01:00
2016-03-22 15:36:02 -07:00
2023-05-15 12:16:54 +09:00
2016-01-19 12:02:23 -05:00
2017-01-31 15:46:26 -08:00
2023-05-15 12:52:02 +09:00
2018-08-14 03:25:14 -07:00
2017-09-20 09:59:51 +02:00
2016-09-15 13:29:52 -07:00
2017-09-20 08:19:59 +02:00
2017-09-26 00:32:37 -07:00
2016-08-12 16:47:05 +01:00
2017-12-09 22:01:51 +01:00
2016-10-18 12:21:28 +02:00
2017-09-26 00:32:37 -07:00
2018-02-22 15:43:48 +01:00
2017-07-21 07:42:22 +02:00
2018-12-17 17:21:59 +08:00
2023-05-15 09:59:20 +09:00
2023-05-15 09:27:37 +09:00
2018-02-17 13:21:15 +01:00
2023-05-15 13:41:13 +09:00
2023-05-15 13:40:35 +09:00
2017-07-21 08:55:50 +02:00
2017-03-15 02:21:16 +00:00
2017-01-26 08:24:37 +01:00
2017-01-31 10:47:20 -08:00
2023-05-15 13:41:13 +09:00
2016-05-26 00:13:25 -04:00
2016-10-11 15:06:30 -07:00
2016-10-07 18:46:30 -07:00
2023-05-15 13:40:35 +09:00
2017-06-14 15:06:01 +02:00
2023-05-15 11:16:43 +09:00
2017-03-14 13:16:06 -07:00
2017-05-08 07:47:54 +02:00
2017-12-20 10:51:15 +01:00
2017-01-31 10:47:21 -08:00
2023-05-15 08:34:19 +09:00