it seems that branch manipulation and unionfs_file_revalidate can race
from unionfs_file_revalidate
-----------
if (!unionfs_d_revalidate(dentry, 0) && !d_deleted(dentry)) {
err = -ESTALE;
goto out;
}
fist_print_dentry("file revalidate in", dentry);
sb = dentry->d_sb;
PASSERT(sb);
sbgen = atomic_read(&stopd(sb)->usi_generation);
dgen = atomic_read(&dtopd(dentry)->udi_generation);
fgen = atomic_read(&ftopd(file)->ufi_generation);
if (sbgen > dgen) {
FISTBUG("The dentry is not up to date!\n");
}
------------
if the branch structure would change somewhere between udi_generation
being set and usi_generation being read, one would hit this FISTBUG
(which I just did).
_______________________________________________
unionfs mailing list
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs