commit bc2c2f2956e73a3aae921bd60832d320edd07d8b
Author: Yiannis Pericleous <[EMAIL PROTECTED]>
Date:   Fri Apr 6 15:44:10 2007 -0400

    bug fix where creating dir caches would go on a loop when out of space

diff --git a/fs/unionfs/dirhelper.c b/fs/unionfs/dirhelper.c
index aeec6fe..d9872af 100644
--- a/fs/unionfs/dirhelper.c
+++ b/fs/unionfs/dirhelper.c
@@ -732,10 +732,10 @@ retry:
        
        i_odf = d_odf->d_inode;
        
-       /* compare mtimes, do not proceed if equal */
-       if (i_odf && i_odf->i_size) { 
+       /* compare mtimes, do not proceed if equal, do not check if retrying 
after -ENOSPC */
+       if (i_odf && i_odf->i_size && !cleaned) { 
                if(timespec_compare(&i_odf->i_mtime,mtime) >= 0)
-                       goto out;       
+                       goto out;
        }
        dget(d_odf);
        mntget(UNIONFS_SB(sb)->odf->mnt);
@@ -839,6 +839,7 @@ out:
 
        if (odf_file)
                filp_close(odf_file, NULL);
+       odf_file = NULL;
 
        odf_unlock(UNIONFS_SB(sb)->odf->odi_ic);
        unionfs_read_unlock(sb);
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs

Reply via email to