attach-ns doesn't work correctly in SR-IOV, cannot attach NS to VF if it is attached to a PF Description of problem: We can't attach namespace to a VF (Secondary controller) unless it is not attached to a primary controller first Lately in the commit https://github.com/qemu/qemu/commit/6ccca4b6bb9f994cc04e71004e1767a3476d2b23 the file qemu/hw/nvme/ctrl.c got changed -\> in function "nvme_ns_attachment" -\> line 6819 (At the time I'm writing the bug) which is the condation in attach ns to check if the namespace is attached "`if (nvme_ns(n, nsid)) {`" This change will always result in checking the namespace attach to the PF even if we are trying to attach it to the VF. Steps to reproduce: 1. Enable a VF: ``` echo 1 > /sys/bus/pci/devices/0000:01:00.0/reset sleep 1 echo 2 > /sys/bus/pci/devices/0000:01:00.0/sriov_numvfs sleep 1 nvme virt-mgmt /dev/nvme0 -c 1 -r 1 -a 8 -n 1 nvme virt-mgmt /dev/nvme0 -c 1 -r 0 -a 8 -n 2 nvme virt-mgmt /dev/nvme0 -c 1 -a 9 sleep 1 ``` 2. attach namespace 1 to the PF (e.g. `vme attach-ns /dev/nvme0 -n1 -c0` ) 3. try to attach it using the nvme_cli command from the PF (e.g. `nvme attach-ns /dev/nvme0 -n1 -c1`)