From: Damien Le Moal <dlemoal@kernel.org>
To: Jens Axboe <axboe@kernel.dk>, linux-block@vger.kernel.org
Subject: [PATCH] block: Cleanup set_capacity()/bdev_set_nr_sectors()
Date: Fri, 21 Apr 2023 13:31:01 +0900 [thread overview]
Message-ID: <20230421043101.3079-1-dlemoal@kernel.org> (raw)
The code for setting a block device capacity (bd_nr_sectors field of
struct block_device) is duplicated in set_capacity() and
bdev_set_nr_sectors(). Clean this up by turning set_capacity() into an
inline function calling bdev_set_nr_sectors() and move
bdev_set_nr_sectors() code to block/bdev.c instead of having this
function in block/partitions/core.c.
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
---
block/bdev.c | 9 +++++++++
block/genhd.c | 11 -----------
block/partitions/core.c | 8 --------
include/linux/blkdev.h | 8 +++++++-
4 files changed, 16 insertions(+), 20 deletions(-)
diff --git a/block/bdev.c b/block/bdev.c
index 850852fe4b78..6fc21f30b870 100644
--- a/block/bdev.c
+++ b/block/bdev.c
@@ -428,6 +428,15 @@ struct block_device *bdev_alloc(struct gendisk *disk, u8 partno)
return bdev;
}
+void bdev_set_nr_sectors(struct block_device *bdev, sector_t sectors)
+{
+ spin_lock(&bdev->bd_size_lock);
+ i_size_write(bdev->bd_inode, (loff_t)sectors << SECTOR_SHIFT);
+ bdev->bd_nr_sectors = sectors;
+ spin_unlock(&bdev->bd_size_lock);
+}
+EXPORT_SYMBOL_GPL(bdev_set_nr_sectors);
+
void bdev_add(struct block_device *bdev, dev_t dev)
{
bdev->bd_dev = dev;
diff --git a/block/genhd.c b/block/genhd.c
index cadcb472dfc3..7d44d25f2a54 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -55,17 +55,6 @@ static atomic64_t diskseq;
#define NR_EXT_DEVT (1 << MINORBITS)
static DEFINE_IDA(ext_devt_ida);
-void set_capacity(struct gendisk *disk, sector_t sectors)
-{
- struct block_device *bdev = disk->part0;
-
- spin_lock(&bdev->bd_size_lock);
- i_size_write(bdev->bd_inode, (loff_t)sectors << SECTOR_SHIFT);
- bdev->bd_nr_sectors = sectors;
- spin_unlock(&bdev->bd_size_lock);
-}
-EXPORT_SYMBOL(set_capacity);
-
/*
* Set disk capacity and notify if the size is not currently zero and will not
* be set to zero. Returns true if a uevent was sent, otherwise false.
diff --git a/block/partitions/core.c b/block/partitions/core.c
index 7b8ef6296abd..49e0496ff23c 100644
--- a/block/partitions/core.c
+++ b/block/partitions/core.c
@@ -85,14 +85,6 @@ static int (*check_part[])(struct parsed_partitions *) = {
NULL
};
-static void bdev_set_nr_sectors(struct block_device *bdev, sector_t sectors)
-{
- spin_lock(&bdev->bd_size_lock);
- i_size_write(bdev->bd_inode, (loff_t)sectors << SECTOR_SHIFT);
- bdev->bd_nr_sectors = sectors;
- spin_unlock(&bdev->bd_size_lock);
-}
-
static struct parsed_partitions *allocate_partitions(struct gendisk *hd)
{
struct parsed_partitions *state;
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 6ede578dfbc6..ea8f95e0754c 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -770,6 +770,8 @@ static inline sector_t get_start_sect(struct block_device *bdev)
return bdev->bd_start_sect;
}
+void bdev_set_nr_sectors(struct block_device *bdev, sector_t sectors);
+
static inline sector_t bdev_nr_sectors(struct block_device *bdev)
{
return bdev->bd_nr_sectors;
@@ -780,6 +782,11 @@ static inline loff_t bdev_nr_bytes(struct block_device *bdev)
return (loff_t)bdev_nr_sectors(bdev) << SECTOR_SHIFT;
}
+static inline void set_capacity(struct gendisk *disk, sector_t sectors)
+{
+ bdev_set_nr_sectors(disk->part0, sectors);
+}
+
static inline sector_t get_capacity(struct gendisk *disk)
{
return bdev_nr_sectors(disk->part0);
@@ -820,7 +827,6 @@ void unregister_blkdev(unsigned int major, const char *name);
bool bdev_check_media_change(struct block_device *bdev);
int __invalidate_device(struct block_device *bdev, bool kill_dirty);
-void set_capacity(struct gendisk *disk, sector_t size);
#ifdef CONFIG_BLOCK_HOLDER_DEPRECATED
int bd_link_disk_holder(struct block_device *bdev, struct gendisk *disk);
--
2.40.0
next reply other threads:[~2023-04-21 4:31 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-21 4:31 Damien Le Moal [this message]
2023-04-21 7:04 ` [PATCH] block: Cleanup set_capacity()/bdev_set_nr_sectors() Chaitanya Kulkarni
2023-04-24 5:54 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230421043101.3079-1-dlemoal@kernel.org \
--to=dlemoal@kernel.org \
--cc=axboe@kernel.dk \
--cc=linux-block@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.