@@ -5291,8 +5291,7 @@ static void rbd_dev_release(struct device *dev)
5291
5291
module_put (THIS_MODULE );
5292
5292
}
5293
5293
5294
- static struct rbd_device * __rbd_dev_create (struct rbd_client * rbdc ,
5295
- struct rbd_spec * spec )
5294
+ static struct rbd_device * __rbd_dev_create (struct rbd_spec * spec )
5296
5295
{
5297
5296
struct rbd_device * rbd_dev ;
5298
5297
@@ -5337,9 +5336,6 @@ static struct rbd_device *__rbd_dev_create(struct rbd_client *rbdc,
5337
5336
rbd_dev -> dev .parent = & rbd_root_dev ;
5338
5337
device_initialize (& rbd_dev -> dev );
5339
5338
5340
- rbd_dev -> rbd_client = rbdc ;
5341
- rbd_dev -> spec = spec ;
5342
-
5343
5339
return rbd_dev ;
5344
5340
}
5345
5341
@@ -5352,12 +5348,10 @@ static struct rbd_device *rbd_dev_create(struct rbd_client *rbdc,
5352
5348
{
5353
5349
struct rbd_device * rbd_dev ;
5354
5350
5355
- rbd_dev = __rbd_dev_create (rbdc , spec );
5351
+ rbd_dev = __rbd_dev_create (spec );
5356
5352
if (!rbd_dev )
5357
5353
return NULL ;
5358
5354
5359
- rbd_dev -> opts = opts ;
5360
-
5361
5355
/* get an id and fill in device name */
5362
5356
rbd_dev -> dev_id = ida_simple_get (& rbd_dev_id_ida , 0 ,
5363
5357
minor_to_rbd_dev_id (1 << MINORBITS ),
@@ -5374,6 +5368,10 @@ static struct rbd_device *rbd_dev_create(struct rbd_client *rbdc,
5374
5368
/* we have a ref from do_rbd_add() */
5375
5369
__module_get (THIS_MODULE );
5376
5370
5371
+ rbd_dev -> rbd_client = rbdc ;
5372
+ rbd_dev -> spec = spec ;
5373
+ rbd_dev -> opts = opts ;
5374
+
5377
5375
dout ("%s rbd_dev %p dev_id %d\n" , __func__ , rbd_dev , rbd_dev -> dev_id );
5378
5376
return rbd_dev ;
5379
5377
@@ -6735,7 +6733,7 @@ static int rbd_dev_probe_parent(struct rbd_device *rbd_dev, int depth)
6735
6733
goto out_err ;
6736
6734
}
6737
6735
6738
- parent = __rbd_dev_create (rbd_dev -> rbd_client , rbd_dev -> parent_spec );
6736
+ parent = __rbd_dev_create (rbd_dev -> parent_spec );
6739
6737
if (!parent ) {
6740
6738
ret = - ENOMEM ;
6741
6739
goto out_err ;
@@ -6745,8 +6743,8 @@ static int rbd_dev_probe_parent(struct rbd_device *rbd_dev, int depth)
6745
6743
* Images related by parent/child relationships always share
6746
6744
* rbd_client and spec/parent_spec, so bump their refcounts.
6747
6745
*/
6748
- __rbd_get_client (rbd_dev -> rbd_client );
6749
- rbd_spec_get (rbd_dev -> parent_spec );
6746
+ parent -> rbd_client = __rbd_get_client (rbd_dev -> rbd_client );
6747
+ parent -> spec = rbd_spec_get (rbd_dev -> parent_spec );
6750
6748
6751
6749
__set_bit (RBD_DEV_FLAG_READONLY , & parent -> flags );
6752
6750
0 commit comments