From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============1100719836842761377==" MIME-Version: 1.0 From: Valeriy Glushkov Subject: [SPDK] An issue with Persistent Reservation Replace Reservation Date: Mon, 24 May 2021 14:40:56 +0300 Message-ID: List-ID: To: spdk@lists.01.org --===============1100719836842761377== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi All, From the NVMe v1.4a Specification 8.8.2 Registering: "A host may replace its reservation key without regard to its registration = status or current reservation key value by setting the Ignore Existing Key = (IEKEY) bit to '1' in the Reservation Register command." But the recent SPDK code in lib/nvmf/subsystem.c that controls the = Reservation replacing is: case SPDK_NVME_RESERVE_REPLACE_KEY: if (!reg || (!iekey && reg->rkey !=3D key.crkey)) { SPDK_ERRLOG("No registrant or current key doesn't match " "with existing registrant key\n"); status =3D SPDK_NVME_SC_RESERVATION_CONFLICT; goto exit; } The code rejects replacements when a host is not registered at the time, = but set IEKEY=3D1. I think it an issue in the SPDK NVMf implementation of Persistent = Reservation that should be fixed, isn't it? -- = Best regards, Valeriy Glushkov www.starwind.com --===============1100719836842761377==--