[Unionfs] Kernel panic

Erez Zadok ezk at cs.sunysb.edu
Thu Nov 1 00:40:56 EDT 2007


In message <200710301608.36903.fapg-unionfs at eurotux.com>, "Fernando A. P. Gomes" writes:
> Hi,
> 
> Have you reproduced the bug with the image that I send you?
> 
> Regards,
> Fernando Gomes

Fernando, I believe this patch will fix your bug.  It worked for me w/ your
livecd.  Please try this on top of 2.1.7 and let me know.

Cheers,
Erez.


diff --git a/fs/unionfs/debug.c b/fs/unionfs/debug.c
index 894bf7c..0066ccd 100644
--- a/fs/unionfs/debug.c
+++ b/fs/unionfs/debug.c
@@ -49,6 +49,9 @@ void __unionfs_check_inode(const struct inode *inode,
 	sb = inode->i_sb;
 	istart = ibstart(inode);
 	iend = ibend(inode);
+	/* don't check inode if no lower branches */
+	if (istart < 0 && iend < 0)
+		return;
 	if (unlikely(istart > iend)) {
 		PRINT_CALLER(fname, fxn, line);
 		pr_debug(" Ci0: inode=%p istart/end=%d:%d\n",
@@ -221,6 +224,9 @@ check_inode:
 		return;
 	istart = ibstart(inode);
 	iend = ibend(inode);
+	/* don't check inode if no lower branches */
+	if (istart < 0 && iend < 0)
+		return;
 	BUG_ON(istart > iend);
 	if (unlikely((istart == -1 && iend != -1) ||
 		     (istart != -1 && iend == -1))) {


More information about the unionfs mailing list