* [PATCH] Btrfs: reset path lock state to zero
@ 2012-12-28 9:33 Liu Bo
2012-12-28 18:32 ` Mitch Harder
0 siblings, 1 reply; 3+ messages in thread
From: Liu Bo @ 2012-12-28 9:33 UTC (permalink / raw)
To: linux-btrfs; +Cc: Slava Barinov, David Sterba
We forgot to reset the path lock state to zero after we unlock the path block,
and this can lead to the ASSERT checker in tree unlock API.
Reported-by: Slava Barinov <rayslava@gmail.com>
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
---
fs/btrfs/extent-tree.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 521e9d4..a71d457 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -6788,11 +6788,13 @@ static noinline int walk_up_proc(struct btrfs_trans_handle *trans,
&wc->flags[level]);
if (ret < 0) {
btrfs_tree_unlock_rw(eb, path->locks[level]);
+ path->locks[level] = 0;
return ret;
}
BUG_ON(wc->refs[level] == 0);
if (wc->refs[level] == 1) {
btrfs_tree_unlock_rw(eb, path->locks[level]);
+ path->locks[level] = 0;
return 1;
}
}
--
1.7.7.6
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] Btrfs: reset path lock state to zero
2012-12-28 9:33 [PATCH] Btrfs: reset path lock state to zero Liu Bo
@ 2012-12-28 18:32 ` Mitch Harder
2012-12-29 15:06 ` Liu Bo
0 siblings, 1 reply; 3+ messages in thread
From: Mitch Harder @ 2012-12-28 18:32 UTC (permalink / raw)
To: Liu Bo; +Cc: linux-btrfs, Slava Barinov, David Sterba
On Fri, Dec 28, 2012 at 3:33 AM, Liu Bo <bo.li.liu@oracle.com> wrote:
> We forgot to reset the path lock state to zero after we unlock the path block,
> and this can lead to the ASSERT checker in tree unlock API.
>
> Reported-by: Slava Barinov <rayslava@gmail.com>
> Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
> ---
> fs/btrfs/extent-tree.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
> index 521e9d4..a71d457 100644
> --- a/fs/btrfs/extent-tree.c
> +++ b/fs/btrfs/extent-tree.c
> @@ -6788,11 +6788,13 @@ static noinline int walk_up_proc(struct btrfs_trans_handle *trans,
> &wc->flags[level]);
> if (ret < 0) {
> btrfs_tree_unlock_rw(eb, path->locks[level]);
> + path->locks[level] = 0;
> return ret;
> }
> BUG_ON(wc->refs[level] == 0);
> if (wc->refs[level] == 1) {
> btrfs_tree_unlock_rw(eb, path->locks[level]);
> + path->locks[level] = 0;
> return 1;
> }
> }
> --
> 1.7.7.6
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
This patch seems to clear a lock WARNING I've been seeing recently.
http://permalink.gmane.org/gmane.comp.file-systems.btrfs/21692
I'm unable to generate the WARNING after applying this patch.
Thanks.
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] Btrfs: reset path lock state to zero
2012-12-28 18:32 ` Mitch Harder
@ 2012-12-29 15:06 ` Liu Bo
0 siblings, 0 replies; 3+ messages in thread
From: Liu Bo @ 2012-12-29 15:06 UTC (permalink / raw)
To: Mitch Harder; +Cc: linux-btrfs, Slava Barinov, David Sterba
On Fri, Dec 28, 2012 at 12:32:25PM -0600, Mitch Harder wrote:
> On Fri, Dec 28, 2012 at 3:33 AM, Liu Bo <bo.li.liu@oracle.com> wrote:
> > We forgot to reset the path lock state to zero after we unlock the path block,
> > and this can lead to the ASSERT checker in tree unlock API.
> >
> > Reported-by: Slava Barinov <rayslava@gmail.com>
> > Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
> > ---
> > fs/btrfs/extent-tree.c | 2 ++
> > 1 files changed, 2 insertions(+), 0 deletions(-)
> >
> > diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
> > index 521e9d4..a71d457 100644
> > --- a/fs/btrfs/extent-tree.c
> > +++ b/fs/btrfs/extent-tree.c
> > @@ -6788,11 +6788,13 @@ static noinline int walk_up_proc(struct btrfs_trans_handle *trans,
> > &wc->flags[level]);
> > if (ret < 0) {
> > btrfs_tree_unlock_rw(eb, path->locks[level]);
> > + path->locks[level] = 0;
> > return ret;
> > }
> > BUG_ON(wc->refs[level] == 0);
> > if (wc->refs[level] == 1) {
> > btrfs_tree_unlock_rw(eb, path->locks[level]);
> > + path->locks[level] = 0;
> > return 1;
> > }
> > }
> > --
> > 1.7.7.6
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> This patch seems to clear a lock WARNING I've been seeing recently.
>
> http://permalink.gmane.org/gmane.comp.file-systems.btrfs/21692
>
> I'm unable to generate the WARNING after applying this patch.
Good, they are related judging from your stack info :)
thanks,
liubo
>
> Thanks.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-12-29 15:09 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-28 9:33 [PATCH] Btrfs: reset path lock state to zero Liu Bo
2012-12-28 18:32 ` Mitch Harder
2012-12-29 15:06 ` Liu Bo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).