patch-2.4.4 linux/fs/dcache.c
Next file: linux/fs/devfs/base.c
Previous file: linux/fs/cramfs/inode.c
Back to the patch index
Back to the overall index
- Lines: 78
- Date:
Fri Apr 27 14:23:25 2001
- Orig file:
v2.4.3/linux/fs/dcache.c
- Orig date:
Wed Mar 7 16:53:48 2001
diff -u --recursive --new-file v2.4.3/linux/fs/dcache.c linux/fs/dcache.c
@@ -139,10 +139,6 @@
goto kill_it;
list_add(&dentry->d_lru, &dentry_unused);
dentry_stat.nr_unused++;
- /*
- * Update the timestamp
- */
- dentry->d_reftime = jiffies;
spin_unlock(&dcache_lock);
return;
@@ -337,10 +333,10 @@
dentry = list_entry(tmp, struct dentry, d_lru);
/* If the dentry was recently referenced, don't free it. */
- if (dentry->d_flags & DCACHE_REFERENCED) {
- dentry->d_flags &= ~DCACHE_REFERENCED;
+ if (dentry->d_vfs_flags & DCACHE_REFERENCED) {
+ dentry->d_vfs_flags &= ~DCACHE_REFERENCED;
list_add(&dentry->d_lru, &dentry_unused);
- goto next;
+ continue;
}
dentry_stat.nr_unused--;
@@ -349,7 +345,6 @@
BUG();
prune_one_dentry(dentry);
- next:
if (!--count)
break;
}
@@ -611,6 +606,7 @@
str[name->len] = 0;
atomic_set(&dentry->d_count, 1);
+ dentry->d_vfs_flags = 0;
dentry->d_flags = 0;
dentry->d_inode = NULL;
dentry->d_parent = NULL;
@@ -734,7 +730,7 @@
continue;
}
__dget_locked(dentry);
- dentry->d_flags |= DCACHE_REFERENCED;
+ dentry->d_vfs_flags |= DCACHE_REFERENCED;
spin_unlock(&dcache_lock);
return dentry;
}
@@ -1229,6 +1225,18 @@
} while (i);
}
+static void init_buffer_head(void * foo, kmem_cache_t * cachep, unsigned long flags)
+{
+ if ((flags & (SLAB_CTOR_VERIFY|SLAB_CTOR_CONSTRUCTOR)) ==
+ SLAB_CTOR_CONSTRUCTOR)
+ {
+ struct buffer_head * bh = (struct buffer_head *) foo;
+
+ memset(bh, 0, sizeof(*bh));
+ init_waitqueue_head(&bh->b_wait);
+ }
+}
+
/* SLAB cache for __getname() consumers */
kmem_cache_t *names_cachep;
@@ -1246,7 +1254,7 @@
{
bh_cachep = kmem_cache_create("buffer_head",
sizeof(struct buffer_head), 0,
- SLAB_HWCACHE_ALIGN, NULL, NULL);
+ SLAB_HWCACHE_ALIGN, init_buffer_head, NULL);
if(!bh_cachep)
panic("Cannot create buffer head SLAB cache");
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)