Unionfs: fix oops bug in file_revalidate
authorErez Zadok <ezk@cs.sunysb.edu>
Tue, 16 Aug 2011 23:40:12 +0000 (19:40 -0400)
committerErez Zadok <ezk@cs.sunysb.edu>
Tue, 16 Aug 2011 23:40:12 +0000 (19:40 -0400)
Reverses commit "3e9b8b599aa6832e464f86872ca37840090de630" (in unionfs-3.1
tree) which did this:

   ``Unionfs: revalidate files which are open but unlinked

   Need to re-open the file if the starting dentry is on a higher priority
   branch than the currently opened file (which could happen when we ftruncate
   an opened, but unlinked file).''

That fix caused oopses in file_revalidate for some people.  So, I'm
reversing that old fix: it's possible that bug is already fixed thanks to
other code changes.  If not, we'll need to test and fix revalidation of
open/unlinked files differently and carefully.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
fs/unionfs/commonfops.c

index 0a271f44da2633d0d63a7e156f6c88179fdf9176..cd5c3048a39ed9778136f5781ec35f39f80157d1 100644 (file)
@@ -312,7 +312,7 @@ static int __unionfs_file_revalidate(struct file *file, struct dentry *dentry,
         * someone has copied up this file from underneath us, we also need
         * to refresh things.
         */
-       if ((d_deleted(dentry) && dbstart(dentry) >= fbstart(file)) ||
+       if (d_deleted(dentry) ||
            (sbgen <= fgen &&
             dbstart(dentry) == fbstart(file) &&
             unionfs_lower_file(file)))