commit 0888cc263d2b111ac5b3d1495c6374cd3190212f
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 077dfb3..d7c3402 100644
--- a/fs/unionfs/dirhelper.c
+++ b/fs/unionfs/dirhelper.c
@@ -315,10 +315,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);
@@ -422,6 +422,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