aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2011-06-25 21:37:18 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2011-07-20 01:43:56 -0400
commit407938e79edcadba1b5a17cf928584d8a191a8d7 (patch)
tree2d8abfe7d1fb12e6c28370ab44c77516d7b2f3a1
parentdd7dd556e45133ef13f2c4bddc0e0b1ac23bc0e4 (diff)
LOOKUP_CREATE and LOOKUP_RENAME_TARGET can be set only on the last step
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--fs/cifs/dir.c6
-rw-r--r--fs/fat/namei_vfat.c6
-rw-r--r--fs/jfs/namei.c6
3 files changed, 6 insertions, 12 deletions
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
index 8766149f6300..251c2ca569d3 100644
--- a/fs/cifs/dir.c
+++ b/fs/cifs/dir.c
@@ -663,10 +663,8 @@ cifs_d_revalidate(struct dentry *direntry, struct nameidata *nd)
663 * case sensitive name which is specified by user if this is 663 * case sensitive name which is specified by user if this is
664 * for creation. 664 * for creation.
665 */ 665 */
666 if (!(nd->flags & (LOOKUP_CONTINUE | LOOKUP_PARENT))) { 666 if (nd->flags & (LOOKUP_CREATE | LOOKUP_RENAME_TARGET))
667 if (nd->flags & (LOOKUP_CREATE | LOOKUP_RENAME_TARGET)) 667 return 0;
668 return 0;
669 }
670 668
671 if (time_after(jiffies, direntry->d_time + HZ) || !lookupCacheEnabled) 669 if (time_after(jiffies, direntry->d_time + HZ) || !lookupCacheEnabled)
672 return 0; 670 return 0;
diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c
index 20b4ea53fdc4..bb3f29c3557b 100644
--- a/fs/fat/namei_vfat.c
+++ b/fs/fat/namei_vfat.c
@@ -82,10 +82,8 @@ static int vfat_revalidate_ci(struct dentry *dentry, struct nameidata *nd)
82 * case sensitive name which is specified by user if this is 82 * case sensitive name which is specified by user if this is
83 * for creation. 83 * for creation.
84 */ 84 */
85 if (!(nd->flags & (LOOKUP_CONTINUE | LOOKUP_PARENT))) { 85 if (nd->flags & (LOOKUP_CREATE | LOOKUP_RENAME_TARGET))
86 if (nd->flags & (LOOKUP_CREATE | LOOKUP_RENAME_TARGET)) 86 return 0;
87 return 0;
88 }
89 87
90 return vfat_revalidate_shortname(dentry); 88 return vfat_revalidate_shortname(dentry);
91} 89}
diff --git a/fs/jfs/namei.c b/fs/jfs/namei.c
index eaaf2b511e89..7a2e8e5152fd 100644
--- a/fs/jfs/namei.c
+++ b/fs/jfs/namei.c
@@ -1624,10 +1624,8 @@ static int jfs_ci_revalidate(struct dentry *dentry, struct nameidata *nd)
1624 * case sensitive name which is specified by user if this is 1624 * case sensitive name which is specified by user if this is
1625 * for creation. 1625 * for creation.
1626 */ 1626 */
1627 if (!(nd->flags & (LOOKUP_CONTINUE | LOOKUP_PARENT))) { 1627 if (nd->flags & (LOOKUP_CREATE | LOOKUP_RENAME_TARGET))
1628 if (nd->flags & (LOOKUP_CREATE | LOOKUP_RENAME_TARGET)) 1628 return 0;
1629 return 0;
1630 }
1631 return 1; 1629 return 1;
1632} 1630}
1633 1631