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