Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp277073ybi; Wed, 29 May 2019 21:12:53 -0700 (PDT) X-Google-Smtp-Source: APXvYqwwDq97UFYBM8ZvrRgTadAVyXdbyebV4vtnl+gxZQa5JFZhLIrAaSlxQ7eyZtIEh+tiGNaN X-Received: by 2002:a62:585:: with SMTP id 127mr1615216pff.231.1559189572877; Wed, 29 May 2019 21:12:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559189572; cv=none; d=google.com; s=arc-20160816; b=stMItJk02noq7YMP0IDiyzBN26BSElfamVJ729L3YwdiF1C3BvvrKvZ3Yz9+qhH7zm yxhN6+h5JUGN4LAhmlKAEdFGiKvLWP0Rhihfqu378sRnvR/VvJ2MDlK5SnB174SfxbAv KC9YG0alG3XtiXXllmKwd33+SFy6ywKcazT1YEB3k0mmED7O79qxA2LT9jqNbSsrKnhL pCCmX+yjzKfqCb1aeeo7cAFqaGR34b3gjWctA9UBkb9ruvKCGCqycdH7oNpe5DebsJ+y AIrva6LF6K7JOjWnSXruf5iQSqRoj1s3B9HtHUdcthstxH/GUdQnxFZnWwlRnTbTk7vt vY5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=okP46cdGDYrTcaSxq1QMGykevjaxXiVdA61Bv1orsy0=; b=kBr6L0rDZbN8UE9BxbxASxiKWqt2JlopaJ9Xj/5gYssmGgqoGZyc8952K7cPOBAhpM hxi1/2mqEk2v0GUl2HJ7gxR3UvkKIubhYviCEYO/0uBcxtYAj6NN5CAcQgh5OZy5N5c1 h4X0cd82gQqAvYxQ/ToWICSlRxHoU1zqEfQBGxddRnqrthQBtKg45bM1UXM6Mgl4frX/ Eb7iPPdoTG8GbbAMoYaqMHqGG9AMyIRhMx8i9xiaq+fdUe2jMu2oO9up5532F4Jw1Kjh mCHEDbJCjuF+kO6Esg/A3B/MDQ8/WCAQUXWZLWAe75hEJdidIKzguk1BqZ0vv4ktRavJ 8vHQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=p4JoyhJm; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g3si1609246pjs.57.2019.05.29.21.12.36; Wed, 29 May 2019 21:12:52 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=p4JoyhJm; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727215AbfE3ELb (ORCPT + 99 others); Thu, 30 May 2019 00:11:31 -0400 Received: from mail.kernel.org ([198.145.29.99]:44146 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730824AbfE3DQt (ORCPT ); Wed, 29 May 2019 23:16:49 -0400 Received: from localhost (ip67-88-213-2.z213-88-67.customer.algx.net [67.88.213.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 165C02463B; Thu, 30 May 2019 03:16:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1559186209; bh=2UazqRjuzoOXDHyZZIdyQrYIVDecx+AtbXkWHmBiQsA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=p4JoyhJmbjBt3HJKGeN4SgTYHpIrDmqZaLU5V1T2zPHkDX4h4tjpcE0aGW3TVM4T+ Dk5wXVSSHad0dOQaPkKK+t8R7fBVJri2RZANfw42oODGNWGAfXp921l3Ya1rIaCwQB 6DM/0qgg+uizOn0gDvchabsgALbVu9bBI6kt2fAQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sagi Grimberg , Keith Busch , Christoph Hellwig , Sasha Levin Subject: [PATCH 4.19 099/276] nvme: set 0 capacity if namespace block size exceeds PAGE_SIZE Date: Wed, 29 May 2019 20:04:17 -0700 Message-Id: <20190530030532.308764459@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190530030523.133519668@linuxfoundation.org> References: <20190530030523.133519668@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Upstream commit 01fa017484ad98fccdeaab32db0077c574b6bd6f ] If our target exposed a namespace with a block size that is greater than PAGE_SIZE, set 0 capacity on the namespace as we do not support it. This issue encountered when the nvmet namespace was backed by a tempfile. Signed-off-by: Sagi Grimberg Reviewed-by: Keith Busch Signed-off-by: Christoph Hellwig Signed-off-by: Sasha Levin --- drivers/nvme/host/core.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 2cdb3032ca0fc..abfb46378cc13 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -1480,6 +1480,10 @@ static void nvme_update_disk_info(struct gendisk *disk, sector_t capacity = le64_to_cpup(&id->nsze) << (ns->lba_shift - 9); unsigned short bs = 1 << ns->lba_shift; + if (ns->lba_shift > PAGE_SHIFT) { + /* unsupported block size, set capacity to 0 later */ + bs = (1 << 9); + } blk_mq_freeze_queue(disk->queue); blk_integrity_unregister(disk); @@ -1490,7 +1494,8 @@ static void nvme_update_disk_info(struct gendisk *disk, if (ns->ms && !ns->ext && (ns->ctrl->ops->flags & NVME_F_METADATA_SUPPORTED)) nvme_init_integrity(disk, ns->ms, ns->pi_type); - if (ns->ms && !nvme_ns_has_pi(ns) && !blk_get_integrity(disk)) + if ((ns->ms && !nvme_ns_has_pi(ns) && !blk_get_integrity(disk)) || + ns->lba_shift > PAGE_SHIFT) capacity = 0; set_capacity(disk, capacity); -- 2.20.1