Skip to content

Commit

Permalink
Kobject: change GFS2 to use kobject_init_and_add
Browse files Browse the repository at this point in the history
Stop using kobject_register, as this way we can control the sending of
the uevent properly, after everything is properly initialized.

Cc: Steven Whitehouse <[email protected]>
Cc: Kay Sievers <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
gregkh committed Jan 25, 2008
1 parent 43b98c4 commit 901195e
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 39 deletions.
26 changes: 4 additions & 22 deletions fs/dlm/lockspace.c
Original file line number Diff line number Diff line change
Expand Up @@ -168,23 +168,6 @@ static struct kobj_type dlm_ktype = {

static struct kset *dlm_kset;

static int kobject_setup(struct dlm_ls *ls)
{
char lsname[DLM_LOCKSPACE_LEN];
int error;

memset(lsname, 0, DLM_LOCKSPACE_LEN);
snprintf(lsname, DLM_LOCKSPACE_LEN, "%s", ls->ls_name);

error = kobject_set_name(&ls->ls_kobj, "%s", lsname);
if (error)
return error;

ls->ls_kobj.kset = dlm_kset;
ls->ls_kobj.ktype = &dlm_ktype;
return 0;
}

static int do_uevent(struct dlm_ls *ls, int in)
{
int error;
Expand Down Expand Up @@ -545,13 +528,12 @@ static int new_lockspace(char *name, int namelen, void **lockspace,
goto out_delist;
}

error = kobject_setup(ls);
if (error)
goto out_stop;

error = kobject_register(&ls->ls_kobj);
ls->ls_kobj.kset = dlm_kset;
error = kobject_init_and_add(&ls->ls_kobj, &dlm_ktype, NULL,
"%s", ls->ls_name);
if (error)
goto out_stop;
kobject_uevent(&ls->ls_kobj, KOBJ_ADD);

/* let kobject handle freeing of ls if there's an error */
do_unreg = 1;
Expand Down
13 changes: 3 additions & 10 deletions fs/gfs2/locking/dlm/sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -195,19 +195,12 @@ int gdlm_kobject_setup(struct gdlm_ls *ls, struct kobject *fskobj)
{
int error;

error = kobject_set_name(&ls->kobj, "%s", "lock_module");
if (error) {
log_error("can't set kobj name %d", error);
return error;
}

ls->kobj.kset = gdlm_kset;
ls->kobj.ktype = &gdlm_ktype;
ls->kobj.parent = fskobj;

error = kobject_register(&ls->kobj);
error = kobject_init_and_add(&ls->kobj, &gdlm_ktype, fskobj,
"lock_module");
if (error)
log_error("can't register kobj %d", error);
kobject_uevent(&ls->kobj, KOBJ_ADD);

return error;
}
Expand Down
10 changes: 3 additions & 7 deletions fs/gfs2/sys.c
Original file line number Diff line number Diff line change
Expand Up @@ -494,13 +494,8 @@ int gfs2_sys_fs_add(struct gfs2_sbd *sdp)
int error;

sdp->sd_kobj.kset = gfs2_kset;
sdp->sd_kobj.ktype = &gfs2_ktype;

error = kobject_set_name(&sdp->sd_kobj, "%s", sdp->sd_table_name);
if (error)
goto fail;

error = kobject_register(&sdp->sd_kobj);
error = kobject_init_and_add(&sdp->sd_kobj, &gfs2_ktype, NULL,
"%s", sdp->sd_table_name);
if (error)
goto fail;

Expand All @@ -520,6 +515,7 @@ int gfs2_sys_fs_add(struct gfs2_sbd *sdp)
if (error)
goto fail_args;

kobject_uevent(&sdp->sd_kobj, KOBJ_ADD);
return 0;

fail_args:
Expand Down

0 comments on commit 901195e

Please sign in to comment.