[PATCH 1/11] LTTng-core 0.5.111 : Relay+DebugFS (DebugFS fix)

From: Mathieu Desnoyers
Date: Sat Sep 16 2006 - 03:51:56 EST


1 - DebugFS stalled dentry patch
DebugFS seems to keep a stalled dentry when a process is in a directory that is
being removed. Force a differed deletion.
patch-2.6.17-lttng-core-0.5.111-debugfs.diff


OpenPGP public key: http://krystal.dyndns.org:8080/key/compudj.gpg
Key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
--- a/fs/debugfs/inode.c
+++ b/fs/debugfs/inode.c
@@ -266,6 +266,7 @@ EXPORT_SYMBOL_GPL(debugfs_create_dir);
void debugfs_remove(struct dentry *dentry)
{
struct dentry *parent;
+ int ret = 0;

if (!dentry)
return;
@@ -278,9 +279,10 @@ void debugfs_remove(struct dentry *dentr
if (debugfs_positive(dentry)) {
if (dentry->d_inode) {
if (S_ISDIR(dentry->d_inode->i_mode))
- simple_rmdir(parent->d_inode, dentry);
+ ret = simple_rmdir(parent->d_inode, dentry);
else
- simple_unlink(parent->d_inode, dentry);
+ ret = simple_unlink(parent->d_inode, dentry);
+ if(ret) d_delete(dentry);
dput(dentry);
}
}