On 07/18/2014 03:51 AM, Martin Steigerwald wrote:
> Am Dienstag, 15. Juli 2014, 09:21:40 schrieb Chris Mason:
>> On 07/14/2014 05:58 PM, Martin Steigerwald wrote:
>>> Am Montag, 14. Juli 2014, 16:12:22 schrieb Chris Mason:
>>>> On 07/14/2014 11:10 AM, Martin Steigerwald wrote:
>>>>> Am Montag, 14. Juli 2014, 17:04:22 schrieben Sie:
>>>>>> Hi!
>>>>>>
>>>>>> While with 3.16-rc3 and rc4 I didn´t have a BTRFS hang in several days
>>>>>> of
>>>>>> usage, with 3-16-rc5 I had a hang again. Less than a hour since booting
>>>>>> it.
>>>>>>
>>>>>> Since the hang bug I and others had with 3.15 and upto 3.16-rc2 usually
>>>>>> didn´t happen that quickly after boot and since backtrace looks a bit
>>>>>> different from what I have in memory, I post this in a new thread.
>>>>>> See thread "Blocked tasks on 3.15.1" for a discussion of previous hang
>>>>>> issues.
>>>>>
>>>>> Probably good to add some basic information on the filesystem:
>>>> Do you have compression enabled?  I wasn't able to nail down the 3.15.1
>>>> hang before vacation attacked me, but I'm hoping to track it down today.
>>>
>>> Yes. I have.
>>>
>>> It just hung again while I was playing PlaneShift.
>>>
>>> Back to 3.16-rc4 as rc5 seems to be broke here.
>>
>> The btrfs hang you're hitting goes back to 3.15.  So 3.16-rc4 vs rc5
>> shouldn't be a factor.  Are you hitting other problems with 3.16?
> 
> On this system it is a matter.
> 
> 3.16-rc5: Two hangs in one day
> 
> 3.16-rc4: No hang so far with three days uptime (well with hibernation cycles 
> in between)
> 
> So easy observation for me: 3.16-rc4 fine, 3.16-rc5 broke.

Can you please try this patch on rc5 and look for the printk:

diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 3668048..8ab56df 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -8157,6 +8157,13 @@ void btrfs_destroy_inode(struct inode *inode)
                spin_unlock(&root->fs_info->ordered_root_lock);
        }
 
+       spin_lock(&root->fs_info->ordered_root_lock);
+       if (!list_empty(&BTRFS_I(inode)->ordered_operations)) {
+               list_del_init(&BTRFS_I(inode)->ordered_operations);
+printk(KERN_CRIT "racing inode deletion with ordered operations!!!!!!!!!!!\n");
+       }
+       spin_unlock(&root->fs_info->ordered_root_lock);
+
        if (test_bit(BTRFS_INODE_HAS_ORPHAN_ITEM,
                     &BTRFS_I(inode)->runtime_flags)) {
                btrfs_info(root->fs_info, "inode %llu still on the orphan list",
--
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