@@ -43,6 +43,11 @@ static inline struct bdev_inode *BDEV_I(struct inode *inode)
4343 return container_of (inode , struct bdev_inode , vfs_inode );
4444}
4545
46+ static inline struct inode * BD_INODE (struct block_device * bdev )
47+ {
48+ return & container_of (bdev , struct bdev_inode , bdev )-> vfs_inode ;
49+ }
50+
4651struct block_device * I_BDEV (struct inode * inode )
4752{
4853 return & BDEV_I (inode )-> bdev ;
@@ -57,7 +62,7 @@ EXPORT_SYMBOL(file_bdev);
5762
5863static void bdev_write_inode (struct block_device * bdev )
5964{
60- struct inode * inode = bdev -> bd_inode ;
65+ struct inode * inode = BD_INODE ( bdev ) ;
6166 int ret ;
6267
6368 spin_lock (& inode -> i_lock );
@@ -134,14 +139,14 @@ int truncate_bdev_range(struct block_device *bdev, blk_mode_t mode,
134139static void set_init_blocksize (struct block_device * bdev )
135140{
136141 unsigned int bsize = bdev_logical_block_size (bdev );
137- loff_t size = i_size_read (bdev -> bd_inode );
142+ loff_t size = i_size_read (BD_INODE ( bdev ) );
138143
139144 while (bsize < PAGE_SIZE ) {
140145 if (size & bsize )
141146 break ;
142147 bsize <<= 1 ;
143148 }
144- bdev -> bd_inode -> i_blkbits = blksize_bits (bsize );
149+ BD_INODE ( bdev ) -> i_blkbits = blksize_bits (bsize );
145150}
146151
147152int set_blocksize (struct file * file , int size )
@@ -437,29 +442,30 @@ struct block_device *bdev_alloc(struct gendisk *disk, u8 partno)
437442void bdev_set_nr_sectors (struct block_device * bdev , sector_t sectors )
438443{
439444 spin_lock (& bdev -> bd_size_lock );
440- i_size_write (bdev -> bd_inode , (loff_t )sectors << SECTOR_SHIFT );
445+ i_size_write (BD_INODE ( bdev ) , (loff_t )sectors << SECTOR_SHIFT );
441446 bdev -> bd_nr_sectors = sectors ;
442447 spin_unlock (& bdev -> bd_size_lock );
443448}
444449
445450void bdev_add (struct block_device * bdev , dev_t dev )
446451{
452+ struct inode * inode = BD_INODE (bdev );
447453 if (bdev_stable_writes (bdev ))
448454 mapping_set_stable_writes (bdev -> bd_mapping );
449455 bdev -> bd_dev = dev ;
450- bdev -> bd_inode -> i_rdev = dev ;
451- bdev -> bd_inode -> i_ino = dev ;
452- insert_inode_hash (bdev -> bd_inode );
456+ inode -> i_rdev = dev ;
457+ inode -> i_ino = dev ;
458+ insert_inode_hash (inode );
453459}
454460
455461void bdev_unhash (struct block_device * bdev )
456462{
457- remove_inode_hash (bdev -> bd_inode );
463+ remove_inode_hash (BD_INODE ( bdev ) );
458464}
459465
460466void bdev_drop (struct block_device * bdev )
461467{
462- iput (bdev -> bd_inode );
468+ iput (BD_INODE ( bdev ) );
463469}
464470
465471long nr_blockdev_pages (void )
@@ -987,13 +993,13 @@ struct file *bdev_file_open_by_dev(dev_t dev, blk_mode_t mode, void *holder,
987993 return ERR_PTR (- ENXIO );
988994
989995 flags = blk_to_file_flags (mode );
990- bdev_file = alloc_file_pseudo_noaccount (bdev -> bd_inode ,
996+ bdev_file = alloc_file_pseudo_noaccount (BD_INODE ( bdev ) ,
991997 blockdev_mnt , "" , flags | O_LARGEFILE , & def_blk_fops );
992998 if (IS_ERR (bdev_file )) {
993999 blkdev_put_no_open (bdev );
9941000 return bdev_file ;
9951001 }
996- ihold (bdev -> bd_inode );
1002+ ihold (BD_INODE ( bdev ) );
9971003
9981004 ret = bdev_open (bdev , mode , holder , hops , bdev_file );
9991005 if (ret ) {
@@ -1270,13 +1276,13 @@ void bdev_statx_dioalign(struct inode *inode, struct kstat *stat)
12701276
12711277bool disk_live (struct gendisk * disk )
12721278{
1273- return !inode_unhashed (disk -> part0 -> bd_inode );
1279+ return !inode_unhashed (BD_INODE ( disk -> part0 ) );
12741280}
12751281EXPORT_SYMBOL_GPL (disk_live );
12761282
12771283unsigned int block_size (struct block_device * bdev )
12781284{
1279- return 1 << bdev -> bd_inode -> i_blkbits ;
1285+ return 1 << BD_INODE ( bdev ) -> i_blkbits ;
12801286}
12811287EXPORT_SYMBOL_GPL (block_size );
12821288
0 commit comments