Am Dienstag, 26. Juni 2012 schrieb Liu Bo:
> On 06/26/2012 06:18 AM, David Sterba wrote:
> > 3756 if (root->fs_info->log_root_recovering) {
> > 3757 BUG_ON(!test_bit(BTRFS_INODE_HAS_ORPHAN_ITEM,
> > 3758 &BTRFS_I(inode)->runtime_flags));
> > 3759 goto no_delete;
> > 3760 }
> >
> > and it happened during log replay, as you found already, fixable by
> > running the zero-log utility. Another way is to mount read-only, this
> > skips log replay.
> >
> > I think there could be a logic error, as this probably happens only
> > during log replay when the orphan bit is not in sync with link count,
> > but I saw that this should be handled in the fixup_inode_link_counts
> > call path. CCing Josef, if he has an idea.
>
> It is a logic error, but mostly a finger wrong from Josef IMO... :)
>
> I'll send a patch for it.
Thanks for looking into it.
Since my BTRFS is up and running again I can´t test a patch easily however.
I´d have to unplug the disk or crash my laptop several times to trigger it
again I bet.
--
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7
--
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