[PATCH] nvme: honour O_NONBLOCK during resetting
Hannes Reinecke
hare at suse.de
Thu Nov 11 02:59:53 PST 2021
When opening a controller device node we should honour the O_NONBLOCK
flag to allow the device to be openend even if it's in state 'resetting'
or 'connecting'. This allows user-space applications to use a call to 'open'
to figure out if the controller is present, even if it's currently
undergoing a reset.
Signed-off-by: Hannes Reinecke <hare at suse.de>
---
drivers/nvme/host/core.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 74980a1cf89e..67cde3eaf5b0 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -3136,6 +3136,11 @@ static int nvme_dev_open(struct inode *inode, struct file *file)
switch (ctrl->state) {
case NVME_CTRL_LIVE:
break;
+ case NVME_CTRL_RESETTING:
+ case NVME_CTRL_CONNECTING:
+ if (file->f_flags & O_NONBLOCK)
+ break;
+ fallthrough;
default:
return -EWOULDBLOCK;
}
--
2.29.2
More information about the Linux-nvme
mailing list