Re: debugfs_remove() vs. anything that is dynamic

From: Johannes Berg
Date: Fri Apr 04 2008 - 17:20:26 EST



> I think, however, it's not correct when you have a hard-link, and the
> NULLing out of i_private must be done depending on (inode->i_nlink == 1)
> instead of unconditionally. I will have to test that once I figure out
> if (and if yes, how) you can even create inodes with nlink>1 with simple
> attributes.
>
> --- everything.orig/fs/libfs.c 2008-04-04 22:37:18.000000000 +0200
> +++ everything/fs/libfs.c 2008-04-04 22:37:37.000000000 +0200
> @@ -287,6 +287,7 @@ int simple_unlink(struct inode *dir, str
> {
> struct inode *inode = dentry->d_inode;
>
> + inode->i_private = NULL;

Hm, no, this is likely to conflict with other users of simple_unlink
that use i_private afterwards and don't expect it to have been NULL'ed
out. I haven't found a solution yet.

johannes

Attachment: signature.asc
Description: This is a digitally signed message part