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 | ||
