Patch "nvmet-passthru: clear EUID/NGUID/UUID while using loop target" has been added to the 6.11-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    nvmet-passthru: clear EUID/NGUID/UUID while using loop target

to the 6.11-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     nvmet-passthru-clear-euid-nguid-uuid-while-using-loo.patch
and it can be found in the queue-6.11 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 0064828d15d7ae7256ea2814164f2bfef6cfafb8
Author: Nilay Shroff <nilay@xxxxxxxxxxxxx>
Date:   Sat Sep 21 12:35:33 2024 +0530

    nvmet-passthru: clear EUID/NGUID/UUID while using loop target
    
    [ Upstream commit e38dad438fc08162e20c600ae899e9e60688f72e ]
    
    When nvme passthru is configured using loop target, the clear_ids
    attribute is, by default, set to true. This attribute would ensure that
    EUID/NGUID/UUID is cleared for the loop passthru target.
    
    The newer NVMe disk supporting the NVMe spec 1.3 or higher, typically,
    implements the support for "Namespace Identification Descriptor list"
    command. This command when issued from host returns EUID/NGUID/UUID
    assigned to the inquired namespace. Not clearing these values, while
    using nvme passthru using loop target, would result in NVMe host driver
    rejecting the namespace. This check was implemented in the commit
    2079f41ec6ff ("nvme: check that EUI/GUID/UUID are globally unique").
    
    The fix implemented in this commit ensure that when host issues ns-id
    descriptor list command, the EUID/NGUID/UUID are cleared by passthru
    target. In fact, the function nvmet_passthru_override_id_descs() which
    clears those unique ids already exits, so we just need to ensure that
    ns-id descriptor list command falls through the corretc code path. And
    while we're at it, we also combines the three passthru admin command
    cases together which shares the same code.
    
    Reviewed-by: Chaitanya Kulkarni <kch@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Nilay Shroff <nilay@xxxxxxxxxxxxx>
    Signed-off-by: Keith Busch <kbusch@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/nvme/target/passthru.c b/drivers/nvme/target/passthru.c
index 24d0e2418d2e6..0f9b280c438d9 100644
--- a/drivers/nvme/target/passthru.c
+++ b/drivers/nvme/target/passthru.c
@@ -535,10 +535,6 @@ u16 nvmet_parse_passthru_admin_cmd(struct nvmet_req *req)
 		break;
 	case nvme_admin_identify:
 		switch (req->cmd->identify.cns) {
-		case NVME_ID_CNS_CTRL:
-			req->execute = nvmet_passthru_execute_cmd;
-			req->p.use_workqueue = true;
-			return NVME_SC_SUCCESS;
 		case NVME_ID_CNS_CS_CTRL:
 			switch (req->cmd->identify.csi) {
 			case NVME_CSI_ZNS:
@@ -547,7 +543,9 @@ u16 nvmet_parse_passthru_admin_cmd(struct nvmet_req *req)
 				return NVME_SC_SUCCESS;
 			}
 			return NVME_SC_INVALID_OPCODE | NVME_STATUS_DNR;
+		case NVME_ID_CNS_CTRL:
 		case NVME_ID_CNS_NS:
+		case NVME_ID_CNS_NS_DESC_LIST:
 			req->execute = nvmet_passthru_execute_cmd;
 			req->p.use_workqueue = true;
 			return NVME_SC_SUCCESS;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux