[Devel] [PATCH rh7] fs: drop LOOKUP_STRICT
Konstantin Khorenko
khorenko at virtuozzo.com
Mon Jun 22 03:47:32 PDT 2015
On 06/21/2015 06:38 PM, Vladimir Davydov wrote:
> In RH6 LOOKUP_STRICT means "do not follow symlinks or mounts". Initially
> this was introduced for the sake of vefs, which was dropped in RH7.
And what about simfs? Or even bindmounts which will be instead of it.
> However, it was also used for pfcache lookups. The latter looks
> meaningless, because pfcache shouldn't have symlinks or submounts in it,
> but even if it does, it pfcache lookup w/o LOOKUP_STRICT won't lead to
> anything bad. So instead of porting LOOKUP_STRICT logic, let's just drop
> it.
>
> It's worth mentioning that LOOKUP_STRICT currently coincides with
> LOOKUP_ROOT. It does not lead to a disaster, because vfs_path_lookup,
> which we pass LOOKUP_STRICT to, sets LOOKUP_ROOT in any case.
>
> Signed-off-by: Vladimir Davydov <vdavydov at parallels.com>
> ---
> fs/ext4/pfcache.c | 4 ++--
> include/linux/namei.h | 1 -
> 2 files changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/fs/ext4/pfcache.c b/fs/ext4/pfcache.c
> index b75c26dea6c3..bf45504e524f 100644
> --- a/fs/ext4/pfcache.c
> +++ b/fs/ext4/pfcache.c
> @@ -67,7 +67,7 @@ int ext4_open_pfcache(struct inode *inode)
> * Here we disable lockdep to avoid false-positive reports.
> */
> lockdep_off();
> - ret = vfs_path_lookup(root.dentry, root.mnt, name, LOOKUP_STRICT, &path);
> + ret = vfs_path_lookup(root.dentry, root.mnt, name, 0, &path);
> lockdep_on();
> revert_creds(cur_cred);
> path_put(&root);
> @@ -175,7 +175,7 @@ int ext4_relink_pfcache(struct super_block *sb, char *new_root, bool new_sb)
> pfcache_path(inode, name);
> cur_cred = override_creds(&init_cred);
> err = vfs_path_lookup(root.dentry, root.mnt,
> - name, LOOKUP_STRICT, &path);
> + name, 0, &path);
> revert_creds(cur_cred);
> if (err) {
> path.mnt = NULL;
> diff --git a/include/linux/namei.h b/include/linux/namei.h
> index fb943ae1a1b6..8e47bc7a1665 100644
> --- a/include/linux/namei.h
> +++ b/include/linux/namei.h
> @@ -51,7 +51,6 @@ enum {LAST_NORM, LAST_ROOT, LAST_DOT, LAST_DOTDOT, LAST_BIND};
> #define LOOKUP_CREATE 0x0200
> #define LOOKUP_EXCL 0x0400
> #define LOOKUP_RENAME_TARGET 0x0800
> -#define LOOKUP_STRICT 0x2000 /* no symlinks or other filesystems */
>
> #define LOOKUP_JUMPED 0x1000
> #define LOOKUP_ROOT 0x2000
>
More information about the Devel
mailing list