diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2011-06-25 21:37:18 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2011-07-20 01:43:56 -0400 |
commit | 407938e79edcadba1b5a17cf928584d8a191a8d7 (patch) | |
tree | 2d8abfe7d1fb12e6c28370ab44c77516d7b2f3a1 | |
parent | dd7dd556e45133ef13f2c4bddc0e0b1ac23bc0e4 (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.c | 6 | ||||
-rw-r--r-- | fs/fat/namei_vfat.c | 6 | ||||
-rw-r--r-- | fs/jfs/namei.c | 6 |
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 | ||