[PATCH] fs: add a sanity check in d_free
authorArjan van de Ven <arjan@infradead.org>
Tue, 21 Oct 2008 13:47:33 +0000 (06:47 -0700)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 23 Oct 2008 09:17:12 +0000 (05:17 -0400)
Hi Al,

remember that debug session we did at KS? You suggested this patch back
then....

From 7751eaf30474b8cbfaea64795805a17eab05ac53 Mon Sep 17 00:00:00 2001
From: Arjan van de Ven <arjan@linux.intel.com>
Date: Tue, 16 Sep 2008 16:51:17 -0700
Subject: [PATCH] fs: add a sanity check in d_free

we're seeing some corruption in the dentry->d_alias list that
appears like a free of an entry still on the list; this patch
adds a WARN_ON() to catch this scenario, as suggested by Al Viro

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
fs/dcache.c

index 12eac838558a917c49e183057e9ed3f76aedd864..a1d86c7f3e6644c8914edeae67a0ba02b3df6ada 100644 (file)
@@ -69,6 +69,7 @@ struct dentry_stat_t dentry_stat = {
 
 static void __d_free(struct dentry *dentry)
 {
+       WARN_ON(!list_empty(&dentry->d_alias));
        if (dname_external(dentry))
                kfree(dentry->d_name.name);
        kmem_cache_free(dentry_cache, dentry);