Re: `rmdir .` doesn't work in 2.4

Andrea Arcangeli
2001-01-10T15:04:16Z

On Wed, Jan 10, 2001 at 02:47:35PM +0000, Stephen C. Tweedie wrote:
> Hi,
>
> On Tue, Jan 09, 2001 at 03:06:35PM +0100, Andrea Arcangeli wrote:
> > On Tue, Jan 09, 2001 at 07:41:21AM -0600, Jesse Pollard wrote:
> > > Not exactly valid, since a file could be created in that "pinned" directory
> > > after the rmdir...
> >
> > In 2.2.x no file can be created in the pinned directory after the rmdir.
>
> In 2.2, at least some of that protection was in ext2 itself. POSIX
> mandates that a deleted directory has no dirents, so readdir() must
> not return even "." or "..". ext2 achieved this by truncating the dir
> to size==0, and by refusing to add dirents to the resulting completely
> empty directory.
>
> Do we have enough protection to ensure this for other filesystems?

Note that this has nothing to do with `rmdir .`. You will run into the
mentioned issue just now with '''rmdir "`pwd`"'''. I've not checked
the other fses but I would put such support into the VFS rather than in ext2
(vfs can do that for you, if you do that the lowlevel fs will never get a
readdir for a delete dentry).

Andrea