瀏覽代碼

[GFS2] setup lock_dlm kobject earlier

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>
David Teigland 19 年之前
父節點
當前提交
d2f222e631
共有 1 個文件被更改,包括 7 次插入7 次删除
  1. 7 7
      fs/gfs2/locking/dlm/mount.c

+ 7 - 7
fs/gfs2/locking/dlm/mount.c

@@ -143,19 +143,19 @@ static int gdlm_mount(char *table_name, char *host_data,
 	if (error)
 	if (error)
 		goto out_free;
 		goto out_free;
 
 
+	error = gdlm_kobject_setup(ls, fskobj);
+	if (error)
+		goto out_thread;
+
 	error = dlm_new_lockspace(ls->fsname, strlen(ls->fsname),
 	error = dlm_new_lockspace(ls->fsname, strlen(ls->fsname),
 				  &ls->dlm_lockspace,
 				  &ls->dlm_lockspace,
 				  nodir ? DLM_LSFL_NODIR : 0,
 				  nodir ? DLM_LSFL_NODIR : 0,
 				  GDLM_LVB_SIZE);
 				  GDLM_LVB_SIZE);
 	if (error) {
 	if (error) {
 		log_error("dlm_new_lockspace error %d", 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_jid = ls->jid;
 	lockstruct->ls_first = ls->first;
 	lockstruct->ls_first = ls->first;
 	lockstruct->ls_lockspace = ls;
 	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;
 	lockstruct->ls_lvb_size = GDLM_LVB_SIZE;
 	return 0;
 	return 0;
 
 
- out_dlm:
-	dlm_release_lockspace(ls->dlm_lockspace, 2);
+ out_kobj:
+	gdlm_kobject_release(ls);
  out_thread:
  out_thread:
 	gdlm_release_threads(ls);
 	gdlm_release_threads(ls);
  out_free:
  out_free: