On 2019-07-25 12:27 p.m., Greg Kroah-Hartman wrote: >>> Why do you have a "string" within the kernel and are not using the >>> normal open() call from userspace on the character device node on the >>> filesystem in your namespace/mount/whatever? >> >> NVMe-OF is configured using configfs. The target is specified by the >> user writing a path to a configfs attribute. This is the way it works >> today but with blkdev_get_by_path()[1]. For the passthru code, we need >> to get a nvme_ctrl instead of a block_device, but the principal is the same. > > Why isn't a fd being passed in there instead of a random string? I wouldn't know the answer to this but I assume because once we decided to use configfs, there was no way for the user to pass the kernel an fd. > Seems odd, but oh well, that ship sailed a long time ago for block > devices I guess. Yup. > So what do you actually _do_ with that char device once you have it? We lookup the struct nvme_ctrl and use it to submit passed-through NVMe commands directly to the controller. Logan