Thomas Bertschinger
97a0b5be50
Add mutex_enter_interruptible() for interruptible sleeping IOCTLs
...
Many long-running ZFS ioctls lock the spa_namespace_lock, forcing
concurrent ioctls to sleep for the mutex. Previously, the only
option is to call mutex_enter() which sleeps uninterruptibly. This
is a usability issue for sysadmins, for example, if the admin runs
`zpool status` while a slow `zpool import` is ongoing, the admin's
shell will be locked in uninterruptible sleep for a long time.
This patch resolves this admin usability issue by introducing
mutex_enter_interruptible() which sleeps interruptibly while waiting
to acquire a lock. It is implemented for both Linux and FreeBSD.
The ZFS_IOC_POOL_CONFIGS ioctl, used by `zpool status`, is changed to
use this new macro so that the command can be interrupted if it is
issued during a concurrent `zpool import` (or other long-running
operation).
Reviewed-by: Tony Hutter <hutter2@llnl.gov >
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov >
Signed-off-by: Thomas Bertschinger <bertschinger@lanl.gov >
Closes #15360
2023-10-26 09:17:40 -07:00
..
2023-10-24 14:33:58 -07:00
2022-03-15 15:13:42 -07:00
2023-10-20 12:38:37 -07:00
2023-05-01 17:21:27 -07:00
2022-03-15 15:13:42 -07:00
2023-06-09 10:12:52 -07:00
2023-07-21 11:50:48 -07:00
2022-07-11 14:16:13 -07:00
2023-01-10 13:39:22 -08:00
2023-08-08 09:37:06 -07:00
2023-05-26 10:03:12 -07:00
2023-05-25 13:51:53 -07:00
2022-09-22 12:59:41 -07:00
2023-09-19 17:22:01 -07:00
2023-06-30 09:42:02 -07:00
2023-06-30 09:01:58 -07:00
2022-07-11 14:16:13 -07:00
2023-02-16 09:23:39 -08:00
2023-10-24 11:00:07 -07:00
2023-07-14 16:16:40 -07:00
2023-08-26 11:34:43 -07:00
2023-06-05 11:54:42 -07:00
2023-03-24 10:20:07 -07:00
2023-10-11 16:37:21 -07:00
2023-10-24 11:00:07 -07:00
2023-08-11 09:04:08 -07:00
2023-01-23 13:12:37 -08:00
2023-08-26 11:34:43 -07:00
2023-08-26 11:34:43 -07:00
2023-03-14 15:25:50 -07:00
2023-06-09 10:12:52 -07:00
2023-08-07 13:54:41 -07:00
2022-07-11 14:16:13 -07:00
2023-08-26 11:34:43 -07:00
2023-09-28 14:10:07 -07:00
2023-10-20 12:37:16 -07:00
2023-03-14 15:25:50 -07:00
2023-07-20 09:10:04 -07:00
2022-07-11 14:16:13 -07:00
2023-03-14 15:25:50 -07:00
2023-03-14 15:59:58 -07:00
2023-06-09 10:12:52 -07:00
2022-07-11 14:16:13 -07:00
2022-03-15 15:13:42 -07:00
2022-01-07 10:36:49 -08:00
2022-01-12 16:14:36 -08:00
2022-07-11 14:16:13 -07:00
2023-10-06 09:04:00 -07:00
2023-04-19 13:22:59 -07:00
2022-09-27 16:42:41 -07:00
2019-06-19 09:48:12 -07:00
2022-07-11 14:16:13 -07:00
2023-05-26 10:03:12 -07:00
2023-06-14 08:02:27 -07:00
2022-07-11 14:16:13 -07:00
2023-03-08 13:51:46 -08:00
2023-03-02 13:52:21 -08:00
2022-03-15 15:13:42 -07:00
2022-10-13 10:03:29 -07:00
2023-10-26 09:17:40 -07:00
2023-09-18 17:06:35 -07:00
2023-03-14 15:25:50 -07:00
2023-08-07 13:54:41 -07:00
2023-09-20 16:56:45 -07:00
2022-09-27 16:42:41 -07:00
2023-10-23 08:50:55 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2018-06-06 09:35:59 -07:00
2018-06-06 09:35:59 -07:00
2023-06-27 09:09:48 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2020-11-13 13:51:51 -08:00
2023-03-14 15:25:50 -07:00
2022-03-15 15:13:42 -07:00
2022-03-15 15:13:42 -07:00
2023-07-21 11:49:26 -07:00
2023-05-18 10:02:20 -07:00
2023-10-02 16:57:09 -07:00
2022-09-08 10:30:53 -07:00
2022-07-11 14:16:13 -07:00
2023-06-27 09:09:48 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2022-11-30 13:46:26 -08:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2022-09-06 09:43:21 -07:00
2023-01-13 10:58:58 -08:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2023-04-06 10:35:02 -07:00
2023-07-21 11:49:26 -07:00
2023-09-29 08:21:25 -07:00
2023-03-14 15:25:50 -07:00
2022-07-11 14:16:13 -07:00
2023-10-12 11:01:54 -07:00
2023-10-20 10:30:32 -07:00
2023-03-08 13:51:46 -08:00
2023-05-26 10:03:12 -07:00
2023-01-12 16:00:37 -08:00
2023-03-14 15:25:50 -07:00
2018-02-08 15:29:24 -08:00
2023-03-14 15:25:50 -07:00
2020-02-14 13:41:42 -08:00
2022-09-02 13:31:19 -07:00
2023-03-14 15:25:50 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2023-03-02 13:52:21 -08:00
2023-07-21 11:49:26 -07:00
2023-06-09 10:12:52 -07:00
2023-03-02 13:52:21 -08:00
2023-10-26 09:17:40 -07:00
2023-04-17 16:42:09 -07:00
2023-06-09 10:12:52 -07:00
2023-10-23 09:55:36 -07:00
2022-07-11 14:16:13 -07:00
2023-04-10 14:15:36 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2023-09-29 08:22:46 -07:00
2023-10-25 15:22:25 -07:00
2023-07-21 11:49:26 -07:00
2023-02-27 14:41:02 -08:00
2022-09-27 16:35:29 -07:00
2023-10-25 15:22:25 -07:00
2022-07-11 14:16:13 -07:00
2022-11-29 09:26:03 -08:00
2022-03-23 08:51:00 -07:00
2023-08-24 17:08:49 -07:00