]> git.hungrycats.org Git - linux/commitdiff
[PATCH] autofs4: allow map update recognition
authorIan Kent <raven@themaw.net>
Tue, 19 Oct 2004 01:11:20 +0000 (18:11 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Tue, 19 Oct 2004 01:11:20 +0000 (18:11 -0700)
Having recently repaired autofs' ability to recognise updates to maps
dynamically I found I needed to reintroduce the directory inode lookup
method (I broke the update recognition several versions ago, oops).

This patch does this and applies cleanly against 2.6.9-rc1-mm4.

As far as I can tell from testing it doesn't introduce any backward
incompatibilities.

Signed-off-by: Ian Kent <raven@themaw.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/autofs4/root.c

index 1ff9adb6a8dade139c1a95def12bf75afc71897d..82ef8ed2fabc061226fa63761ceae4656648e2cd 100644 (file)
@@ -19,7 +19,6 @@
 #include <linux/smp_lock.h>
 #include "autofs_i.h"
 
-static struct dentry *autofs4_dir_lookup(struct inode *,struct dentry *, struct nameidata *);
 static int autofs4_dir_symlink(struct inode *,struct dentry *,const char *);
 static int autofs4_dir_unlink(struct inode *,struct dentry *);
 static int autofs4_dir_rmdir(struct inode *,struct dentry *);
@@ -29,7 +28,7 @@ static int autofs4_dir_open(struct inode *inode, struct file *file);
 static int autofs4_dir_close(struct inode *inode, struct file *file);
 static int autofs4_dir_readdir(struct file * filp, void * dirent, filldir_t filldir);
 static int autofs4_root_readdir(struct file * filp, void * dirent, filldir_t filldir);
-static struct dentry *autofs4_root_lookup(struct inode *,struct dentry *, struct nameidata *);
+static struct dentry *autofs4_lookup(struct inode *,struct dentry *, struct nameidata *);
 static int autofs4_dcache_readdir(struct file *, void *, filldir_t);
 
 struct file_operations autofs4_root_operations = {
@@ -48,7 +47,7 @@ struct file_operations autofs4_dir_operations = {
 };
 
 struct inode_operations autofs4_root_inode_operations = {
-       .lookup         = autofs4_root_lookup,
+       .lookup         = autofs4_lookup,
        .unlink         = autofs4_dir_unlink,
        .symlink        = autofs4_dir_symlink,
        .mkdir          = autofs4_dir_mkdir,
@@ -56,7 +55,7 @@ struct inode_operations autofs4_root_inode_operations = {
 };
 
 struct inode_operations autofs4_dir_inode_operations = {
-       .lookup         = autofs4_dir_lookup,
+       .lookup         = autofs4_lookup,
        .unlink         = autofs4_dir_unlink,
        .symlink        = autofs4_dir_symlink,
        .mkdir          = autofs4_dir_mkdir,
@@ -439,23 +438,8 @@ static struct dentry_operations autofs4_dentry_operations = {
        .d_release      = autofs4_dentry_release,
 };
 
-/* Lookups in non-root dirs never find anything - if it's there, it's
-   already in the dcache */
-static struct dentry *autofs4_dir_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
-{
-#if 0
-       DPRINTK("ignoring lookup of %.*s/%.*s",
-                dentry->d_parent->d_name.len, dentry->d_parent->d_name.name,
-                dentry->d_name.len, dentry->d_name.name);
-#endif
-
-       dentry->d_fsdata = NULL;
-       d_add(dentry, NULL);
-       return NULL;
-}
-
 /* Lookups in the root directory */
-static struct dentry *autofs4_root_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
+static struct dentry *autofs4_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
 {
        struct autofs_sb_info *sbi;
        int oz_mode;