mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-02-22 06:54:21 +03:00
![]() 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 |
||
---|---|---|
.. | ||
ia32 | ||
acl.h | ||
atomic.h | ||
byteorder.h | ||
callb.h | ||
callo.h | ||
cmn_err.h | ||
condvar.h | ||
cred.h | ||
ctype.h | ||
debug.h | ||
disp.h | ||
dkio.h | ||
errno.h | ||
fcntl.h | ||
file.h | ||
inttypes.h | ||
isa_defs.h | ||
kmem_cache.h | ||
kmem.h | ||
kstat.h | ||
list.h | ||
misc.h | ||
mod_os.h | ||
mutex.h | ||
param.h | ||
proc.h | ||
processor.h | ||
procfs_list.h | ||
random.h | ||
rwlock.h | ||
shrinker.h | ||
sid.h | ||
signal.h | ||
simd.h | ||
stat.h | ||
string.h | ||
sunddi.h | ||
sysmacros.h | ||
systeminfo.h | ||
taskq.h | ||
thread.h | ||
time.h | ||
timer.h | ||
trace_spl.h | ||
trace_taskq.h | ||
trace.h | ||
tsd.h | ||
types32.h | ||
types.h | ||
uio.h | ||
user.h | ||
vfs.h | ||
vmem.h | ||
vmsystm.h | ||
vnode.h | ||
wait.h | ||
wmsum.h | ||
zmod.h | ||
zone.h |