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

From: Andrea Arcangeli (andrea@suse.de)
Date: Mon Jan 08 2001 - 15:28:33 EST


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/



This archive was generated by hypermail 2b29 : Mon Jan 15 2001 - 21:00:19 EST