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