From patchwork Fri Jan 28 03:25:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Koba Ko X-Patchwork-Id: 1585438 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=ILQ7LopR; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JlND26Gpbz9t3b for ; Fri, 28 Jan 2022 14:26:42 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1nDHuD-0001EB-Qf; Fri, 28 Jan 2022 03:26:33 +0000 Received: from smtp-relay-internal-0.internal ([10.131.114.225] helo=smtp-relay-internal-0.canonical.com) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1nDHu7-00014I-Kc for kernel-team@lists.ubuntu.com; Fri, 28 Jan 2022 03:26:27 +0000 Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-0.canonical.com (Postfix) with ESMTPS id 7E2A73F197 for ; Fri, 28 Jan 2022 03:26:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1643340386; bh=HpUul00Z4Av7FBzlAXVq4sAN9diVivNfvWrIKyd9+yM=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ILQ7LopRuCkyYtURm8MCSu906URwR4fqkOaBt5TgTpaDtuU3qzGGTV0FIbUgScoGl plGclv8JCk9gxAdNLN1gLRB3bC6mYEtpi14lSOnvJZ6fnybFXHj1j5zn3EGDN0kRK4 1k6Dvst3ExpYWEI6eAsMd9Fa6wrNf1r1Ih+gwOA5+QUTRn5ITlOmvkc/3EoQQapcAz 9ldq+JHJ7oxmAoQ7WRXcNSBgFtMfK+41BRwf8EnjUtzToyppGsPVRKWqO4P+7k+DZk ipbNs0b777ML+ykb9p1xmboUhuPZDZpqP0nocdrnBzlTZKBrYDH+tiGiXlAb1BLPTa VmpIHoyfWlL9g== Received: by mail-pf1-f198.google.com with SMTP id o194-20020a62cdcb000000b004c9d2b4bfd8so2730642pfg.7 for ; Thu, 27 Jan 2022 19:26:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=HpUul00Z4Av7FBzlAXVq4sAN9diVivNfvWrIKyd9+yM=; b=K5hXEtBOyrKEPoQ9oITKwCTvJHSDhBNRXPI5fdwkA4j8Rb2KoNSMk2bEUBBpT7N2Rq 4rqTV4p/QhMnvd3ROVgU03xuEUze8S32h9AMyeKktzvaeGUtVMIWbTGE9uEghEnejUqC ban1VG5x8HA8VU2mxrtpdtDLhGI5LWXggztMg043Omq1JooDcH/x09lpMSgXOdG8pSjq NxTVwcrfM2BsKzXv8fB6R7fw6hz/f7DV6FzdwtThkdr4P1BgcjX/xPPWhW/KoatlFm72 OVv6Gsq/fEJLsZaWVmzLt+eht15MqAFGAvOvr0qOqVephbXX3TOLf27LqcEcZN2NJTqU vmog== X-Gm-Message-State: AOAM532rIkLBXsvZ609ns5juPk5ZNhh7WDLzhHPo02lgtZRsdq2a4J1a lq3wdCBf14XWzsVjN/jem6qNK+nljKLqo7Nwxn7ZOBGdxiVIygQHRXSE8dulvEF8L6EoW8fS1yZ Rf7cz+qzMQQGNY8pMsjECxKLkX04+nkzu7HHTxQuI9w== X-Received: by 2002:a17:90a:b018:: with SMTP id x24mr7489817pjq.91.1643340384933; Thu, 27 Jan 2022 19:26:24 -0800 (PST) X-Google-Smtp-Source: ABdhPJzEkWtYlJGjwaWz9qyPVd9e5ssSphR9LR/WzXMVWNNSnNVkXFjhJNf6mZCjyqQIyapapuXcog== X-Received: by 2002:a17:90a:b018:: with SMTP id x24mr7489796pjq.91.1643340384622; Thu, 27 Jan 2022 19:26:24 -0800 (PST) Received: from canonical.com (211-75-139-218.hinet-ip.hinet.net. [211.75.139.218]) by smtp.gmail.com with ESMTPSA id d22sm413727pfl.71.2022.01.27.19.26.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Jan 2022 19:26:24 -0800 (PST) From: Koba Ko To: kernel-team@lists.ubuntu.com Subject: [PATCH 06/23][SRU][OEM-5.14] block: remove the bd_bdi in struct block_device Date: Fri, 28 Jan 2022 11:25:53 +0800 Message-Id: <20220128032610.392273-7-koba.ko@canonical.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220128032610.392273-1-koba.ko@canonical.com> References: <20220128032610.392273-1-koba.ko@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Christoph Hellwig BugLink: https://bugs.launchpad.net/bugs/1958850 Just retrieve the bdi from the disk. Signed-off-by: Christoph Hellwig Reviewed-by: Jan Kara Reviewed-by: Johannes Thumshirn Link: https://lore.kernel.org/r/20210809141744.1203023-6-hch@lst.de Signed-off-by: Jens Axboe (cherry picked from commit a11d7fc2d05fb509cd9e33d4093507d6eda3ad53) Signed-off-by: Koba Ko --- block/ioctl.c | 7 ++++--- fs/block_dev.c | 13 +------------ fs/nilfs2/super.c | 2 +- fs/super.c | 2 +- fs/xfs/xfs_buf.c | 2 +- include/linux/backing-dev.h | 2 +- include/linux/blk_types.h | 1 - 7 files changed, 9 insertions(+), 20 deletions(-) diff --git a/block/ioctl.c b/block/ioctl.c index 24beec9ca9c95..ec611530649d9 100644 --- a/block/ioctl.c +++ b/block/ioctl.c @@ -504,7 +504,7 @@ static int blkdev_common_ioctl(struct block_device *bdev, fmode_t mode, case BLKFRASET: if(!capable(CAP_SYS_ADMIN)) return -EACCES; - bdev->bd_bdi->ra_pages = (arg * 512) / PAGE_SIZE; + bdev->bd_disk->bdi->ra_pages = (arg * 512) / PAGE_SIZE; return 0; case BLKRRPART: return blkdev_reread_part(bdev, mode); @@ -554,7 +554,8 @@ int blkdev_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd, case BLKFRAGET: if (!argp) return -EINVAL; - return put_long(argp, (bdev->bd_bdi->ra_pages*PAGE_SIZE) / 512); + return put_long(argp, + (bdev->bd_disk->bdi->ra_pages * PAGE_SIZE) / 512); case BLKGETSIZE: size = i_size_read(bdev->bd_inode); if ((size >> 9) > ~0UL) @@ -626,7 +627,7 @@ long compat_blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg) if (!argp) return -EINVAL; return compat_put_long(argp, - (bdev->bd_bdi->ra_pages * PAGE_SIZE) / 512); + (bdev->bd_disk->bdi->ra_pages * PAGE_SIZE) / 512); case BLKGETSIZE: size = i_size_read(bdev->bd_inode); if ((size >> 9) > ~0UL) diff --git a/fs/block_dev.c b/fs/block_dev.c index d2e917bc1cacb..97e18f5e9cb38 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -801,7 +801,6 @@ static struct inode *bdev_alloc_inode(struct super_block *sb) if (!ei) return NULL; memset(&ei->bdev, 0, sizeof(ei->bdev)); - ei->bdev.bd_bdi = &noop_backing_dev_info; return &ei->vfs_inode; } @@ -826,16 +825,11 @@ static void init_once(void *data) static void bdev_evict_inode(struct inode *inode) { - struct block_device *bdev = &BDEV_I(inode)->bdev; truncate_inode_pages_final(&inode->i_data); invalidate_inode_buffers(inode); /* is it needed here? */ clear_inode(inode); /* Detach inode from wb early as bdi_put() may free bdi->wb */ inode_detach_wb(inode); - if (bdev->bd_bdi != &noop_backing_dev_info) { - bdi_put(bdev->bd_bdi); - bdev->bd_bdi = &noop_backing_dev_info; - } } static const struct super_operations bdev_sops = { @@ -1260,11 +1254,8 @@ static int blkdev_get_whole(struct block_device *bdev, fmode_t mode) } } - if (!bdev->bd_openers) { + if (!bdev->bd_openers) set_init_blocksize(bdev); - if (bdev->bd_bdi == &noop_backing_dev_info) - bdev->bd_bdi = bdi_get(disk->bdi); - } if (test_bit(GD_NEED_PART_SCAN, &disk->state)) bdev_disk_changed(disk, false); bdev->bd_openers++; @@ -1299,8 +1290,6 @@ static int blkdev_get_part(struct block_device *part, fmode_t mode) disk->open_partitions++; set_init_blocksize(part); - if (part->bd_bdi == &noop_backing_dev_info) - part->bd_bdi = bdi_get(disk->bdi); done: part->bd_openers++; return 0; diff --git a/fs/nilfs2/super.c b/fs/nilfs2/super.c index 4abd928b0bc83..f6b2d280aab5a 100644 --- a/fs/nilfs2/super.c +++ b/fs/nilfs2/super.c @@ -1053,7 +1053,7 @@ nilfs_fill_super(struct super_block *sb, void *data, int silent) sb->s_time_gran = 1; sb->s_max_links = NILFS_LINK_MAX; - sb->s_bdi = bdi_get(sb->s_bdev->bd_bdi); + sb->s_bdi = bdi_get(sb->s_bdev->bd_disk->bdi); err = load_nilfs(nilfs, sb); if (err) diff --git a/fs/super.c b/fs/super.c index 91b7f156735bb..bcef3a6f4c4b5 100644 --- a/fs/super.c +++ b/fs/super.c @@ -1203,7 +1203,7 @@ static int set_bdev_super(struct super_block *s, void *data) { s->s_bdev = data; s->s_dev = s->s_bdev->bd_dev; - s->s_bdi = bdi_get(s->s_bdev->bd_bdi); + s->s_bdi = bdi_get(s->s_bdev->bd_disk->bdi); if (blk_queue_stable_writes(s->s_bdev->bd_disk->queue)) s->s_iflags |= SB_I_STABLE_WRITES; diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c index 8ff42b3585e0f..3ab73567a0f5b 100644 --- a/fs/xfs/xfs_buf.c +++ b/fs/xfs/xfs_buf.c @@ -844,7 +844,7 @@ xfs_buf_readahead_map( { struct xfs_buf *bp; - if (bdi_read_congested(target->bt_bdev->bd_bdi)) + if (bdi_read_congested(target->bt_bdev->bd_disk->bdi)) return; xfs_buf_read_map(target, map, nmaps, diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index 44df4fcef65c1..29530859d9ffa 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h @@ -143,7 +143,7 @@ static inline struct backing_dev_info *inode_to_bdi(struct inode *inode) sb = inode->i_sb; #ifdef CONFIG_BLOCK if (sb_is_blkdev_sb(sb)) - return I_BDEV(inode)->bd_bdi; + return I_BDEV(inode)->bd_disk->bdi; #endif return sb->s_bdi; } diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h index 290f9061b29ac..a6c015cedaf77 100644 --- a/include/linux/blk_types.h +++ b/include/linux/blk_types.h @@ -41,7 +41,6 @@ struct block_device { u8 bd_partno; spinlock_t bd_size_lock; /* for bd_inode->i_size updates */ struct gendisk * bd_disk; - struct backing_dev_info *bd_bdi; /* The counter of freeze processes */ int bd_fsfreeze_count;