Uday Shankar
931c97a54c
scsi: core: Restrict legal sdev_state transitions via sysfs
...
[ Upstream commit 2331ce6126be8864b39490e705286b66e2344aac ]
Userspace can currently write to sysfs to transition sdev_state to RUNNING
or OFFLINE from any source state. This causes issues because proper
transitioning out of some states involves steps besides just changing
sdev_state, so allowing userspace to change sdev_state regardless of the
source state can result in inconsistencies; e.g. with ISCSI we can end up
with sdev_state == SDEV_RUNNING while the device queue is quiesced. Any
task attempting I/O on the device will then hang, and in more recent
kernels, iscsid will hang as well.
More detail about this bug is provided in my first attempt:
https://groups.google.com/g/open-iscsi/c/PNKca4HgPDs/m/CXaDkntOAQAJ
Link: https://lore.kernel.org/r/20220924000241.2967323-1-ushankar@purestorage.com
Signed-off-by: Uday Shankar <ushankar@purestorage.com>
Suggested-by: Mike Christie <michael.christie@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-11-10 18:15:34 +01:00
..
2021-08-11 22:25:38 -04:00
2021-07-11 10:59:53 -07:00
2021-07-11 10:59:53 -07:00
2021-06-18 23:26:33 -04:00
2021-10-04 21:54:18 -04:00
2022-08-17 14:23:45 +02:00
2022-04-13 20:59:02 +02:00
2022-02-08 18:34:11 +01:00
2022-08-17 14:23:45 +02:00
2021-11-18 19:16:52 +01:00
2022-10-26 12:35:15 +02:00
2021-09-07 19:13:42 -07:00
2022-05-25 09:57:34 +02:00
2020-03-11 23:07:59 -04:00
2022-02-01 17:27:07 +01:00
2021-06-02 01:37:04 -04:00
2022-06-09 10:23:07 +02:00
2022-04-08 14:23:33 +02:00
2022-08-17 14:23:06 +02:00
2022-06-29 09:03:19 +02:00
2022-04-20 09:34:15 +02:00
2021-08-11 22:25:43 -04:00
2022-04-13 20:59:08 +02:00
2022-10-26 12:35:15 +02:00
2022-11-10 18:15:24 +01:00
2022-09-15 11:30:00 +02:00
2022-04-13 20:59:05 +02:00
2022-09-28 11:11:48 +02:00
2022-04-20 09:34:17 +02:00
2021-08-09 23:30:25 -04:00
2022-04-20 09:34:11 +02:00
2022-10-26 12:34:26 +02:00
2022-08-17 14:23:45 +02:00
2022-11-03 23:59:12 +09:00
2021-08-11 22:25:41 -04:00
2022-08-17 14:23:51 +02:00
2021-08-24 22:56:32 -04:00
2021-08-11 22:25:42 -04:00
2022-09-15 11:30:01 +02:00
2020-03-25 11:50:48 +01:00
2022-10-26 12:35:46 +02:00
2021-05-15 18:01:34 -04:00
2021-03-18 22:18:09 -04:00
2021-01-22 21:14:08 -05:00
2021-05-31 23:59:18 -04:00
2021-01-22 21:14:07 -05:00
2021-08-11 22:25:38 -04:00
2021-05-07 00:26:34 -07:00
2021-03-29 23:33:06 -04:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2021-11-25 09:48:27 +01:00
2022-04-13 20:59:07 +02:00
2021-08-11 22:25:38 -04:00
2021-01-13 00:14:07 -05:00
2021-06-18 23:27:04 -04:00
2020-11-23 22:12:09 -05:00
2021-03-15 22:29:00 -04:00
2021-01-22 21:14:08 -05:00
2021-08-01 13:27:46 -04:00
2021-05-14 22:19:04 -04:00
2021-07-28 22:24:25 -04:00
2021-06-02 23:09:39 -04:00
2022-06-09 10:23:22 +02:00
2021-01-22 21:14:10 -05:00
2021-08-11 22:25:38 -04:00
2020-03-11 23:07:59 -04:00
2021-05-31 22:48:21 -04:00
2019-12-19 22:08:51 -05:00
2021-01-26 07:42:27 +01:00
2021-05-31 22:48:24 -04:00
2020-07-08 01:12:44 -04:00
2021-06-02 01:37:04 -04:00
2021-01-26 07:42:27 +01:00
2020-06-09 09:39:13 -07:00
2021-11-18 19:15:51 +01:00
2021-04-01 22:52:40 -04:00
2021-08-11 22:25:39 -04:00
2020-09-02 22:49:06 -04:00
2021-05-31 22:48:21 -04:00
2021-06-18 23:01:03 -04:00
2021-03-18 23:35:55 -04:00
2021-01-22 21:14:10 -05:00
2022-06-22 14:21:57 +02:00
2021-06-29 16:46:08 -04:00
2021-08-11 22:25:39 -04:00
2021-05-07 00:26:34 -07:00
2020-06-02 21:23:47 -04:00
2022-10-26 12:35:16 +02:00
2022-10-26 12:35:16 +02:00
2021-04-13 00:20:48 -04:00
2021-07-28 22:24:27 -04:00
2021-08-30 10:18:25 +02:00
2022-04-27 14:38:56 +02:00
2022-10-26 12:35:15 +02:00
2021-03-24 22:16:12 -04:00
2020-10-02 21:52:53 -04:00
2020-12-07 20:24:09 -05:00
2021-08-23 23:07:05 -04:00
2022-06-09 10:22:34 +02:00
2021-05-31 22:48:23 -04:00
2020-06-09 09:39:13 -07:00
2021-08-11 22:25:40 -04:00
2020-03-11 23:07:56 -04:00
2022-06-14 18:36:22 +02:00
2020-01-02 21:57:44 -05:00
2022-02-16 12:56:14 +01:00
2020-01-02 21:57:44 -05:00
2021-09-13 22:15:47 -04:00
2021-01-22 21:14:12 -05:00
2021-08-11 22:25:38 -04:00
2020-12-07 20:24:09 -05:00
2021-05-31 22:48:23 -04:00
2022-06-22 14:21:57 +02:00
2021-05-21 16:59:33 -04:00
2021-06-18 23:01:03 -04:00
2021-05-31 22:48:21 -04:00
2021-08-23 23:06:56 -04:00
2020-01-15 23:09:11 -05:00
2021-05-31 22:48:23 -04:00
2021-08-11 22:25:41 -04:00
2021-08-01 13:21:40 -04:00
2021-07-28 22:24:27 -04:00
2022-06-29 09:03:21 +02:00
2022-01-27 11:05:22 +01:00
2021-07-21 23:49:02 -04:00
2021-03-24 23:03:43 -04:00
2022-04-08 14:22:54 +02:00
2022-08-03 12:03:47 +02:00
2021-11-25 09:48:26 +01:00
2021-08-11 22:25:37 -04:00
2019-12-19 22:08:54 -05:00
2022-01-27 11:04:15 +01:00
2021-07-30 22:22:36 -04:00
2020-02-04 03:05:26 +00:00
2022-04-13 20:59:15 +02:00
2022-11-10 18:15:34 +01:00
2020-03-16 22:08:36 -04:00
2022-04-08 14:22:54 +02:00
2022-08-17 14:23:44 +02:00
2021-05-31 22:48:20 -04:00
2021-08-11 22:25:37 -04:00
2021-04-05 23:14:53 -04:00
2022-01-27 11:04:10 +01:00
2021-05-06 19:24:11 -07:00
2021-09-21 23:52:55 -04:00
2022-11-03 23:59:20 +09:00
2020-10-14 15:15:35 -07:00
2020-09-15 20:28:06 -04:00
2021-09-28 22:42:06 -04:00
2022-08-17 14:22:55 +02:00
2020-09-25 06:20:44 +02:00
2021-03-18 22:52:29 -04:00
2021-05-07 00:26:34 -07:00
2022-04-27 14:38:58 +02:00
2022-01-27 11:05:03 +01:00
2022-04-13 20:59:15 +02:00
2020-02-24 15:01:57 -05:00
2022-03-16 14:23:46 +01:00
2021-08-23 12:54:30 -06:00
2022-10-15 07:59:01 +02:00
2022-08-31 17:16:51 +02:00
2021-08-11 22:25:41 -04:00
2021-04-13 00:20:48 -04:00
2020-10-02 21:52:55 -04:00
2021-09-28 22:47:28 -04:00
2022-01-05 12:42:39 +01:00
2022-06-22 14:21:57 +02:00
2021-05-31 22:48:23 -04:00
2021-08-16 13:33:24 -04:00
2022-03-11 12:22:36 +01:00
2021-08-30 10:18:25 +02:00
2022-04-13 20:59:15 +02:00
2020-06-09 09:39:13 -07:00