Hi Sunil,
I found a bug on ocfs2 covering both 1.2.4 and 1.2.5.
it's simple, please see the patch on 1.2.5(pasted below):
--- ocfs2-1.2.5/fs/ocfs2/dlm/dlmconvert.c.orig 2007-04-17
17:28:08.000000000 -0400
+++ ocfs2-1.2.5/fs/ocfs2/dlm/dlmconvert.c 2007-04-17
17:28:38.000000000 -0400
@@ -490,7 +490,9 @@
"cookie=%u:%llu\n",
dlm_get_lock_cookie_node(be64_to_cpu(cnv->cookie)),
dlm_get_lock_cookie_seq(be64_to_cpu(cnv->cookie)));
+ spin_lock(&res->spinlock);
__dlm_print_one_lock_resource(res);
+ spin_unlock(&res->spinlock);
goto leave;
}
--
Wengang Wang
Member of Technical Staff
Oracle China Development Center
Open Source Technologies Development
Tel: +86 10 8278 6265
Mobile: +86 13381078925
Remove the spinlocks. Instead remove the leading underscores.... Replace __dlm_print_one_lock_resource() with dlm_print_one_lock_resource(). And resubmit. Also read the "The Perfect Patch" in http://oss.oracle.com/osswiki/OCFS2. Your patch, while good, is missing the header and Signed-off-by lines. Case in point: http://kernel/~smushran/patches/dlm-fix_lockres_refcnt.patch If you still have qs, maybe quickest if you ping Tao/Tiger. Thanks Sunil wengang wang wrote:> Hi Sunil, > > I found a bug on ocfs2 covering both 1.2.4 and 1.2.5. > it's simple, please see the patch on 1.2.5(pasted below): > > > --- ocfs2-1.2.5/fs/ocfs2/dlm/dlmconvert.c.orig 2007-04-17 > 17:28:08.000000000 -0400 > +++ ocfs2-1.2.5/fs/ocfs2/dlm/dlmconvert.c 2007-04-17 > 17:28:38.000000000 -0400 > @@ -490,7 +490,9 @@ > "cookie=%u:%llu\n", > > dlm_get_lock_cookie_node(be64_to_cpu(cnv->cookie)), > > dlm_get_lock_cookie_seq(be64_to_cpu(cnv->cookie))); > + spin_lock(&res->spinlock); > __dlm_print_one_lock_resource(res); > + spin_unlock(&res->spinlock); > goto leave; > } >
wengang wang
2007-Apr-17 20:21 UTC
[Ocfs2-devel] [PATCH] ocfs2_dlm: add spinlock protection before __dlm_print_one_lock_resource is called
ocfs2_dlm: add spinlock protection per __dlm_print_one_lock_resource
calling
In dlm_convert_lock_handler(), in case of !lock,
__dlm_print_one_lock_resource is called. __dlm_print_one_lock_resource
needs protection of spinlock on res->spinlock. current source lost that
protection.
use dlm_print_one_lock_resource instead of __dlm_print_one_lock_resource.
Signed-off-by: wengang wang <wen.gang.wang@oracle.com>
Index: ocfs2-1.2.5/fs/ocfs2/dlm/dlmconvert.c
==================================================================---
ocfs2-1.2.5/fs/ocfs2/dlm/dlmconvert.c.orig 2007-04-18 11:15:36.000000000 -0400
+++ ocfs2-1.2.5/fs/ocfs2/dlm/dlmconvert.c 2007-04-18 11:16:00.000000000
-0400
@@ -490,7 +490,7 @@
"cookie=%u:%llu\n",
dlm_get_lock_cookie_node(be64_to_cpu(cnv->cookie)),
dlm_get_lock_cookie_seq(be64_to_cpu(cnv->cookie)));
- __dlm_print_one_lock_resource(res);
+ dlm_print_one_lock_resource(res);
goto leave;
}
wengang wang
2007-Apr-17 20:41 UTC
[Ocfs2-devel] Re: [PATCH] ocfs2_dlm: add spinlock protection before __dlm_print_one_lock_resource is called
same problem happens on dlm_deref_lockres_worker(1.2.5 and 1.2.4) and dlm_deref_lockres_handler(1.2.4 only) fix is the same. wengang wang wrote:> ocfs2_dlm: add spinlock protection per __dlm_print_one_lock_resource > calling > > In dlm_convert_lock_handler(), in case of !lock, > __dlm_print_one_lock_resource is called. __dlm_print_one_lock_resource > needs protection of spinlock on res->spinlock. current source lost > that protection. > use dlm_print_one_lock_resource instead of __dlm_print_one_lock_resource. > > Signed-off-by: wengang wang <wen.gang.wang@oracle.com> > > Index: ocfs2-1.2.5/fs/ocfs2/dlm/dlmconvert.c > > ==================================================================> --- ocfs2-1.2.5/fs/ocfs2/dlm/dlmconvert.c.orig 2007-04-18 > 11:15:36.000000000 -0400 > +++ ocfs2-1.2.5/fs/ocfs2/dlm/dlmconvert.c 2007-04-18 > 11:16:00.000000000 -0400 > @@ -490,7 +490,7 @@ > "cookie=%u:%llu\n", > > dlm_get_lock_cookie_node(be64_to_cpu(cnv->cookie)), > > dlm_get_lock_cookie_seq(be64_to_cpu(cnv->cookie))); > - __dlm_print_one_lock_resource(res); > + dlm_print_one_lock_resource(res); > goto leave; > } > > > >-- Wengang Wang Member of Technical Staff Oracle China Development Center Open Source Technologies Development Tel: +86 10 8278 6265 Mobile: +86 13381078925