33
44struct bd_holder_disk {
55 struct list_head list ;
6- struct gendisk * disk ;
6+ struct block_device * bdev ;
77 int refcnt ;
88};
99
@@ -12,8 +12,8 @@ static struct bd_holder_disk *bd_find_holder_disk(struct block_device *bdev,
1212{
1313 struct bd_holder_disk * holder ;
1414
15- list_for_each_entry (holder , & bdev -> bd_holder_disks , list )
16- if (holder -> disk == disk )
15+ list_for_each_entry (holder , & disk -> slave_bdevs , list )
16+ if (holder -> bdev == bdev )
1717 return holder ;
1818 return NULL ;
1919}
@@ -61,7 +61,7 @@ int bd_link_disk_holder(struct block_device *bdev, struct gendisk *disk)
6161 struct bd_holder_disk * holder ;
6262 int ret = 0 ;
6363
64- mutex_lock (& bdev -> bd_disk -> open_mutex );
64+ mutex_lock (& disk -> open_mutex );
6565
6666 WARN_ON_ONCE (!bdev -> bd_holder );
6767
@@ -82,7 +82,7 @@ int bd_link_disk_holder(struct block_device *bdev, struct gendisk *disk)
8282 }
8383
8484 INIT_LIST_HEAD (& holder -> list );
85- holder -> disk = disk ;
85+ holder -> bdev = bdev ;
8686 holder -> refcnt = 1 ;
8787
8888 ret = add_symlink (disk -> slave_dir , bdev_kobj (bdev ));
@@ -93,15 +93,15 @@ int bd_link_disk_holder(struct block_device *bdev, struct gendisk *disk)
9393 if (ret )
9494 goto out_del ;
9595
96- list_add (& holder -> list , & bdev -> bd_holder_disks );
96+ list_add (& holder -> list , & disk -> slave_bdevs );
9797 goto out_unlock ;
9898
9999out_del :
100100 del_symlink (disk -> slave_dir , bdev_kobj (bdev ));
101101out_free :
102102 kfree (holder );
103103out_unlock :
104- mutex_unlock (& bdev -> bd_disk -> open_mutex );
104+ mutex_unlock (& disk -> open_mutex );
105105 return ret ;
106106}
107107EXPORT_SYMBOL_GPL (bd_link_disk_holder );
@@ -120,14 +120,14 @@ void bd_unlink_disk_holder(struct block_device *bdev, struct gendisk *disk)
120120{
121121 struct bd_holder_disk * holder ;
122122
123- mutex_lock (& bdev -> bd_disk -> open_mutex );
123+ mutex_lock (& disk -> open_mutex );
124124 holder = bd_find_holder_disk (bdev , disk );
125125 if (!WARN_ON_ONCE (holder == NULL ) && !-- holder -> refcnt ) {
126126 del_symlink (disk -> slave_dir , bdev_kobj (bdev ));
127127 del_symlink (bdev -> bd_holder_dir , & disk_to_dev (disk )-> kobj );
128128 list_del_init (& holder -> list );
129129 kfree (holder );
130130 }
131- mutex_unlock (& bdev -> bd_disk -> open_mutex );
131+ mutex_unlock (& disk -> open_mutex );
132132}
133133EXPORT_SYMBOL_GPL (bd_unlink_disk_holder );
0 commit comments