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

Andrea Arcangeli (andrea@suse.de)
Mon, 8 Jan 2001 21:28:33 +0100


On Mon, Jan 08, 2001 at 12:58:20PM -0500, Alexander Viro wrote:
> It's a hell of a pain wrt locking. You need to lock the parent, but it can

This is a no-brainer and bad implementation, but shows it's obviously right
wrt locking. (pseudocode, I ignored the uaccess details and all the other not
relevant things)

sys_rmdir(path)
{
char buf[PAGE_SIZE]

err = sys_getcwd(buf, PAGE_SIZE)
if (err)
goto out

if (!memcmp(path, ".", 2))
path = buf
err = 2_4_0_sys_rmdir(path)

out:
return err
}

Optimizing things just a little more as _worse_ the overhead of supporting
`rmdir .` can be reduced to a memcmp(name, ".") plus and out of line jump and I
don't see a performance problem with that.

Could you enlight me on where's the locking pain?

Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/