Re: [BUG] delayed inodes and reflinks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On tue, 05 Jul 2011 15:25:12 +0200, Jan Schmidt wrote:
> I hit this bug an hour ago while executing some cp --reflink:
> 
> Jul  5 13:54:02 oglaroon kernel: [ 2654.545244] ------------[ cut here
> ]------------
> Jul  5 13:54:02 oglaroon kernel: [ 2654.600508] kernel BUG at
> fs/btrfs/delayed-inode.c:1637!
[SNIP]
> Jul  5 13:54:02 oglaroon kernel: [ 2656.485403] Call Trace:
> Jul  5 13:54:02 oglaroon kernel: [ 2656.514742]  [<ffffffffa01db4de>]
> btrfs_update_inode+0x3e/0x150 [btrfs]
> Jul  5 13:54:02 oglaroon kernel: [ 2656.593884]  [<ffffffffa0209160>]
> btrfs_ioctl_clone+0x9e0/0xca0 [btrfs]
> Jul  5 13:54:02 oglaroon kernel: [ 2656.673022]  [<ffffffff81151f00>] ?
> might_fault+0x40/0xa0
> Jul  5 13:54:02 oglaroon kernel: [ 2656.737613]  [<ffffffffa0209b05>]
> btrfs_ioctl+0x335/0xf70 [btrfs]
> Jul  5 13:54:02 oglaroon kernel: [ 2656.810612]  [<ffffffff81151f57>] ?
> might_fault+0x97/0xa0
> Jul  5 13:54:02 oglaroon kernel: [ 2656.875198]  [<ffffffff81151f0e>] ?
> might_fault+0x4e/0xa0
> Jul  5 13:54:02 oglaroon kernel: [ 2656.939782]  [<ffffffff81859006>] ?
> _raw_spin_unlock+0x26/0x30
> Jul  5 13:54:02 oglaroon kernel: [ 2657.009567]  [<ffffffff8117fcd3>] ?
> cp_new_stat+0xf3/0x110
> Jul  5 13:54:02 oglaroon kernel: [ 2657.075325]  [<ffffffff8118cb5c>]
> do_vfs_ioctl+0x9c/0x560
> Jul  5 13:54:02 oglaroon kernel: [ 2657.139982]  [<ffffffff818607ac>] ?
> sysret_check+0x27/0x62
> Jul  5 13:54:02 oglaroon kernel: [ 2657.205604]  [<ffffffff8118d0b9>]
> sys_ioctl+0x99/0xa0
> Jul  5 13:54:02 oglaroon kernel: [ 2657.266133]  [<ffffffff8186077b>]
> system_call_fastpath+0x16/0x1b
> Jul  5 13:54:02 oglaroon kernel: [ 2657.337995] Code: f8 05 00 00 8d 0c
> 49 48 89 ca 48 89 4d c8 e8 c8 c7 f9 ff 85 c0 48 8b 4d c8 75 10 48 89 4b
> 08 e9 3d ff ff ff 0f 1f 80 00 00 00 00 <0f> 0b eb fe 66 66 66 2e 0f 1f
> 84 00 00 00 00 00 55 48 89 e5 41
> Jul  5 13:54:02 oglaroon kernel: [ 2657.570642] RIP
> [<ffffffffa0222490>] btrfs_delayed_update_inode+0x120/0x130 [btrfs]
> Jul  5 13:54:02 oglaroon kernel: [ 2657.663516]  RSP <ffff88023010dbd8>
> Jul  5 13:54:02 oglaroon kernel: [ 2657.705561] ---[ end trace
> 0ae6cc23c8022b5b ]---
> 
> I was testing some completely different modifications I made myself, but
> I'm quite certain that my changes did not trigger this error. With the
> fs I could reproducably get to this bug by creating 10 reflinks of a
> certain file in a shell loop.
> 
> I lost the file system while trying to setup a clean, tight test case.
> The fs I used had something like 50 files, some reflinks and a snapshot
> with some files deleted. The tree had explicit backrefs and shared backrefs.
> 
> Anyway, I could not setup a new file system triggering this bug. The
> line that triggered is the BUG_ON in btrfs_delayed_update_inode (line
> 1693 in for-linus branch). We seem to have missed some reservation in
> some special case. The patch Miao sent some days ago does not
> interrelate at first sight.

I think you are right. btrfs_ioctl_clone() didn't reserve enough space because
we need reserve space for 3 items at least not 1 item:

  1 for old extents that will be dropped(in the some case, we may need more)
  1 for the new extent
  1 for the i-node

Maybe we need search the fs tree and find how many old extent need be dropped
and then reserve free space accurately

Thanks
Miao

> 
> If I get back to a situation where I can reproduce the bug, I'll send a
> follow up.
> 
> -Jan
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux