@@ -1369,8 +1369,8 @@ static CLOSURE_CALLBACK(cached_dev_free)
13691369 if (dc -> sb_disk )
13701370 put_page (virt_to_page (dc -> sb_disk ));
13711371
1372- if (dc -> bdev_handle )
1373- bdev_release (dc -> bdev_handle );
1372+ if (dc -> bdev_file )
1373+ fput (dc -> bdev_file );
13741374
13751375 wake_up (& unregister_wait );
13761376
@@ -1445,16 +1445,16 @@ static int cached_dev_init(struct cached_dev *dc, unsigned int block_size)
14451445/* Cached device - bcache superblock */
14461446
14471447static int register_bdev (struct cache_sb * sb , struct cache_sb_disk * sb_disk ,
1448- struct bdev_handle * bdev_handle ,
1448+ struct file * bdev_file ,
14491449 struct cached_dev * dc )
14501450{
14511451 const char * err = "cannot allocate memory" ;
14521452 struct cache_set * c ;
14531453 int ret = - ENOMEM ;
14541454
14551455 memcpy (& dc -> sb , sb , sizeof (struct cache_sb ));
1456- dc -> bdev_handle = bdev_handle ;
1457- dc -> bdev = bdev_handle -> bdev ;
1456+ dc -> bdev_file = bdev_file ;
1457+ dc -> bdev = file_bdev ( bdev_file ) ;
14581458 dc -> sb_disk = sb_disk ;
14591459
14601460 if (cached_dev_init (dc , sb -> block_size << 9 ))
@@ -2218,8 +2218,8 @@ void bch_cache_release(struct kobject *kobj)
22182218 if (ca -> sb_disk )
22192219 put_page (virt_to_page (ca -> sb_disk ));
22202220
2221- if (ca -> bdev_handle )
2222- bdev_release (ca -> bdev_handle );
2221+ if (ca -> bdev_file )
2222+ fput (ca -> bdev_file );
22232223
22242224 kfree (ca );
22252225 module_put (THIS_MODULE );
@@ -2339,18 +2339,18 @@ static int cache_alloc(struct cache *ca)
23392339}
23402340
23412341static int register_cache (struct cache_sb * sb , struct cache_sb_disk * sb_disk ,
2342- struct bdev_handle * bdev_handle ,
2342+ struct file * bdev_file ,
23432343 struct cache * ca )
23442344{
23452345 const char * err = NULL ; /* must be set for any error case */
23462346 int ret = 0 ;
23472347
23482348 memcpy (& ca -> sb , sb , sizeof (struct cache_sb ));
2349- ca -> bdev_handle = bdev_handle ;
2350- ca -> bdev = bdev_handle -> bdev ;
2349+ ca -> bdev_file = bdev_file ;
2350+ ca -> bdev = file_bdev ( bdev_file ) ;
23512351 ca -> sb_disk = sb_disk ;
23522352
2353- if (bdev_max_discard_sectors (( bdev_handle -> bdev )))
2353+ if (bdev_max_discard_sectors (file_bdev ( bdev_file )))
23542354 ca -> discard = CACHE_DISCARD (& ca -> sb );
23552355
23562356 ret = cache_alloc (ca );
@@ -2361,20 +2361,20 @@ static int register_cache(struct cache_sb *sb, struct cache_sb_disk *sb_disk,
23612361 err = "cache_alloc(): cache device is too small" ;
23622362 else
23632363 err = "cache_alloc(): unknown error" ;
2364- pr_notice ("error %pg: %s\n" , bdev_handle -> bdev , err );
2364+ pr_notice ("error %pg: %s\n" , file_bdev ( bdev_file ) , err );
23652365 /*
23662366 * If we failed here, it means ca->kobj is not initialized yet,
23672367 * kobject_put() won't be called and there is no chance to
2368- * call bdev_release () to bdev in bch_cache_release(). So
2369- * we explicitly call bdev_release() here.
2368+ * call fput () to bdev in bch_cache_release(). So
2369+ * we explicitly call fput() on the block device here.
23702370 */
2371- bdev_release ( bdev_handle );
2371+ fput ( bdev_file );
23722372 return ret ;
23732373 }
23742374
2375- if (kobject_add (& ca -> kobj , bdev_kobj (bdev_handle -> bdev ), "bcache" )) {
2375+ if (kobject_add (& ca -> kobj , bdev_kobj (file_bdev ( bdev_file ) ), "bcache" )) {
23762376 pr_notice ("error %pg: error calling kobject_add\n" ,
2377- bdev_handle -> bdev );
2377+ file_bdev ( bdev_file ) );
23782378 ret = - ENOMEM ;
23792379 goto out ;
23802380 }
@@ -2388,7 +2388,7 @@ static int register_cache(struct cache_sb *sb, struct cache_sb_disk *sb_disk,
23882388 goto out ;
23892389 }
23902390
2391- pr_info ("registered cache device %pg\n" , ca -> bdev_handle -> bdev );
2391+ pr_info ("registered cache device %pg\n" , file_bdev ( ca -> bdev_file ) );
23922392
23932393out :
23942394 kobject_put (& ca -> kobj );
@@ -2446,7 +2446,7 @@ struct async_reg_args {
24462446 char * path ;
24472447 struct cache_sb * sb ;
24482448 struct cache_sb_disk * sb_disk ;
2449- struct bdev_handle * bdev_handle ;
2449+ struct file * bdev_file ;
24502450 void * holder ;
24512451};
24522452
@@ -2457,7 +2457,7 @@ static void register_bdev_worker(struct work_struct *work)
24572457 container_of (work , struct async_reg_args , reg_work .work );
24582458
24592459 mutex_lock (& bch_register_lock );
2460- if (register_bdev (args -> sb , args -> sb_disk , args -> bdev_handle ,
2460+ if (register_bdev (args -> sb , args -> sb_disk , args -> bdev_file ,
24612461 args -> holder ) < 0 )
24622462 fail = true;
24632463 mutex_unlock (& bch_register_lock );
@@ -2478,7 +2478,7 @@ static void register_cache_worker(struct work_struct *work)
24782478 container_of (work , struct async_reg_args , reg_work .work );
24792479
24802480 /* blkdev_put() will be called in bch_cache_release() */
2481- if (register_cache (args -> sb , args -> sb_disk , args -> bdev_handle ,
2481+ if (register_cache (args -> sb , args -> sb_disk , args -> bdev_file ,
24822482 args -> holder ))
24832483 fail = true;
24842484
@@ -2516,7 +2516,7 @@ static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
25162516 char * path = NULL ;
25172517 struct cache_sb * sb ;
25182518 struct cache_sb_disk * sb_disk ;
2519- struct bdev_handle * bdev_handle , * bdev_handle2 ;
2519+ struct file * bdev_file , * bdev_file2 ;
25202520 void * holder = NULL ;
25212521 ssize_t ret ;
25222522 bool async_registration = false;
@@ -2549,15 +2549,15 @@ static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
25492549
25502550 ret = - EINVAL ;
25512551 err = "failed to open device" ;
2552- bdev_handle = bdev_open_by_path (strim (path ), BLK_OPEN_READ , NULL , NULL );
2553- if (IS_ERR (bdev_handle ))
2552+ bdev_file = bdev_file_open_by_path (strim (path ), BLK_OPEN_READ , NULL , NULL );
2553+ if (IS_ERR (bdev_file ))
25542554 goto out_free_sb ;
25552555
25562556 err = "failed to set blocksize" ;
2557- if (set_blocksize (bdev_handle -> bdev , 4096 ))
2557+ if (set_blocksize (file_bdev ( bdev_file ) , 4096 ))
25582558 goto out_blkdev_put ;
25592559
2560- err = read_super (sb , bdev_handle -> bdev , & sb_disk );
2560+ err = read_super (sb , file_bdev ( bdev_file ) , & sb_disk );
25612561 if (err )
25622562 goto out_blkdev_put ;
25632563
@@ -2569,13 +2569,13 @@ static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
25692569 }
25702570
25712571 /* Now reopen in exclusive mode with proper holder */
2572- bdev_handle2 = bdev_open_by_dev ( bdev_handle -> bdev -> bd_dev ,
2572+ bdev_file2 = bdev_file_open_by_dev ( file_bdev ( bdev_file ) -> bd_dev ,
25732573 BLK_OPEN_READ | BLK_OPEN_WRITE , holder , NULL );
2574- bdev_release ( bdev_handle );
2575- bdev_handle = bdev_handle2 ;
2576- if (IS_ERR (bdev_handle )) {
2577- ret = PTR_ERR (bdev_handle );
2578- bdev_handle = NULL ;
2574+ fput ( bdev_file );
2575+ bdev_file = bdev_file2 ;
2576+ if (IS_ERR (bdev_file )) {
2577+ ret = PTR_ERR (bdev_file );
2578+ bdev_file = NULL ;
25792579 if (ret == - EBUSY ) {
25802580 dev_t dev ;
25812581
@@ -2610,7 +2610,7 @@ static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
26102610 args -> path = path ;
26112611 args -> sb = sb ;
26122612 args -> sb_disk = sb_disk ;
2613- args -> bdev_handle = bdev_handle ;
2613+ args -> bdev_file = bdev_file ;
26142614 args -> holder = holder ;
26152615 register_device_async (args );
26162616 /* No wait and returns to user space */
@@ -2619,14 +2619,14 @@ static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
26192619
26202620 if (SB_IS_BDEV (sb )) {
26212621 mutex_lock (& bch_register_lock );
2622- ret = register_bdev (sb , sb_disk , bdev_handle , holder );
2622+ ret = register_bdev (sb , sb_disk , bdev_file , holder );
26232623 mutex_unlock (& bch_register_lock );
26242624 /* blkdev_put() will be called in cached_dev_free() */
26252625 if (ret < 0 )
26262626 goto out_free_sb ;
26272627 } else {
26282628 /* blkdev_put() will be called in bch_cache_release() */
2629- ret = register_cache (sb , sb_disk , bdev_handle , holder );
2629+ ret = register_cache (sb , sb_disk , bdev_file , holder );
26302630 if (ret )
26312631 goto out_free_sb ;
26322632 }
@@ -2642,8 +2642,8 @@ static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
26422642out_put_sb_page :
26432643 put_page (virt_to_page (sb_disk ));
26442644out_blkdev_put :
2645- if (bdev_handle )
2646- bdev_release ( bdev_handle );
2645+ if (bdev_file )
2646+ fput ( bdev_file );
26472647out_free_sb :
26482648 kfree (sb );
26492649out_free_path :
0 commit comments