aboutsummaryrefslogtreecommitdiffstats
path: root/fs/dlm/lock.c
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2012-04-23 14:08:52 -0500
committerDavid Teigland <teigland@redhat.com>2012-04-26 15:37:56 -0500
commit57638bf3aa64facd9eba0e018b5773f5d2da6c2b (patch)
tree7d85777d3371f0a61172ef97a8b8d6a766e7ac18 /fs/dlm/lock.c
parentd6e24788d21c4f1a8f00c811c31dd4e9a58679ac (diff)
downloadkernel_goldelico_gta04-57638bf3aa64facd9eba0e018b5773f5d2da6c2b.zip
kernel_goldelico_gta04-57638bf3aa64facd9eba0e018b5773f5d2da6c2b.tar.gz
kernel_goldelico_gta04-57638bf3aa64facd9eba0e018b5773f5d2da6c2b.tar.bz2
dlm: avoid unnecessary search in search_rsb
If the rsb is found in the "keep" tree, but is not the right type (i.e. not MASTER), we can return immediately with the result. There's no point in going on to search the "toss" list as if we hadn't found it. Signed-off-by: David Teigland <teigland@redhat.com>
Diffstat (limited to 'fs/dlm/lock.c')
-rw-r--r--fs/dlm/lock.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
index 3d35c59..49926f1 100644
--- a/fs/dlm/lock.c
+++ b/fs/dlm/lock.c
@@ -479,6 +479,9 @@ static int _search_rsb(struct dlm_ls *ls, char *name, int len, int b,
kref_get(&r->res_ref);
goto out;
}
+ if (error == -ENOTBLK)
+ goto out;
+
error = dlm_search_rsb_tree(&ls->ls_rsbtbl[b].toss, name, len, flags, &r);
if (error)
goto out;