]> Pileus Git - ~andy/linux/commitdiff
[GFS2] setup lock_dlm kobject earlier
authorDavid Teigland <teigland@redhat.com>
Fri, 19 May 2006 12:24:02 +0000 (08:24 -0400)
committerSteven Whitehouse <swhiteho@redhat.com>
Fri, 19 May 2006 12:24:02 +0000 (08:24 -0400)
Setup the lock_dlm kobject before setting up the dlm lockspace instead
of after.  We want to use the sysfs files to detect the mount without
having to wait for the dlm setup which can take a while.

Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/locking/dlm/mount.c

index aa79fbecaf6a1e2ffbffd75bcd87d67fc16360e9..3caeafc02a1b6d354b3044ff4c96959aaa9fbb0b 100644 (file)
@@ -143,19 +143,19 @@ static int gdlm_mount(char *table_name, char *host_data,
        if (error)
                goto out_free;
 
+       error = gdlm_kobject_setup(ls, fskobj);
+       if (error)
+               goto out_thread;
+
        error = dlm_new_lockspace(ls->fsname, strlen(ls->fsname),
                                  &ls->dlm_lockspace,
                                  nodir ? DLM_LSFL_NODIR : 0,
                                  GDLM_LVB_SIZE);
        if (error) {
                log_error("dlm_new_lockspace error %d", error);
-               goto out_thread;
+               goto out_kobj;
        }
 
-       error = gdlm_kobject_setup(ls, fskobj);
-       if (error)
-               goto out_dlm;
-
        lockstruct->ls_jid = ls->jid;
        lockstruct->ls_first = ls->first;
        lockstruct->ls_lockspace = ls;
@@ -164,8 +164,8 @@ static int gdlm_mount(char *table_name, char *host_data,
        lockstruct->ls_lvb_size = GDLM_LVB_SIZE;
        return 0;
 
- out_dlm:
-       dlm_release_lockspace(ls->dlm_lockspace, 2);
+ out_kobj:
+       gdlm_kobject_release(ls);
  out_thread:
        gdlm_release_threads(ls);
  out_free: