]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/fat/namei_vfat.c
fat: Kill d_invalidate() in vfat_lookup()
[linux-2.6-omap-h63xx.git] / fs / fat / namei_vfat.c
index d585398f9f6b4309817c534eaf28b03afb01b279..bf326d4356a3347ff9a143328cbef11c01792213 100644 (file)
@@ -745,13 +745,12 @@ static struct dentry *vfat_lookup(struct inode *dir, struct dentry *dentry,
                 *
                 * Switch to new one for reason of locality if possible.
                 */
-               if (d_invalidate(alias) == 0)
-                       dput(alias);
-               else {
-                       iput(inode);
-                       unlock_super(sb);
-                       return alias;
-               }
+               BUG_ON(d_unhashed(alias));
+               if (!S_ISDIR(inode->i_mode))
+                       d_move(alias, dentry);
+               iput(inode);
+               unlock_super(sb);
+               return alias;
        }
 out:
        unlock_super(sb);