Cheng Lin
2deeead49c
nfs_common: need lock during iterate through the list
[ Upstream commit 4a9d81caf841cd2c0ae36abec9c2963bf21d0284 ]
If the elem is deleted during be iterated on it, the iteration
process will fall into an endless loop.
kernel: NMI watchdog: BUG: soft lockup - CPU#4 stuck for 22s! [nfsd:17137]
PID: 17137 TASK: ffff8818d93c0000 CPU: 4 COMMAND: "nfsd"
[exception RIP: __state_in_grace+76]
RIP: ffffffffc00e817c RSP: ffff8818d3aefc98 RFLAGS: 00000246
RAX: ffff881dc0c38298 RBX: ffffffff81b03580 RCX: ffff881dc02c9f50
RDX: ffff881e3fce8500 RSI: 0000000000000001 RDI: ffffffff81b03580
RBP: ffff8818d3aefca0 R8: 0000000000000020 R9: ffff8818d3aefd40
R10: ffff88017fc03800 R11: ffff8818e83933c0 R12: ffff8818d3aefd40
R13: 0000000000000000 R14: ffff8818e8391068 R15: ffff8818fa6e4000
CS: 0010 SS: 0018
#0 [ffff8818d3aefc98] opens_in_grace at ffffffffc00e81e3 [grace]
#1 [ffff8818d3aefca8] nfs4_preprocess_stateid_op at ffffffffc02a3e6c [nfsd]
#2 [ffff8818d3aefd18] nfsd4_write at ffffffffc028ed5b [nfsd]
#3 [ffff8818d3aefd80] nfsd4_proc_compound at ffffffffc0290a0d [nfsd]
#4 [ffff8818d3aefdd0] nfsd_dispatch at ffffffffc027b800 [nfsd]
#5 [ffff8818d3aefe08] svc_process_common at ffffffffc02017f3 [sunrpc]
#6 [ffff8818d3aefe70] svc_process at ffffffffc0201ce3 [sunrpc]
#7 [ffff8818d3aefe98] nfsd at ffffffffc027b117 [nfsd]
#8 [ffff8818d3aefec8] kthread at ffffffff810b88c1
#9 [ffff8818d3aeff50] ret_from_fork at ffffffff816d1607
The troublemake elem:
crash> lock_manager ffff881dc0c38298
struct lock_manager {
list = {
next = 0xffff881dc0c38298,
prev = 0xffff881dc0c38298
},
block_opens = false
}
Fixes: c87fb4a378 ("lockd: NLM grace period shouldn't block NFSv4 opens")
Signed-off-by: Cheng Lin <cheng.lin130@zte.com.cn>
Signed-off-by: Yi Wang <wang.yi59@zte.com.cn>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-12-30 11:53:45 +01:00
..
2020-12-01 21:40:47 +01:00
2020-10-24 12:26:05 -07:00
2020-10-24 12:26:05 -07:00
2020-12-08 15:59:25 -08:00
2020-10-16 11:11:22 -07:00
2020-09-18 16:45:50 -04:00
2020-09-18 16:45:50 -04:00
2020-11-27 12:42:13 -08:00
2020-10-26 10:42:54 -07:00
2020-11-04 20:55:49 +01:00
2020-12-03 17:12:14 -06:00
2020-05-05 09:22:21 -06:00
2020-10-16 11:11:19 -07:00
2020-09-18 16:45:50 -04:00
2020-12-26 16:02:43 +01:00
2020-10-30 08:37:39 +01:00
2020-10-15 18:42:13 -07:00
2020-08-07 11:33:22 -07:00
2020-11-25 16:55:02 +01:00
2020-09-18 16:45:50 -04:00
2020-11-04 09:15:48 +08:00
2020-12-26 16:02:38 +01:00
2020-10-24 12:26:05 -07:00
2020-12-26 16:02:44 +01:00
2020-12-30 11:53:31 +01:00
2020-09-18 16:45:50 -04:00
2020-06-03 16:27:18 -07:00
2020-12-30 11:53:08 +01:00
2020-12-01 00:21:10 +01:00
2020-10-29 17:22:59 -05:00
2020-10-29 17:22:59 -05:00
2020-03-29 23:23:00 +02:00
2020-09-18 16:45:50 -04:00
2020-08-12 10:57:56 -07:00
2020-11-04 08:52:46 -08:00
2020-10-29 17:22:59 -05:00
2020-11-19 22:38:29 -05:00
2020-08-23 17:36:59 -05:00
2020-09-21 08:59:26 -07:00
2020-07-27 23:15:48 +02:00
2020-12-30 11:53:30 +01:00
2020-09-18 16:45:50 -04:00
2020-12-30 11:53:31 +01:00
2020-12-30 11:53:45 +01:00
2020-12-30 11:53:44 +01:00
2020-10-24 12:26:05 -07:00
2020-06-14 01:57:21 +09:00
2020-11-09 15:03:08 +01:00
2020-10-24 12:26:05 -07:00
2020-11-14 11:26:04 -08:00
2020-09-22 23:39:45 -04:00
2020-08-04 15:01:58 -04:00
2020-10-06 15:38:15 +02:00
2020-12-11 14:02:14 -08:00
2020-08-23 17:36:59 -05:00
2020-09-18 16:45:50 -04:00
2020-09-18 16:45:50 -04:00
2020-12-26 16:02:45 +01:00
2020-10-16 11:11:22 -07:00
2020-10-01 11:15:31 +02:00
2020-10-24 12:26:05 -07:00
2020-10-24 12:26:05 -07:00
2020-10-02 12:02:30 +02:00
2020-09-18 16:45:50 -04:00
2020-12-26 16:02:44 +01:00
2020-10-24 12:26:05 -07:00
2020-10-24 12:26:05 -07:00
2020-09-10 14:03:31 -07:00
2020-10-15 15:11:56 -07:00
2020-07-21 16:02:41 -07:00
2020-11-19 15:17:50 -08:00
2020-12-10 15:14:19 +09:00
2020-11-10 16:53:07 -08:00
2020-06-03 23:16:55 -04:00
2020-05-07 16:55:47 -05:00
2020-10-16 11:11:21 -07:00
2020-10-29 17:22:59 -05:00
2020-06-04 19:18:29 -07:00
2020-08-24 08:49:13 +10:00
2020-06-04 19:18:29 -07:00
2020-06-04 19:18:29 -07:00
2020-10-05 10:38:33 -06:00
2020-10-18 09:27:09 -07:00
2020-05-14 16:44:23 +02:00
2020-06-05 13:45:21 -07:00
2020-12-06 10:19:07 -08:00
2020-10-14 14:54:45 -07:00
2020-10-19 14:28:30 -07:00
2020-07-29 16:14:27 +02:00
2020-10-15 15:03:10 -07:00
2020-04-27 02:07:40 -04:00
2020-05-06 22:33:43 -04:00
2020-09-24 19:41:58 -04:00
2020-10-16 12:21:15 -07:00
2020-08-23 17:36:59 -05:00
2020-10-17 15:05:30 -06:00
2020-09-30 20:32:32 -06:00
2020-04-10 15:36:22 -07:00
2020-08-23 17:36:59 -05:00
2020-10-13 18:38:27 -07:00
2020-07-29 16:14:27 +02:00
2020-10-13 12:12:44 -07:00
2020-08-23 17:36:59 -05:00
2020-08-04 21:02:38 -04:00
2020-10-16 11:11:15 -07:00
2020-09-22 23:45:57 -04:00
2020-12-08 08:54:26 -07:00
2020-11-04 10:22:56 -07:00
2020-10-20 16:03:13 -06:00
2020-07-31 08:16:01 +02:00
2020-08-07 11:33:24 -07:00
2020-06-14 01:57:21 +09:00
2020-10-05 13:37:04 +02:00
2020-11-22 10:48:22 -08:00
2020-08-23 17:36:59 -05:00
2020-10-23 11:33:41 -07:00
2020-05-14 16:44:24 +02:00
2020-06-02 10:59:07 -07:00
2020-10-24 12:26:05 -07:00
2020-10-24 12:26:05 -07:00
2020-05-13 11:41:22 +02:00
2020-08-12 10:58:01 -07:00
2020-10-11 11:11:35 -07:00
2020-04-27 10:37:14 -04:00
2020-06-08 11:04:19 -07:00
2020-08-27 16:06:47 -04:00
2020-10-23 11:33:41 -07:00
2020-07-31 08:16:00 +02:00
2020-10-15 09:48:49 -07:00
2020-10-29 17:22:59 -05:00
2020-11-15 22:12:53 -05:00
2020-08-23 17:36:59 -05:00
2020-10-24 12:40:18 -07:00
2020-09-26 22:55:05 -04:00
2020-08-27 16:06:47 -04:00
2020-11-10 16:53:11 -08:00
2020-06-09 15:40:50 -07:00
2020-10-16 11:11:22 -07:00
2020-07-31 08:16:01 +02:00
2020-10-13 18:38:27 -07:00