so this is what I killed my weekend (until 10 minutes ago) on trying to
debug.
unionfs_d_revalidate
if parent needs to be revalidate
locks parent
calling d_parent->d_op->revalidate
which is unionfs_d_revalidate_wrap
unionfs_d_revalidate_wrap starts off by trying to lock the dentry.
boom, deadlock.
--- dentry.c.old 2005-10-10 20:23:10.000000000 +0000
+++ dentry.c 2005-10-10 20:23:22.000000000 +0000
@@ -77,15 +77,12 @@
unlock_super(dentry->d_sb);
locked = 0;
/* We must be locked before our parent. */
- lock_dentry(dentry->d_parent);
if (!
(dentry->d_parent->d_op->
d_revalidate(dentry->d_parent, nd))) {
- unlock_dentry(dentry->d_parent);
invalid = 1;
goto out;
}
- unlock_dentry(dentry->d_parent);
restart = 1;
goto restart;
}
now a different bug rears its ugly head
ASSERTION FAILED: stopd(sb)->usi_firstputmap <= generation
at /root/unionfs-sparse/commonfops.c:36 (branchput_gen)
digging in I go.
_______________________________________________
unionfs mailing list
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs