if(!(ctrl->quirks & NVME_QUIRK_IGNORE_DEV_SUBNQN)) {
                nqnlen = strnlen(id->subnqn, NVMF_NQN_SIZE);
                if (nqnlen > 0 && nqnlen < NVMF_NQN_SIZE) {
-                       strlcpy(subsys->subnqn, id->subnqn, NVMF_NQN_SIZE);
+                       strscpy(subsys->subnqn, id->subnqn, NVMF_NQN_SIZE);
                        return;
                }
 
 
                goto out_unlock;
 
        kref_init(&host->ref);
-       strlcpy(host->nqn, hostnqn, NVMF_NQN_SIZE);
+       strscpy(host->nqn, hostnqn, NVMF_NQN_SIZE);
 
        list_add_tail(&host->list, &nvmf_hosts);
 out_unlock:
 
        if (req->port->inline_data_size)
                id->sgls |= cpu_to_le32(1 << 20);
 
-       strlcpy(id->subnqn, ctrl->subsys->subsysnqn, sizeof(id->subnqn));
+       strscpy(id->subnqn, ctrl->subsys->subsysnqn, sizeof(id->subnqn));
 
        /*
         * Max command capsule size is sqe + in-capsule data size.
 
 
        id->oaes = cpu_to_le32(NVMET_DISC_AEN_CFG_OPTIONAL);
 
-       strlcpy(id->subnqn, ctrl->subsys->subsysnqn, sizeof(id->subnqn));
+       strscpy(id->subnqn, ctrl->subsys->subsysnqn, sizeof(id->subnqn));
 
        status = nvmet_copy_to_sgl(req, 0, id, sizeof(*id));