diff options
Diffstat (limited to 'fs/gfs2/sys.c')
-rw-r--r-- | fs/gfs2/sys.c | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/fs/gfs2/sys.c b/fs/gfs2/sys.c index 06e0b7768d97..3a3176b846f3 100644 --- a/fs/gfs2/sys.c +++ b/fs/gfs2/sys.c | |||
@@ -221,9 +221,7 @@ static struct kobj_type gfs2_ktype = { | |||
221 | .sysfs_ops = &gfs2_attr_ops, | 221 | .sysfs_ops = &gfs2_attr_ops, |
222 | }; | 222 | }; |
223 | 223 | ||
224 | static struct kset gfs2_kset = { | 224 | static struct kset *gfs2_kset; |
225 | .ktype = &gfs2_ktype, | ||
226 | }; | ||
227 | 225 | ||
228 | /* | 226 | /* |
229 | * display struct lm_lockstruct fields | 227 | * display struct lm_lockstruct fields |
@@ -495,14 +493,9 @@ int gfs2_sys_fs_add(struct gfs2_sbd *sdp) | |||
495 | { | 493 | { |
496 | int error; | 494 | int error; |
497 | 495 | ||
498 | sdp->sd_kobj.kset = &gfs2_kset; | 496 | sdp->sd_kobj.kset = gfs2_kset; |
499 | sdp->sd_kobj.ktype = &gfs2_ktype; | 497 | error = kobject_init_and_add(&sdp->sd_kobj, &gfs2_ktype, NULL, |
500 | 498 | "%s", sdp->sd_table_name); | |
501 | error = kobject_set_name(&sdp->sd_kobj, "%s", sdp->sd_table_name); | ||
502 | if (error) | ||
503 | goto fail; | ||
504 | |||
505 | error = kobject_register(&sdp->sd_kobj); | ||
506 | if (error) | 499 | if (error) |
507 | goto fail; | 500 | goto fail; |
508 | 501 | ||
@@ -522,6 +515,7 @@ int gfs2_sys_fs_add(struct gfs2_sbd *sdp) | |||
522 | if (error) | 515 | if (error) |
523 | goto fail_args; | 516 | goto fail_args; |
524 | 517 | ||
518 | kobject_uevent(&sdp->sd_kobj, KOBJ_ADD); | ||
525 | return 0; | 519 | return 0; |
526 | 520 | ||
527 | fail_args: | 521 | fail_args: |
@@ -531,7 +525,7 @@ fail_counters: | |||
531 | fail_lockstruct: | 525 | fail_lockstruct: |
532 | sysfs_remove_group(&sdp->sd_kobj, &lockstruct_group); | 526 | sysfs_remove_group(&sdp->sd_kobj, &lockstruct_group); |
533 | fail_reg: | 527 | fail_reg: |
534 | kobject_unregister(&sdp->sd_kobj); | 528 | kobject_put(&sdp->sd_kobj); |
535 | fail: | 529 | fail: |
536 | fs_err(sdp, "error %d adding sysfs files", error); | 530 | fs_err(sdp, "error %d adding sysfs files", error); |
537 | return error; | 531 | return error; |
@@ -543,21 +537,22 @@ void gfs2_sys_fs_del(struct gfs2_sbd *sdp) | |||
543 | sysfs_remove_group(&sdp->sd_kobj, &args_group); | 537 | sysfs_remove_group(&sdp->sd_kobj, &args_group); |
544 | sysfs_remove_group(&sdp->sd_kobj, &counters_group); | 538 | sysfs_remove_group(&sdp->sd_kobj, &counters_group); |
545 | sysfs_remove_group(&sdp->sd_kobj, &lockstruct_group); | 539 | sysfs_remove_group(&sdp->sd_kobj, &lockstruct_group); |
546 | kobject_unregister(&sdp->sd_kobj); | 540 | kobject_put(&sdp->sd_kobj); |
547 | } | 541 | } |
548 | 542 | ||
549 | int gfs2_sys_init(void) | 543 | int gfs2_sys_init(void) |
550 | { | 544 | { |
551 | gfs2_sys_margs = NULL; | 545 | gfs2_sys_margs = NULL; |
552 | spin_lock_init(&gfs2_sys_margs_lock); | 546 | spin_lock_init(&gfs2_sys_margs_lock); |
553 | kobject_set_name(&gfs2_kset.kobj, "gfs2"); | 547 | gfs2_kset = kset_create_and_add("gfs2", NULL, fs_kobj); |
554 | kobj_set_kset_s(&gfs2_kset, fs_subsys); | 548 | if (!gfs2_kset) |
555 | return kset_register(&gfs2_kset); | 549 | return -ENOMEM; |
550 | return 0; | ||
556 | } | 551 | } |
557 | 552 | ||
558 | void gfs2_sys_uninit(void) | 553 | void gfs2_sys_uninit(void) |
559 | { | 554 | { |
560 | kfree(gfs2_sys_margs); | 555 | kfree(gfs2_sys_margs); |
561 | kset_unregister(&gfs2_kset); | 556 | kset_unregister(gfs2_kset); |
562 | } | 557 | } |
563 | 558 | ||