Re: [RFC PATCH 1/2] block: embed bdevname in struct block_device
From: Yuanhan Liu <hidden>
Date: 2012-08-22 09:28:51
Also in:
lkml
On Mon, Aug 13, 2012 at 06:33:59PM +0800, Yuanhan Liu wrote:
Embed block device name in struct block_device, thus we can replace the following code: char b[BDEVNAME_SIZE]; printk(KERN_XXX "...%s..\n", bdevname(bdev, b); with a much simpler and less stack usage version: printk(KERN_XXX "...%s..\n", bdev->bd_name); This is a RFC version, which I just included one sample with this change appiled. If this patch makes sense to you, I will file more patches to apply this change.
ping... (though it's a trivial RFC patch) Thanks, Yuanhan Liu
quoted hunk ↗ jump to hunk
Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Jens Axboe <axboe@kernel.dk> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Yuanhan Liu <redacted> --- fs/block_dev.c | 2 ++ include/linux/fs.h | 3 ++- 2 files changed, 4 insertions(+), 1 deletions(-)diff --git a/fs/block_dev.c b/fs/block_dev.c index 1e51919..5e796e58 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c@@ -1213,6 +1213,8 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part) } bd_set_size(bdev, (loff_t)bdev->bd_part->nr_sects << 9); } + + disk_name(bdev->bd_disk, bdev->bd_part->partno, bdev->bd_name); } else { if (bdev->bd_contains == bdev) { ret = 0;diff --git a/include/linux/fs.h b/include/linux/fs.h index aa11047..98ea89d 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h@@ -689,6 +689,7 @@ struct address_space { */ struct request_queue; +#define BDEVNAME_SIZE 32 /* Largest string for a blockdev identifier */ struct block_device { dev_t bd_dev; /* not a kdev_t - it's a search key */ int bd_openers;@@ -724,6 +725,7 @@ struct block_device { int bd_fsfreeze_count; /* Mutex for freeze */ struct mutex bd_fsfreeze_mutex; + char bd_name[BDEVNAME_SIZE]; }; /*@@ -2323,7 +2325,6 @@ static inline void unregister_chrdev(unsigned int major, const char *name) } /* fs/block_dev.c */ -#define BDEVNAME_SIZE 32 /* Largest string for a blockdev identifier */ #define BDEVT_SIZE 10 /* Largest string for MAJ:MIN for blkdev */ #ifdef CONFIG_BLOCK-- 1.7.7.6