aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorIan Kent <raven@themaw.net>2006-03-27 01:14:48 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-27 08:44:39 -0800
commit862b110f0132401e422783bf68521ade3dc67578 (patch)
tree4cdf38bfb51fb6abba7ab99dc9d406325f0fb35d /fs
parent[PATCH] autofs4: expire mounts that hold no (extra) references only (diff)
downloadlinux-dev-862b110f0132401e422783bf68521ade3dc67578.tar.xz
linux-dev-862b110f0132401e422783bf68521ade3dc67578.zip
[PATCH] autofs4: remove update_atime unused function
Remove the update of i_atime from autofs4 in favour of having VFS update it. i_atime is never used for expire in autofs4. Signed-off-by: Ian Kent <raven@themaw.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/autofs4/root.c38
1 files changed, 4 insertions, 34 deletions
diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c
index 3a4a5b47575c..72dca3335e25 100644
--- a/fs/autofs4/root.c
+++ b/fs/autofs4/root.c
@@ -84,24 +84,6 @@ static int autofs4_root_readdir(struct file *file, void *dirent,
return dcache_readdir(file, dirent, filldir);
}
-/* Update usage from here to top of tree, so that scan of
- top-level directories will give a useful result */
-static void autofs4_update_usage(struct vfsmount *mnt, struct dentry *dentry)
-{
- struct dentry *top = dentry->d_sb->s_root;
-
- spin_lock(&dcache_lock);
- for(; dentry != top; dentry = dentry->d_parent) {
- struct autofs_info *ino = autofs4_dentry_ino(dentry);
-
- if (ino) {
- touch_atime(mnt, dentry);
- ino->last_used = jiffies;
- }
- }
- spin_unlock(&dcache_lock);
-}
-
static int autofs4_dir_open(struct inode *inode, struct file *file)
{
struct dentry *dentry = file->f_dentry;
@@ -246,10 +228,9 @@ out:
return dcache_readdir(file, dirent, filldir);
}
-static int try_to_fill_dentry(struct vfsmount *mnt, struct dentry *dentry, int flags)
+static int try_to_fill_dentry(struct dentry *dentry, int flags)
{
- struct super_block *sb = mnt->mnt_sb;
- struct autofs_sb_info *sbi = autofs4_sbi(sb);
+ struct autofs_sb_info *sbi = autofs4_sbi(dentry->d_sb);
struct autofs_info *ino = autofs4_dentry_ino(dentry);
int status = 0;
@@ -323,13 +304,6 @@ static int try_to_fill_dentry(struct vfsmount *mnt, struct dentry *dentry, int f
}
}
- /*
- * We don't update the usages for the autofs daemon itself, this
- * is necessary for recursive autofs mounts
- */
- if (!autofs4_oz_mode(sbi))
- autofs4_update_usage(mnt, dentry);
-
/* Initialize expiry counter after successful mount */
if (ino)
ino->last_used = jiffies;
@@ -357,7 +331,7 @@ static int autofs4_revalidate(struct dentry *dentry, struct nameidata *nd)
/* Pending dentry */
if (autofs4_ispending(dentry)) {
if (!oz_mode)
- status = try_to_fill_dentry(nd->mnt, dentry, flags);
+ status = try_to_fill_dentry(dentry, flags);
return status;
}
@@ -374,15 +348,11 @@ static int autofs4_revalidate(struct dentry *dentry, struct nameidata *nd)
dentry, dentry->d_name.len, dentry->d_name.name);
spin_unlock(&dcache_lock);
if (!oz_mode)
- status = try_to_fill_dentry(nd->mnt, dentry, flags);
+ status = try_to_fill_dentry(dentry, flags);
return status;
}
spin_unlock(&dcache_lock);
- /* Update the usage list */
- if (!oz_mode)
- autofs4_update_usage(nd->mnt, dentry);
-
return 1;
}