Messages in this thread |  | | | Date | Thu, 23 Nov 2006 09:01:16 +0000 | | From | Al Viro <> | | Subject | Re: [PATCH 5/5] libfs : file/directory removal fix, 2.6.18 |
| |
On Thu, Nov 23, 2006 at 08:50:56AM +0000, Al Viro wrote: > On Thu, Nov 23, 2006 at 03:22:44AM -0500, Mathieu Desnoyers wrote: > > Fix file and directory removal in libfs. Add inotify support for file removal. > > The following scenario : > > create dir a > > create dir a/b > > > > cd a/b (some process goes in cwd a/b) > > > > rmdir a/b > > rmdir a > > > > fails due to the fact that "a" appears to be non empty. > > What? Caller will do d_delete() itself. Care to show a version where > that would happen and post an strace of the second rmdir? > > > It is because the "b" > > dentry is not deleted from "a" and still in use. The same problem happens if > > "b" is a file. d_delete is nice enough to know when it needs to unhash and free > > the dentry if nothing else is using it or, if someone is using it, to remove it > > from the hash queues and wait for it to be deleted when it has no users. > > > > The nice side-effect of this fix is that it calls the file removal > > notification. > > NAK. First of all, I won't believe you without actual strace. > > What's more, WTF would fs _method_ call idiotify? Keep that crap > out of filesystems; caller will do it for us just fine.
PS: debugfs, sysfs et sodding alia should take care to do things equivalent to vfs_unlink(), etc. _That_ is definitive user of fs methods, which, in turn, sets the rules for library helpers used by such. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |