From patchwork Mon Nov 6 15:49:30 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Dryomov X-Patchwork-Id: 10043741 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 38882603FF for ; Mon, 6 Nov 2017 15:50:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1E48529D9A for ; Mon, 6 Nov 2017 15:50:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 12BF829E0C; Mon, 6 Nov 2017 15:50:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B31A529D9A for ; Mon, 6 Nov 2017 15:49:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753392AbdKFPt5 (ORCPT ); Mon, 6 Nov 2017 10:49:57 -0500 Received: from mail-wm0-f68.google.com ([74.125.82.68]:47284 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752961AbdKFPtz (ORCPT ); Mon, 6 Nov 2017 10:49:55 -0500 Received: by mail-wm0-f68.google.com with SMTP id r196so14741801wmf.2 for ; Mon, 06 Nov 2017 07:49:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=+hKyFnUt+zJF8NZeCDn6JWn04MwCt6mWR5w2+uVKU6w=; b=SJ0qCgOhHb1zSCPCfRqbp8PdwSB0a/nVWo66S+82+xCUAusIIDQX0avODHMODvOKeE Yp/ulgFSPduNEEHLrf5lDDupDATujYw29GucjTezXBYAYa+22HXoBnYeXbYITHGi0UcM GSIHtd1m6/1uS42AikBIOtFfAvcNIg9az9YpYZ15bwhj16kRs6ulZBPyWFSm0KwzJDUb tzzGKr6LxfZHYU/QjpQDb/FGmWRvLCc/u3HROQ4jkCYM+UzElo2aQp/0EwyOE/jaQqo+ SbWKb8qdifJp+Av4r+xOcki55NJy2p+KZfdhrH64Fq9RjJv1OYV8QmoU7XtJbvL2pMhk gyCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=+hKyFnUt+zJF8NZeCDn6JWn04MwCt6mWR5w2+uVKU6w=; b=Nh10Xl6sx6+L+kdeksw6ynbGZ7fJFTr6C21LW4HlpCS/GW1h9OTYNBqDninXsHExyO gcEbeQWFfBf4smr1ECALM9nD5zv99ov0TcnJo2HK/by2qSrdjALijFsSgl2y8ZEANkpY QA497l5htmKXuzABhLlGBeqxXmaB3r1WfgnCsQ6tDDH5Lme+vnzlhRDkxF+f/+yMfA37 ipn97XiHl9EjKX7mCH8P3U29PQxXb1Q6hnQTuDWasb4EGdPdhWvhjkPNWsyBGtN1qCqj JUAFYQV6Sv2yrAepT2h67y2FDiUksdcXG8kfIZqUbpXp4Kr4v0Q/ch4nNOaWSTRzv0QH +rYA== X-Gm-Message-State: AJaThX4KorPQXAFjl0ayZ58aWuk7Nh4uebn7RwYWXUJrzcQFSUIIz1iB W7hqgd0Tq8/AXg/fomnVo9iyuWAT X-Google-Smtp-Source: ABhQp+StkAOELn9Vsq7N9AWLIpXIKxJM5MCYWcRyKT1xxKcYQkIiy0CjbAedGGfJtNb4qDO79QXP4Q== X-Received: by 10.28.95.70 with SMTP id t67mr6119579wmb.86.1509983393960; Mon, 06 Nov 2017 07:49:53 -0800 (PST) Received: from orange.brq.redhat.com. (nat-pool-brq-t.redhat.com. [213.175.37.10]) by smtp.gmail.com with ESMTPSA id t66sm3349198wme.33.2017.11.06.07.49.52 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Nov 2017 07:49:53 -0800 (PST) From: Ilya Dryomov To: ceph-devel@vger.kernel.org Subject: [PATCH 2/2] rbd: get rid of rbd_mapping::read_only Date: Mon, 6 Nov 2017 16:49:30 +0100 Message-Id: <1509983370-1853-2-git-send-email-idryomov@gmail.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1509983370-1853-1-git-send-email-idryomov@gmail.com> References: <1509983370-1853-1-git-send-email-idryomov@gmail.com> Sender: ceph-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: ceph-devel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP It is redundant -- rw/ro state is stored in hd_struct and managed by the block layer. Signed-off-by: Ilya Dryomov --- drivers/block/rbd.c | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index 832b235b2dc3..8a39c399e4ae 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c @@ -348,7 +348,6 @@ struct rbd_client_id { struct rbd_mapping { u64 size; u64 features; - bool read_only; }; /* @@ -608,9 +607,6 @@ static int rbd_open(struct block_device *bdev, fmode_t mode) struct rbd_device *rbd_dev = bdev->bd_disk->private_data; bool removing = false; - if ((mode & FMODE_WRITE) && rbd_dev->mapping.read_only) - return -EROFS; - spin_lock_irq(&rbd_dev->lock); if (test_bit(RBD_DEV_FLAG_REMOVING, &rbd_dev->flags)) removing = true; @@ -4028,15 +4024,8 @@ static void rbd_queue_workfn(struct work_struct *work) goto err_rq; } - /* Only reads are allowed to a read-only device */ - - if (op_type != OBJ_OP_READ) { - if (rbd_dev->mapping.read_only) { - result = -EROFS; - goto err_rq; - } - rbd_assert(rbd_dev->spec->snap_id == CEPH_NOSNAP); - } + rbd_assert(op_type == OBJ_OP_READ || + rbd_dev->spec->snap_id == CEPH_NOSNAP); /* * Quit early if the mapped snapshot no longer exists. It's @@ -5972,7 +5961,7 @@ static int rbd_dev_device_setup(struct rbd_device *rbd_dev) goto err_out_disk; set_capacity(rbd_dev->disk, rbd_dev->mapping.size / SECTOR_SIZE); - set_disk_ro(rbd_dev->disk, rbd_dev->mapping.read_only); + set_disk_ro(rbd_dev->disk, rbd_dev->opts->read_only); ret = dev_set_name(&rbd_dev->dev, "%d", rbd_dev->dev_id); if (ret) @@ -6123,7 +6112,6 @@ static ssize_t do_rbd_add(struct bus_type *bus, struct rbd_options *rbd_opts = NULL; struct rbd_spec *spec = NULL; struct rbd_client *rbdc; - bool read_only; int rc; if (!try_module_get(THIS_MODULE)) @@ -6172,11 +6160,8 @@ static ssize_t do_rbd_add(struct bus_type *bus, } /* If we are mapping a snapshot it must be marked read-only */ - - read_only = rbd_dev->opts->read_only; if (rbd_dev->spec->snap_id != CEPH_NOSNAP) - read_only = true; - rbd_dev->mapping.read_only = read_only; + rbd_dev->opts->read_only = true; rc = rbd_dev_device_setup(rbd_dev); if (rc)