commit 2fdb5d1202518dcc6c70e2eac473d958fd460617
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Sat Jul 21 02:38:14 2007 -0400

    Unionfs: branch-management bugfix to unionfs_file_revalidate
    
    If we re-opened the file on a different branch than the original one, and
    only if this was due to a new branch inserted, then update the mnt counts of
    the old and new branches accordingly.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

diff --git a/fs/unionfs/commonfops.c b/fs/unionfs/commonfops.c
index f6f7dea..baa6a37 100644
--- a/fs/unionfs/commonfops.c
+++ b/fs/unionfs/commonfops.c
@@ -370,11 +370,12 @@ int unionfs_file_revalidate(struct file *file, int 
willwrite)
                                goto out;
                        new_brid = UNIONFS_F(file)->
                          saved_branch_ids[fbstart(file)];
-                       if (new_brid != orig_brid) {
+                       if (new_brid != orig_brid && sbgen > fgen) {
                                /*
                                 * If we re-opened the file on a different
-                                * branch than the original one, then update
-                                * the mnt counts of the old and new
+                                * branch than the original one, and this
+                                * was due to a new branch inserted, then
+                                * update the mnt counts of the old and new
                                 * branches accordingly.
                                 */
                                unionfs_mntget(dentry, bstart); /* new branch */
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs

Reply via email to