fuser does not work on Linux for zvols opened by QEMU
Zvol or ZFS volume is a ZFS dataset that represents a block device. When this block device is opened by QEMU, fuser fails to detect it.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 447.1G 0 disk
|-sda1 8:1 0 2G 0 part
`-sda2 8:2 0 445.1G 0 part
sdb 8:16 1 14.5G 0 disk
|-sdb1 8:17 1 120K 0 part
|-sdb2 8:18 1 2.8M 0 part
|-sdb3 8:19 1 1.5G 0 part
`-sdb4 8:20 1 300K 0 part
zd0 230:0 0 50G 0 disk
nvme0n1 259:0 0 476.9G 0 disk
|-nvme0n1p1 259:1 0 1M 0 part
|-nvme0n1p2 259:2 0 512M 0 part
|-nvme0n1p3 259:3 0 460.4G 0 part
`-nvme0n1p4 259:4 0 16G 0 part
`-nvme0n1p4 253:0 0 16G 0 crypt [SWAP]
root@truenas[/]# file -s /dev/zd0
/dev/zd0: DOS/MBR boot sector
root@truenas[/]# fuser -vam /dev/zd0
USER PID ACCESS COMMAND
/dev/zd0:
Not sure if it's intended to be this way or this is an issue because we do see zvol in proc filesystem or by using lsof command:
root@truenas[/]# ps -A | grep "qemu"
134288 ? 00:07:31 qemu-system-x86
root@truenas[/]# ls -l /proc/134288/fd | grep "/dev/zd0"
lrwx------ 1 libvirt-qemu libvirt-qemu 64 Mar 17 10:54 17 -> /dev/zd0
root@truenas[/]# lsof -p 134288 | grep "/dev/zd0"
qemu-syst 134288 libvirt-qemu 17u BLK 230,0 0t0 16 /dev/zd0