[for,4.6] btrfs: disable a spurious WARN_ON in btrfs_destroy_inode.
diff mbox

Message ID 20160511182947.GB6423@angband.pl
State New
Headers show

Commit Message

Adam Borowski May 11, 2016, 6:29 p.m. UTC
This happens a lot on real-world loads.  The issue is apparently benign,
as unsaved pending checksums are moot when the ship^Winode is going down
anyway.  Thus, no need to cause panic in users.

I've retained the warning in CONFIG_BTRFS_ASSERT builds, as this shouldn't
happen.  I've replaced the no longer helpful register+stack dump with a
printk that mentions the device affected.

Signed-off-by: Adam Borowski <kilobyte@angband.pl>
---
 fs/btrfs/inode.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--
2.8.1
--
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

Comments

Josef Bacik May 11, 2016, 8:17 p.m. UTC | #1
On 05/11/2016 11:29 AM, Adam Borowski wrote:
> This happens a lot on real-world loads.  The issue is apparently benign,
> as unsaved pending checksums are moot when the ship^Winode is going down
> anyway.  Thus, no need to cause panic in users.
>
> I've retained the warning in CONFIG_BTRFS_ASSERT builds, as this shouldn't
> happen.  I've replaced the no longer helpful register+stack dump with a
> printk that mentions the device affected.
>

Chris is working on fixing the problem, and these are real issues, we 
need to not hide them behind config options.  Thanks,

Josef

--
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

Patch
diff mbox

diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 2aaba58..ed78104 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -9258,7 +9258,10 @@  void btrfs_destroy_inode(struct inode *inode)
 	WARN_ON(BTRFS_I(inode)->outstanding_extents);
 	WARN_ON(BTRFS_I(inode)->reserved_extents);
 	WARN_ON(BTRFS_I(inode)->delalloc_bytes);
-	WARN_ON(BTRFS_I(inode)->csum_bytes);
+#ifdef CONFIG_BTRFS_ASSERT
+	if (BTRFS_I(inode)->csum_bytes)
+		btrfs_info(root->fs_info, "btrfs_destroy_inode: leftover csum_bytes");
+#endif
 	WARN_ON(BTRFS_I(inode)->defrag_bytes);
 
 	/*