@@ -773,7 +773,6 @@ static void init_once(void *foo)
773
773
774
774
memset (bdev , 0 , sizeof (* bdev ));
775
775
mutex_init (& bdev -> bd_mutex );
776
- INIT_LIST_HEAD (& bdev -> bd_list );
777
776
#ifdef CONFIG_SYSFS
778
777
INIT_LIST_HEAD (& bdev -> bd_holder_disks );
779
778
#endif
@@ -789,9 +788,6 @@ static void bdev_evict_inode(struct inode *inode)
789
788
truncate_inode_pages_final (& inode -> i_data );
790
789
invalidate_inode_buffers (inode ); /* is it needed here? */
791
790
clear_inode (inode );
792
- spin_lock (& bdev_lock );
793
- list_del_init (& bdev -> bd_list );
794
- spin_unlock (& bdev_lock );
795
791
/* Detach inode from wb early as bdi_put() may free bdi->wb */
796
792
inode_detach_wb (inode );
797
793
if (bdev -> bd_bdi != & noop_backing_dev_info ) {
@@ -866,8 +862,6 @@ static int bdev_set(struct inode *inode, void *data)
866
862
return 0 ;
867
863
}
868
864
869
- static LIST_HEAD (all_bdevs );
870
-
871
865
struct block_device * bdget (dev_t dev )
872
866
{
873
867
struct block_device * bdev ;
@@ -892,9 +886,6 @@ struct block_device *bdget(dev_t dev)
892
886
inode -> i_bdev = bdev ;
893
887
inode -> i_data .a_ops = & def_blk_aops ;
894
888
mapping_set_gfp_mask (& inode -> i_data , GFP_USER );
895
- spin_lock (& bdev_lock );
896
- list_add (& bdev -> bd_list , & all_bdevs );
897
- spin_unlock (& bdev_lock );
898
889
unlock_new_inode (inode );
899
890
}
900
891
return bdev ;
@@ -915,13 +906,14 @@ EXPORT_SYMBOL(bdgrab);
915
906
916
907
long nr_blockdev_pages (void )
917
908
{
918
- struct block_device * bdev ;
909
+ struct inode * inode ;
919
910
long ret = 0 ;
920
- spin_lock (& bdev_lock );
921
- list_for_each_entry (bdev , & all_bdevs , bd_list ) {
922
- ret += bdev -> bd_inode -> i_mapping -> nrpages ;
923
- }
924
- spin_unlock (& bdev_lock );
911
+
912
+ spin_lock (& blockdev_superblock -> s_inode_list_lock );
913
+ list_for_each_entry (inode , & blockdev_superblock -> s_inodes , i_sb_list )
914
+ ret += inode -> i_mapping -> nrpages ;
915
+ spin_unlock (& blockdev_superblock -> s_inode_list_lock );
916
+
925
917
return ret ;
926
918
}
927
919
0 commit comments