Hi Slava, David,

I've sent a patch to fix the bug(Cced you), could you please check if it
works? :)

thanks,
liubo


On Thu, Dec 27, 2012 at 02:24:37PM +0100, David Sterba wrote:
> On Thu, Dec 27, 2012 at 04:07:31PM +0800, Liu Bo wrote:
> > On Thu, Dec 27, 2012 at 08:27:11AM +0400, Slava Barinov wrote:
> > >   And there's nothing in dmesg that could help user to understand what
> > > happened. I've lost about ten minutes trying to understand what does
> > > it want from me.
> >Could you please show me what line does 'walk_down_proc+0x2b0/0x2e0 [btrfs]'
> > refer to?
> 
> It's
> 
> 6578         if (path->locks[level] && level > 0) {
> 6579                 btrfs_tree_unlock_rw(eb, path->locks[level]);
> ^^^^
> 6580                 path->locks[level] = 0;
> 6581         }
> 6582         return 0;
> 
> which calls btrfs_tree_unlock() and hits the
> 
> 241 void btrfs_tree_unlock(struct extent_buffer *eb)
> 242 {
> 243         int blockers = atomic_read(&eb->blocking_writers);
> 244
> 245         BUG_ON(blockers > 1);
> 246
> 247         btrfs_assert_tree_locked(eb);
> 
> ->
> 
> 263 void btrfs_assert_tree_locked(struct extent_buffer *eb)
> 264 {
> 265         BUG_ON(!atomic_read(&eb->write_locks));
> 266 }
> 
> 
> david
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to