From: Miao Xie <miaox@cn.fujitsu.com>
To: Jan Schmidt <list.btrfs@jan-o-sch.net>
Cc: linux-btrfs <linux-btrfs@vger.kernel.org>
Subject: Re: [BUG] delayed inodes and reflinks
Date: Wed, 06 Jul 2011 10:15:25 +0800 [thread overview]
Message-ID: <4E13C53D.7000201@cn.fujitsu.com> (raw)
In-Reply-To: <4E1310B8.40706@jan-o-sch.net>
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@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
prev parent reply other threads:[~2011-07-06 2:15 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-05 13:25 [BUG] delayed inodes and reflinks Jan Schmidt
2011-07-06 2:15 ` Miao Xie [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E13C53D.7000201@cn.fujitsu.com \
--to=miaox@cn.fujitsu.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=list.btrfs@jan-o-sch.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.