lose 'mounting_here' argument in ->d_manage()
Al Viro [Fri, 18 Mar 2011 13:09:02 +0000 (09:09 -0400)]
it's always false...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Documentation/filesystems/vfs.txt
fs/autofs4/root.c
fs/namei.c
include/linux/dcache.h

index ef0714a..306f0ae 100644 (file)
@@ -873,7 +873,7 @@ struct dentry_operations {
        void (*d_iput)(struct dentry *, struct inode *);
        char *(*d_dname)(struct dentry *, char *, int);
        struct vfsmount *(*d_automount)(struct path *);
-       int (*d_manage)(struct dentry *, bool, bool);
+       int (*d_manage)(struct dentry *, bool);
 };
 
   d_revalidate: called when the VFS needs to revalidate a dentry. This
@@ -969,10 +969,6 @@ struct dentry_operations {
        mounted on it and not to check the automount flag.  Any other error
        code will abort pathwalk completely.
 
-       If the 'mounting_here' parameter is true, then namespace_sem is being
-       held by the caller and the function should not initiate any mounts or
-       unmounts that it will then wait for.
-
        If the 'rcu_walk' parameter is true, then the caller is doing a
        pathwalk in RCU-walk mode.  Sleeping is not permitted in this mode,
        and the caller can be asked to leave it and call again by returing
index 014e7ab..e6f84d2 100644 (file)
@@ -36,7 +36,7 @@ static long autofs4_root_compat_ioctl(struct file *,unsigned int,unsigned long);
 static int autofs4_dir_open(struct inode *inode, struct file *file);
 static struct dentry *autofs4_lookup(struct inode *,struct dentry *, struct nameidata *);
 static struct vfsmount *autofs4_d_automount(struct path *);
-static int autofs4_d_manage(struct dentry *, bool, bool);
+static int autofs4_d_manage(struct dentry *, bool);
 static void autofs4_dentry_release(struct dentry *);
 
 const struct file_operations autofs4_root_operations = {
@@ -446,7 +446,7 @@ done:
        return NULL;
 }
 
-int autofs4_d_manage(struct dentry *dentry, bool mounting_here, bool rcu_walk)
+int autofs4_d_manage(struct dentry *dentry, bool rcu_walk)
 {
        struct autofs_sb_info *sbi = autofs4_sbi(dentry->d_sb);
 
@@ -454,7 +454,7 @@ int autofs4_d_manage(struct dentry *dentry, bool mounting_here, bool rcu_walk)
                dentry, dentry->d_name.len, dentry->d_name.name);
 
        /* The daemon never waits. */
-       if (autofs4_oz_mode(sbi) || mounting_here) {
+       if (autofs4_oz_mode(sbi)) {
                if (!d_mountpoint(dentry))
                        return -EISDIR;
                return 0;
index e092648..5a9a6c3 100644 (file)
@@ -933,8 +933,7 @@ static int follow_managed(struct path *path, unsigned flags)
                if (managed & DCACHE_MANAGE_TRANSIT) {
                        BUG_ON(!path->dentry->d_op);
                        BUG_ON(!path->dentry->d_op->d_manage);
-                       ret = path->dentry->d_op->d_manage(path->dentry,
-                                                          false, false);
+                       ret = path->dentry->d_op->d_manage(path->dentry, false);
                        if (ret < 0)
                                return ret == -EISDIR ? 0 : ret;
                }
@@ -999,7 +998,7 @@ static bool __follow_mount_rcu(struct nameidata *nd, struct path *path,
                struct vfsmount *mounted;
                if (unlikely(path->dentry->d_flags & DCACHE_MANAGE_TRANSIT) &&
                    !reverse_transit &&
-                   path->dentry->d_op->d_manage(path->dentry, false, true) < 0)
+                   path->dentry->d_op->d_manage(path->dentry, true) < 0)
                        return false;
                mounted = __lookup_mnt(path->mnt, path->dentry, 1);
                if (!mounted)
@@ -1086,7 +1085,7 @@ int follow_down(struct path *path)
                        BUG_ON(!path->dentry->d_op);
                        BUG_ON(!path->dentry->d_op->d_manage);
                        ret = path->dentry->d_op->d_manage(
-                               path->dentry, false, false);
+                               path->dentry, false);
                        if (ret < 0)
                                return ret == -EISDIR ? 0 : ret;
                }
index f958c19..1a87760 100644 (file)
@@ -168,7 +168,7 @@ struct dentry_operations {
        void (*d_iput)(struct dentry *, struct inode *);
        char *(*d_dname)(struct dentry *, char *, int);
        struct vfsmount *(*d_automount)(struct path *);
-       int (*d_manage)(struct dentry *, bool, bool);
+       int (*d_manage)(struct dentry *, bool);
 } ____cacheline_aligned;
 
 /*