diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/gfs2/sys.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/fs/gfs2/sys.c b/fs/gfs2/sys.c index a7cbfbd340c7..dda4bf1e9eb4 100644 --- a/fs/gfs2/sys.c +++ b/fs/gfs2/sys.c | |||
@@ -519,7 +519,14 @@ static struct attribute_group lock_module_group = { | |||
519 | 519 | ||
520 | int gfs2_sys_fs_add(struct gfs2_sbd *sdp) | 520 | int gfs2_sys_fs_add(struct gfs2_sbd *sdp) |
521 | { | 521 | { |
522 | struct super_block *sb = sdp->sd_vfs; | ||
522 | int error; | 523 | int error; |
524 | char ro[20]; | ||
525 | char spectator[20]; | ||
526 | char *envp[] = { ro, spectator, NULL }; | ||
527 | |||
528 | sprintf(ro, "RDONLY=%d", (sb->s_flags & MS_RDONLY) ? 1 : 0); | ||
529 | sprintf(spectator, "SPECTATOR=%d", sdp->sd_args.ar_spectator ? 1 : 0); | ||
523 | 530 | ||
524 | sdp->sd_kobj.kset = gfs2_kset; | 531 | sdp->sd_kobj.kset = gfs2_kset; |
525 | error = kobject_init_and_add(&sdp->sd_kobj, &gfs2_ktype, NULL, | 532 | error = kobject_init_and_add(&sdp->sd_kobj, &gfs2_ktype, NULL, |
@@ -535,7 +542,7 @@ int gfs2_sys_fs_add(struct gfs2_sbd *sdp) | |||
535 | if (error) | 542 | if (error) |
536 | goto fail_tune; | 543 | goto fail_tune; |
537 | 544 | ||
538 | kobject_uevent(&sdp->sd_kobj, KOBJ_ADD); | 545 | kobject_uevent_env(&sdp->sd_kobj, KOBJ_ADD, envp); |
539 | return 0; | 546 | return 0; |
540 | 547 | ||
541 | fail_tune: | 548 | fail_tune: |
@@ -554,7 +561,6 @@ void gfs2_sys_fs_del(struct gfs2_sbd *sdp) | |||
554 | kobject_put(&sdp->sd_kobj); | 561 | kobject_put(&sdp->sd_kobj); |
555 | } | 562 | } |
556 | 563 | ||
557 | |||
558 | static int gfs2_uevent(struct kset *kset, struct kobject *kobj, | 564 | static int gfs2_uevent(struct kset *kset, struct kobject *kobj, |
559 | struct kobj_uevent_env *env) | 565 | struct kobj_uevent_env *env) |
560 | { | 566 | { |
@@ -563,6 +569,8 @@ static int gfs2_uevent(struct kset *kset, struct kobject *kobj, | |||
563 | 569 | ||
564 | add_uevent_var(env, "LOCKTABLE=%s", sdp->sd_table_name); | 570 | add_uevent_var(env, "LOCKTABLE=%s", sdp->sd_table_name); |
565 | add_uevent_var(env, "LOCKPROTO=%s", sdp->sd_proto_name); | 571 | add_uevent_var(env, "LOCKPROTO=%s", sdp->sd_proto_name); |
572 | if (!sdp->sd_args.ar_spectator) | ||
573 | add_uevent_var(env, "JOURNALID=%u", sdp->sd_lockstruct.ls_jid); | ||
566 | if (gfs2_uuid_valid(uuid)) { | 574 | if (gfs2_uuid_valid(uuid)) { |
567 | add_uevent_var(env, "UUID=%02X%02X%02X%02X-%02X%02X-%02X%02X-" | 575 | add_uevent_var(env, "UUID=%02X%02X%02X%02X-%02X%02X-%02X%02X-" |
568 | "%02X%02X-%02X%02X%02X%02X%02X%02X", | 576 | "%02X%02X-%02X%02X%02X%02X%02X%02X", |
@@ -578,7 +586,6 @@ static struct kset_uevent_ops gfs2_uevent_ops = { | |||
578 | .uevent = gfs2_uevent, | 586 | .uevent = gfs2_uevent, |
579 | }; | 587 | }; |
580 | 588 | ||
581 | |||
582 | int gfs2_sys_init(void) | 589 | int gfs2_sys_init(void) |
583 | { | 590 | { |
584 | gfs2_kset = kset_create_and_add("gfs2", &gfs2_uevent_ops, fs_kobj); | 591 | gfs2_kset = kset_create_and_add("gfs2", &gfs2_uevent_ops, fs_kobj); |