From 2ab94073d8248f4de1024192babe20f074930528 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 26 Mar 2008 15:41:18 -0700 Subject: [PATCH] kclient: d_revalidate simpler. no inode validation yet. --- src/kernel/dir.c | 17 +++++------------ src/kernel/inode.c | 7 ++++--- src/kernel/super.h | 2 -- 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/src/kernel/dir.c b/src/kernel/dir.c index d906fd5548ee2..965bb8cd11028 100644 --- a/src/kernel/dir.c +++ b/src/kernel/dir.c @@ -564,19 +564,12 @@ ceph_dir_create(struct inode *dir, struct dentry *dentry, int mode, static int ceph_d_revalidate(struct dentry *dentry, struct nameidata *nd) { - dout(20, "ceph_d_revalidate\n"); - if (dentry->d_inode) { - if (ceph_inode_revalidate(dentry)) { - dout(20, "ceph_d_revalidate (invalid entry)\n"); - return 0; - } - } else { - if (!ceph_lookup_cache || - time_after(jiffies, dentry->d_time+CACHE_HZ)) { - d_drop(dentry); - return 0; - } + if (time_after(jiffies, dentry->d_time+CACHE_HZ)) { + dout(20, "d_revalidate - dentry %p expired\n", dentry); + d_drop(dentry); + return 0; } + dout(20, "d_revalidate - dentry %p ok\n", dentry); return 1; } diff --git a/src/kernel/inode.c b/src/kernel/inode.c index 486c373fa3b86..6d3560516baa2 100644 --- a/src/kernel/inode.c +++ b/src/kernel/inode.c @@ -150,7 +150,6 @@ int ceph_fill_inode(struct inode *inode, struct ceph_mds_reply_inode *info) return -EINVAL; } - ci->time = jiffies; return 0; } @@ -759,6 +758,7 @@ int ceph_setattr(struct dentry *dentry, struct iattr *attr) return 0; } +/* int ceph_inode_revalidate(struct dentry *dentry) { struct ceph_inode_info *ci; @@ -776,13 +776,14 @@ int ceph_inode_revalidate(struct dentry *dentry) dout(10, "revalidate %p is old\n", dentry); return ceph_do_lookup(dentry->d_inode->i_sb, dentry); } +*/ int ceph_inode_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) { - int err; + int err = 0; dout(30, "ceph_inode_getattr\n"); - err = ceph_inode_revalidate(dentry); + //err = ceph_inode_revalidate(dentry); dout(30, "ceph_inode_getattr returned %d\n", err); if (!err) diff --git a/src/kernel/super.h b/src/kernel/super.h index 6b4b1cba32785..bbf844a04f5f2 100644 --- a/src/kernel/super.h +++ b/src/kernel/super.h @@ -163,8 +163,6 @@ struct ceph_inode_info { unsigned long i_hashval; - unsigned long time; - struct inode vfs_inode; /* at end */ }; -- 2.39.5