@@ -325,13 +325,6 @@ static void ext4_sb_release(struct kobject *kobj)
325
325
complete (& sbi -> s_kobj_unregister );
326
326
}
327
327
328
- static void ext4_kset_release (struct kobject * kobj )
329
- {
330
- struct kset * kset = container_of (kobj , struct kset , kobj );
331
-
332
- kfree (kset );
333
- }
334
-
335
328
static const struct sysfs_ops ext4_attr_ops = {
336
329
.show = ext4_attr_show ,
337
330
.store = ext4_attr_store ,
@@ -343,19 +336,14 @@ static struct kobj_type ext4_sb_ktype = {
343
336
.release = ext4_sb_release ,
344
337
};
345
338
346
- static struct kobj_type ext4_ktype = {
347
- .sysfs_ops = & ext4_attr_ops ,
348
- .release = ext4_kset_release ,
349
- };
350
-
351
- static struct kset * ext4_kset ;
352
-
353
339
static struct kobj_type ext4_feat_ktype = {
354
340
.default_attrs = ext4_feat_attrs ,
355
341
.sysfs_ops = & ext4_attr_ops ,
356
342
.release = (void (* )(struct kobject * ))kfree ,
357
343
};
358
344
345
+ static struct kobject * ext4_root ;
346
+
359
347
static struct kobject * ext4_feat ;
360
348
361
349
#define PROC_FILE_SHOW_DEFN (name ) \
@@ -393,9 +381,8 @@ int ext4_register_sysfs(struct super_block *sb)
393
381
const struct ext4_proc_files * p ;
394
382
int err ;
395
383
396
- sbi -> s_kobj .kset = ext4_kset ;
397
384
init_completion (& sbi -> s_kobj_unregister );
398
- err = kobject_init_and_add (& sbi -> s_kobj , & ext4_sb_ktype , NULL ,
385
+ err = kobject_init_and_add (& sbi -> s_kobj , & ext4_sb_ktype , ext4_root ,
399
386
"%s" , sb -> s_id );
400
387
if (err ) {
401
388
kobject_put (& sbi -> s_kobj );
@@ -431,26 +418,18 @@ int __init ext4_init_sysfs(void)
431
418
{
432
419
int ret ;
433
420
434
- ext4_kset = kzalloc ( sizeof ( * ext4_kset ), GFP_KERNEL );
435
- if (!ext4_kset )
421
+ ext4_root = kobject_create_and_add ( "ext4" , fs_kobj );
422
+ if (!ext4_root )
436
423
return - ENOMEM ;
437
424
438
- kobject_set_name (& ext4_kset -> kobj , "ext4" );
439
- ext4_kset -> kobj .parent = fs_kobj ;
440
- ext4_kset -> kobj .ktype = & ext4_ktype ;
441
- ret = kset_register (ext4_kset );
442
- if (ret )
443
- goto kset_err ;
444
-
445
425
ext4_feat = kzalloc (sizeof (* ext4_feat ), GFP_KERNEL );
446
426
if (!ext4_feat ) {
447
427
ret = - ENOMEM ;
448
- goto kset_err ;
428
+ goto root_err ;
449
429
}
450
430
451
- ext4_feat -> kset = ext4_kset ;
452
431
ret = kobject_init_and_add (ext4_feat , & ext4_feat_ktype ,
453
- NULL , "features" );
432
+ ext4_root , "features" );
454
433
if (ret )
455
434
goto feat_err ;
456
435
@@ -460,18 +439,18 @@ int __init ext4_init_sysfs(void)
460
439
feat_err :
461
440
kobject_put (ext4_feat );
462
441
ext4_feat = NULL ;
463
- kset_err :
464
- kset_unregister ( ext4_kset );
465
- ext4_kset = NULL ;
442
+ root_err :
443
+ kobject_put ( ext4_root );
444
+ ext4_root = NULL ;
466
445
return ret ;
467
446
}
468
447
469
448
void ext4_exit_sysfs (void )
470
449
{
471
450
kobject_put (ext4_feat );
472
451
ext4_feat = NULL ;
473
- kset_unregister ( ext4_kset );
474
- ext4_kset = NULL ;
452
+ kobject_put ( ext4_root );
453
+ ext4_root = NULL ;
475
454
remove_proc_entry (proc_dirname , NULL );
476
455
ext4_proc_root = NULL ;
477
456
}
0 commit comments