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 > > Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx> > Cc: Jens Axboe <axboe@xxxxxxxxx> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Signed-off-by: Yuanhan Liu <yuanhan.liu@xxxxxxxxxxxxxxx> > --- > 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 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html