ZiyangZhang
c732a852b4
ublk_drv: add START_USER_RECOVERY and END_USER_RECOVERY support
...
START_USER_RECOVERY and END_USER_RECOVERY are two new control commands
to support user recovery feature.
After a crash, user should send START_USER_RECOVERY, it will:
(1) check if (a)current ublk_device is UBLK_S_DEV_QUIESCED which was
set by quiesce_work and (b)chardev is released
(2) reinit all ubqs, including:
(a) put the task_struct and reset ->ubq_daemon to NULL.
(b) reset all ublk_io.
(3) reset ub->mm to NULL.
Then, user should start a new process and send FETCH_REQ on each
ubq_daemon.
Finally, user should send END_USER_RECOVERY, it will:
(1) wait for all new ubq_daemons getting ready.
(2) update ublksrv_pid
(3) unquiesce the request queue and expect incoming ublk_queue_rq()
(4) convert ub's state to UBLK_S_DEV_LIVE
Note: we can handle STOP_DEV between START_USER_RECOVERY and
END_USER_RECOVERY. This is helpful to users who cannot start new process
after sending START_USER_RECOVERY ctrl-cmd.
Signed-off-by: ZiyangZhang <ZiyangZhang@linux.alibaba.com >
Reviewed-by: Ming Lei <ming.lei@redhat.com >
Link: https://lore.kernel.org/r/20220923153919.44078-7-ZiyangZhang@linux.alibaba.com
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2022-09-23 19:09:56 -06:00
..
2022-06-27 16:16:30 +02:00
2022-08-03 16:29:08 -07:00
2022-06-28 21:26:05 +02:00
2022-08-04 12:12:54 -07:00
2022-06-28 21:26:05 +02:00
2022-06-28 21:26:05 +02:00
2022-06-28 21:26:05 +02:00
2022-08-09 19:51:05 +02:00
2022-06-28 21:26:05 +02:00
2022-04-19 13:13:47 +01:00
2022-04-19 12:20:45 +02:00
2022-08-04 11:41:28 -07:00
2022-04-29 14:38:03 -07:00
2022-05-13 10:56:10 +02:00
2022-08-11 10:31:19 -07:00
2022-06-03 20:09:27 +08:00
2022-06-28 21:26:05 +02:00
2022-08-03 16:29:08 -07:00
2022-06-07 10:20:42 -07:00
2022-06-28 21:26:05 +02:00
2022-08-03 14:54:52 -07:00
2022-05-18 00:11:18 +08:00
2022-05-15 18:31:28 -06:00
2022-04-24 07:40:13 +01:00
2022-06-28 21:26:05 +02:00
2022-03-18 14:04:30 +01:00
2022-04-22 16:12:04 -07:00
2022-06-28 21:26:05 +02:00
2022-07-28 21:56:53 -07:00
2022-08-02 19:50:47 -07:00
2022-06-28 21:26:05 +02:00
2022-06-20 18:21:25 +02:00
2022-06-03 20:09:27 +08:00
2022-07-28 18:05:24 +02:00
2022-04-15 11:41:35 -07:00
2022-06-28 21:26:05 +02:00
2022-08-05 04:17:57 -07:00
2022-08-02 19:50:47 -07:00
2022-04-04 08:55:23 +02:00
2022-06-28 21:26:05 +02:00
2022-06-28 21:26:05 +02:00
2022-06-28 21:26:05 +02:00
2022-06-10 16:40:18 +08:00
2022-08-10 13:49:50 +01:00
2022-05-04 11:06:13 +02:00
2022-03-11 08:28:05 -08:00
2022-07-21 18:10:43 +05:30
2022-06-28 21:26:05 +02:00
2022-06-28 21:26:05 +02:00
2022-03-17 16:49:57 -07:00
2022-06-27 11:37:55 +01:00
2022-06-24 11:27:59 +01:00
2022-06-28 21:26:05 +02:00
2022-06-28 21:26:05 +02:00
2022-03-11 08:28:27 -08:00
2022-06-28 21:26:05 +02:00
2022-06-28 21:26:05 +02:00
2022-06-28 21:26:05 +02:00
2022-04-17 13:13:53 -07:00
2022-07-17 07:52:46 -07:00
2022-07-24 18:41:07 -06:00
2022-02-28 13:25:48 +01:00
2022-06-28 21:26:05 +02:00
2022-06-28 21:26:05 +02:00
2022-05-31 11:36:57 +02:00
2022-06-28 21:26:05 +02:00
2022-06-28 21:26:05 +02:00
2022-06-28 21:26:05 +02:00
2022-06-03 20:09:27 +08:00
2022-07-12 16:50:44 -04:00
2022-08-04 14:59:54 -07:00
2022-05-23 13:27:59 +02:00
2022-05-25 09:51:36 -07:00
2022-07-08 10:46:53 -07:00
2022-05-10 06:30:05 -06:00
2022-08-02 12:34:03 -04:00
2022-05-01 17:45:35 +01:00
2022-06-20 21:15:04 +02:00
2022-04-24 08:27:37 +01:00
2022-06-28 21:26:05 +02:00
2022-06-28 20:45:43 -07:00
2022-06-28 21:26:05 +02:00
2022-06-30 13:14:35 +02:00
2022-06-28 21:26:05 +02:00
2022-04-13 12:46:26 +01:00
2022-02-25 18:50:12 -05:00
2022-03-13 12:59:35 -04:00
2022-07-22 14:28:33 +02:00
2022-05-20 06:17:33 -06:00
2022-02-27 10:58:04 -08:00
2022-03-10 20:14:52 -08:00
2022-07-19 15:38:04 -07:00
2022-08-02 19:50:47 -07:00
2022-08-03 16:29:08 -07:00
2022-04-22 18:50:54 +01:00
2022-03-18 09:44:19 -05:00
2022-06-28 21:26:05 +02:00
2022-05-09 14:00:07 +02:00
2022-06-28 21:26:05 +02:00
2022-03-13 11:49:53 -05:00
2022-03-23 19:58:40 +01:00
2022-06-28 21:26:05 +02:00
2022-06-28 21:26:05 +02:00
2022-05-03 14:11:58 -07:00
2022-08-22 07:52:51 -06:00
2022-08-03 16:29:08 -07:00
2022-06-28 21:26:05 +02:00
2022-07-16 08:16:01 +02:00
2022-06-27 14:41:31 +02:00
2022-06-27 14:44:20 +02:00
2022-04-07 16:47:12 +02:00
2022-07-18 11:19:17 +01:00
2022-07-11 19:48:33 -07:00
2022-06-01 16:48:05 -07:00
2022-03-31 13:04:44 -07:00
2022-06-28 21:26:05 +02:00
2022-06-16 19:58:21 -07:00
2022-06-30 13:14:35 +02:00
2022-06-28 21:26:05 +02:00
2022-06-01 15:55:25 -07:00
2022-04-26 10:17:03 +02:00
2022-04-06 13:48:02 +01:00
2022-07-06 12:56:35 +01:00
2022-06-27 16:25:41 +02:00
2022-05-25 10:08:59 -07:00
2022-09-23 19:09:56 -06:00
2022-06-28 21:26:05 +02:00
2022-05-13 07:20:11 -07:00
2022-07-15 17:36:58 +01:00
2022-05-31 12:44:20 -04:00
2022-08-11 04:26:08 -04:00
2022-07-11 09:54:37 +02:00
2022-05-16 12:39:43 -06:00
2022-08-12 09:50:34 -07:00
2022-08-11 04:31:15 -04:00
2022-07-17 10:58:06 +01:00
2022-06-28 21:26:05 +02:00
2022-08-11 04:06:40 -04:00
2022-03-28 16:52:58 -04:00
2022-05-10 07:22:28 -04:00
2022-08-11 04:26:07 -04:00
2022-08-11 04:06:40 -04:00
2022-08-16 01:40:24 -04:00
2022-08-03 16:29:08 -07:00