From 871eea7694d9ca4535bab44795ac74b6fcb473bb Mon Sep 17 00:00:00 2001 From: David Teigland Date: Wed, 8 Apr 2009 15:38:43 -0500 Subject: [PATCH] --- yaml --- r: 148659 b: refs/heads/master c: 8511a2728ab82cab398e39d019f5cf1246021c1c h: refs/heads/master i: 148657: de5446cf9c771f3c4394e63b99b36f8a6f1f09dd 148655: b4c659f9f3b75b4bee110ec56ca90a9389566a69 v: v3 --- [refs] | 2 +- trunk/fs/dlm/lockspace.c | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index d18926ac68c3..3e8af298b0c1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 08ce4c91e44d51bb6c946f2756825a462d53c545 +refs/heads/master: 8511a2728ab82cab398e39d019f5cf1246021c1c diff --git a/trunk/fs/dlm/lockspace.c b/trunk/fs/dlm/lockspace.c index 82528d9b72ed..d489fcc86713 100644 --- a/trunk/fs/dlm/lockspace.c +++ b/trunk/fs/dlm/lockspace.c @@ -419,16 +419,14 @@ static int new_lockspace(const char *name, int namelen, void **lockspace, break; } ls->ls_create_count++; - module_put(THIS_MODULE); - error = 1; /* not an error, return 0 */ + *lockspace = ls; + error = 1; break; } spin_unlock(&lslist_lock); - if (error < 0) - goto out; if (error) - goto ret_zero; + goto out; error = -ENOMEM; @@ -583,7 +581,6 @@ static int new_lockspace(const char *name, int namelen, void **lockspace, dlm_create_debug_file(ls); log_debug(ls, "join complete"); - ret_zero: *lockspace = ls; return 0; @@ -628,7 +625,9 @@ int dlm_new_lockspace(const char *name, int namelen, void **lockspace, error = new_lockspace(name, namelen, lockspace, flags, lvblen); if (!error) ls_count++; - else if (!ls_count) + if (error > 0) + error = 0; + if (!ls_count) threads_stop(); out: mutex_unlock(&ls_lock);