linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Josef Bacik <josef@redhat.com>
To: Marco Neubauer <icetea1@gmx.net>
Cc: linux-btrfs@vger.kernel.org
Subject: Re: kernel BUG at fs/btrfs/inode.c:2271!
Date: Mon, 23 May 2011 15:14:15 -0400	[thread overview]
Message-ID: <4DDAB207.6060500@redhat.com> (raw)
In-Reply-To: <63FD432D-9173-40E4-9A82-711C8C625B0E@gmx.net>

On 05/22/2011 07:13 AM, Marco Neubauer wrote:
> 
> Am 03.05.2011 um 16:54 schrieb Josef Bacik:
> 
>> On 04/27/2011 02:52 PM, Marco Neubauer wrote:
>>> Hi,
>>>
>>> this is happening mostly every night. I can't reproduce it right now.
>>> vanilla kernel 2.6.38.4
>>>
>>
>> Can you update to a newer kernel, this should be fixed there.  Thanks,
> 
> It's happening again.
> 
> ------------[ cut here ]------------
> WARNING: at fs/btrfs/inode.c:2394 btrfs_orphan_cleanup+0x1fe/0x3b0()
> Hardware name: System Product Name
> Modules linked in: w83627ehf hwmon_vid coretemp md4 cifs vboxnetadp vboxnetflt vboxdrv firewire_ohci firewire_core i915 asus_atk0110 hwmon drm_kms_helper video backlight
> Pid: 12355, comm: updatedb Not tainted 2.6.39 #1
> Call Trace:
> [<ffffffff8103f16b>] ? warn_slowpath_common+0x7b/0xc0
> [<ffffffff81250fee>] ? btrfs_orphan_cleanup+0x1fe/0x3b0
> [<ffffffff812509a3>] ? btrfs_iget+0x53/0x4a0
> [<ffffffff812515b8>] ? btrfs_lookup_dentry+0x418/0x490
> [<ffffffff81251639>] ? btrfs_lookup+0x9/0x20
> [<ffffffff810f7e3c>] ? d_alloc_and_lookup+0x3c/0x90
> [<ffffffff81102a6e>] ? d_lookup+0x2e/0x60
> [<ffffffff810f98db>] ? do_lookup+0xcb/0x2b0
> [<ffffffff810f9c0b>] ? path_init+0x14b/0x3d0
> [<ffffffff810fbf74>] ? path_lookupat+0x154/0x750
> [<ffffffff810f99f0>] ? do_lookup+0x1e0/0x2b0
> [<ffffffff810fc59c>] ? do_path_lookup+0x2c/0xd0
> [<ffffffff810f8776>] ? getname_flags+0x126/0x260
> [<ffffffff810fd31c>] ? user_path_at+0x5c/0xc0
> [<ffffffff810fc59c>] ? do_path_lookup+0x2c/0xd0
> [<ffffffff810f1f50>] ? cp_new_stat+0xe0/0x100
> [<ffffffff810f2053>] ? vfs_fstatat+0x43/0x80
> [<ffffffff810f211f>] ? sys_newlstat+0x1f/0x50
> [<ffffffff8169e47b>] ? system_call_fastpath+0x16/0x1b
> ---[ end trace dfa7e3e0b20f3e13 ]---
> ------------[ cut here ]------------
> kernel BUG at fs/btrfs/inode.c:2285!
> invalid opcode: 0000 [#1] PREEMPT SMP 
> last sysfs file: /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
> CPU 0 
> Modules linked in: w83627ehf hwmon_vid coretemp md4 cifs vboxnetadp vboxnetflt vboxdrv firewire_ohci firewire_core i915 asus_atk0110 hwmon drm_kms_helper video backlight
> 
> Pid: 12355, comm: updatedb Tainted: G        W   2.6.39 #1 System manufacturer System Product Name/V-P5G45
> RIP: 0010:[<ffffffff8124b8e6>]  [<ffffffff8124b8e6>] btrfs_orphan_del+0xe6/0xf0
> RSP: 0018:ffff880186b81ab8  EFLAGS: 00010282
> RAX: 00000000fffffffe RBX: ffff88007e72ed40 RCX: 0000000000d14404
> RDX: 0000000000d14400 RSI: 00000000000199b0 RDI: ffffea0007a2c310
> RBP: 0000000000000000 R08: ffffffff8127b4b8 R09: 000000000000021f
> R10: 0000000000000047 R11: 0000000000000000 R12: ffff8801eae47640
> R13: ffff88022dee5800 R14: ffff88022dee5b30 R15: 0000000000000001
> FS:  00007feb837fe700(0000) GS:ffff88022fc00000(0000) knlGS:0000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> CR2: 000000000310b011 CR3: 0000000183fb6000 CR4: 00000000000406f0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> Process updatedb (pid: 12355, threadinfo ffff880186b80000, task ffff88021537c060)
> Stack:
> ffff880100da2158 ffff88022dee5800 ffff88022e80e900 ffff88022dee5b30
> ffff88022dee5b38 ffff880186b81b58 ffff880186b81b18 ffffffff8125104b
> ffff880186b80010 ffff88007e72ed40 ffff8801eae47640 00000000159e523f
> Call Trace:
> [<ffffffff8125104b>] ? btrfs_orphan_cleanup+0x25b/0x3b0
> [<ffffffff812509a3>] ? btrfs_iget+0x53/0x4a0
> [<ffffffff812515b8>] ? btrfs_lookup_dentry+0x418/0x490
> [<ffffffff81251639>] ? btrfs_lookup+0x9/0x20
> [<ffffffff810f7e3c>] ? d_alloc_and_lookup+0x3c/0x90
> [<ffffffff81102a6e>] ? d_lookup+0x2e/0x60
> [<ffffffff810f98db>] ? do_lookup+0xcb/0x2b0
> [<ffffffff810f9c0b>] ? path_init+0x14b/0x3d0
> [<ffffffff810fbf74>] ? path_lookupat+0x154/0x750
> [<ffffffff810f99f0>] ? do_lookup+0x1e0/0x2b0
> [<ffffffff810fc59c>] ? do_path_lookup+0x2c/0xd0
> [<ffffffff810f8776>] ? getname_flags+0x126/0x260
> [<ffffffff810fd31c>] ? user_path_at+0x5c/0xc0
> [<ffffffff810fc59c>] ? do_path_lookup+0x2c/0xd0
> [<ffffffff810f1f50>] ? cp_new_stat+0xe0/0x100
> [<ffffffff810f2053>] ? vfs_fstatat+0x43/0x80
> [<ffffffff810f211f>] ? sys_newlstat+0x1f/0x50
> [<ffffffff8169e47b>] ? system_call_fastpath+0x16/0x1b
> Code: 4c 8b 6c 24 20 4c 8b 74 24 28 4c 8b 7c 24 30 48 83 c4 38 c3 90 48 8b 93 a8 00 00 00 4c 89 ee 4c 89 e7 e8 5e fb 02 00 85 c0 74 b8 <0f> 0b eb fe 66 0f 1f 44 00 00 53 48 8d 86 38 03 00 00 48 89 f3 
> RIP  [<ffffffff8124b8e6>] btrfs_orphan_del+0xe6/0xf0
> RSP <ffff880186b81ab8>
> ---[ end trace dfa7e3e0b20f3e14 ]---
> 
> # btrfs fi show
> Label: 'ROOT'  uuid: 0292b87e-84b3-457f-abae-c2eb03e9d08e
> 	Total devices 1 FS bytes used 15.73GB
> 	devid    1 size 111.67GB used 49.79GB path /dev/sdc2
> 
> Label: 'DATA'  uuid: 07f62881-5cc4-4f8f-b304-7e7a3aae4adc
> 	Total devices 1 FS bytes used 572.87GB
> 	devid    1 size 592.25GB used 592.25GB path /dev/md1
> 
> Btrfs Btrfs v0.19
> 
> 
> # btrfs sub list /
> ID 267 top level 5 path subvol/home
> 
> # btrfs sub list /var/
> ID 643 top level 5 path subvol/tmp
> ID 644 top level 5 path subvol/var
> ID 730 top level 5 path subvol/homedata
> 
> # mount
> /dev/root on / type btrfs (rw,relatime,compress=zlib,ssd,discard,space_cache)
> /dev/sdc2 on /home type btrfs (rw,subvolid=267,compress,space_cache,ssd,discard)
> /dev/md1 on /homedata type btrfs (rw,subvolid=730,compress,space_cache)
> /dev/md1 on /tmp type btrfs (rw,subvolid=643,compress,space_cache)
> /dev/md1 on /var type btrfs (rw,subvolid=644,compress,space_cache)
> 

Can you apply this patch and reproduce and send me the output so I can
figure
out whats going wrong?  Thanks,

Josef


diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index dc8fb2b..319728b 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -2314,6 +2314,8 @@ int btrfs_orphan_cleanup(struct btrfs_root *root)
 	key.offset = (u64)-1;

 	while (1) {
+		int new;
+
 		ret = btrfs_search_slot(NULL, root, &key, path, 0, 0);
 		if (ret < 0)
 			goto out;
@@ -2340,6 +2342,9 @@ int btrfs_orphan_cleanup(struct btrfs_root *root)
 		if (btrfs_key_type(&found_key) != BTRFS_ORPHAN_ITEM_KEY)
 			break;

+		printk(KERN_ERR "found orphan item for %llu on %llu\n",
+		       found_key.offset, root->root_key.objectid);
+
 		/* release the path since we're done with it */
 		btrfs_release_path(root, path);

@@ -2351,11 +2356,13 @@ int btrfs_orphan_cleanup(struct btrfs_root *root)
 		found_key.objectid = found_key.offset;
 		found_key.type = BTRFS_INODE_ITEM_KEY;
 		found_key.offset = 0;
-		inode = btrfs_iget(root->fs_info->sb, &found_key, root, NULL);
+		inode = btrfs_iget(root->fs_info->sb, &found_key, root, &new);
 		if (IS_ERR(inode)) {
 			ret = PTR_ERR(inode);
 			goto out;
 		}
+		printk(KERN_ERR "lookup of inode was%s from disk",
+		       new ? "" : " not");

 		/*
 		 * add this inode to the orphan list so btrfs_orphan_del does
@@ -2372,6 +2379,7 @@ int btrfs_orphan_cleanup(struct btrfs_root *root)
 		 * do a destroy_inode
 		 */
 		if (is_bad_inode(inode)) {
+			printk(KERN_ERR "%llu is a bad inode\n", inode->i_ino);
 			trans = btrfs_start_transaction(root, 0);
 			if (IS_ERR(trans)) {
 				ret = PTR_ERR(trans);
@@ -2386,6 +2394,8 @@ int btrfs_orphan_cleanup(struct btrfs_root *root)
 		/* if we have links, this was a truncate, lets do that */
 		if (inode->i_nlink) {
 			if (!S_ISREG(inode->i_mode)) {
+				printk(KERN_ERR "file mode is %lu, nlink is "
+				       "%lu\n", inode->i_mode, inode->i_nlink);
 				WARN_ON(1);
 				iput(inode);
 				continue;

  reply	other threads:[~2011-05-23 19:14 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-27 18:52 kernel BUG at fs/btrfs/inode.c:2271! Marco Neubauer
2011-05-03 14:54 ` Josef Bacik
2011-05-22 11:13   ` Marco Neubauer
2011-05-23 19:14     ` Josef Bacik [this message]
2011-05-24 18:55       ` Marco Neubauer
2011-05-25 19:25         ` Josef Bacik
2011-05-27 19:23           ` Marco Neubauer
2011-05-27 20:18             ` Josef Bacik

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=4DDAB207.6060500@redhat.com \
    --to=josef@redhat.com \
    --cc=icetea1@gmx.net \
    --cc=linux-btrfs@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).