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;
}
return -EINVAL;
}
- ci->time = jiffies;
return 0;
}
return 0;
}
+/*
int ceph_inode_revalidate(struct dentry *dentry)
{
struct ceph_inode_info *ci;
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)