Shaya Potter wrote:
Shaya Potter wrote:
Weird Q.

blade12_ROOT:/mnt/test # ls 2/1/.wh.
.wh.__dir_opaque  .wh.ab

if the dir is opaque, why is a whiteout file being created?

I think its this.

        if (err) {
                if (dbstart(dentry) == 0)
                        goto out;

                err = create_whiteout(dentry, dbstart(dentry) - 1);
        } else if (dbopaque(dentry) != -1) {
/* There is a hidden lower-priority file with the same name. */
                err = create_whiteout(dentry, dbopaque(dentry));
        } else {
                err = create_whiteout(dentry, dbstart(dentry));
        }

what's with that last create_whiteout() ?

I've switched that last create_whiteout() w/ a goto out; and it seems to behave correctly (deletes, but doesn't create whiteout in dir where it shouldn't, but haven't really tested it fully yet

I believe there's a similiar situation w/ rmdir() where it creates whiteouts when it doesn't need to.

I've implemented this and the optimization I described 2 days ago, the results in postmark are great! (only have unoptimized and optimized on nfs, getting 6 sets of numbers, ext3, plain unionfs on ext3, optimized unionfs on ext3, nfs, plain unionfs on nfs, and optimized unionfs on nfs).

I'll post those and my ugly quick and dirty patch when they are finished running. Will take a couple of hours.
_______________________________________________
unionfs mailing list
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs

Reply via email to