Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 06 Nov 2009 16:32:22 +0100 (CET)
From:      Alexander Best <alexbestms@math.uni-muenster.de>
To:        Alex Dupre <ale@FreeBSD.org>, Alexander Best <alexbestms@math.uni-muenster.de>
Cc:        freebsd-hackers@FreeBSD.org
Subject:   Re: rmdir(2) and mkdir(2) both return EISDIR for argument "/"
Message-ID:  <permail-2009110615322280e26a0b00003ff9-a_best01@message-id.uni-muenster.de>
In-Reply-To: <4AF42D61.6050403@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
  This is a MIME encoded multipart message.

--+permail-2009110615322280e26a0b00003ff9-a_best01+
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Alex Dupre schrieb am 2009-11-06:
> Alexander Best ha scritto:
> > i dug up this old pr
> > http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/59739

> I think the EISDIR error is coming from kern/vfs_lookup.c, lookup()
> function with cn_nameptr = "":


>         /*
>          * Check for degenerate name (e.g. / or "")
>          * which is a way of talking about a directory,
>          * e.g. like "/." or ".".
>          */
>         if (cnp->cn_nameptr[0] == '\0') {
>                 ...
>                 if (cnp->cn_nameiop != LOOKUP) {
>                         error = EISDIR;
>                         goto bad;
>                 }
>                 ...

thanks a lot for finding the problem in the src. what do you think of the
patch attached to this message? after applying it the example code i posted in
my previous message returns the following output (instead of EISDIR):

rmdir errno: 16 (which is EBUSY)
mkdir errno: 17 (which is EEXIST)

i don't know if these really are the correct return values, but it's what the
originator of the PR requested.

alex

--+permail-2009110615322280e26a0b00003ff9-a_best01+
Content-Type: text/plain
Content-Transfer-Encoding: Base64
Content-Disposition: attachment; filename="vfslookup.c.patch.txt"

LS0tIHZmc19sb29rdXAuYwkyMDA5LTExLTA2IDE2OjE0OjQxLjAwMDAwMDAwMCArMDEwMAorKysg
L3Vzci9zcmMvc3lzL2tlcm4vdmZzX2xvb2t1cC5jCTIwMDktMTEtMDYgMTY6MTM6MTkuMDAwMDAw
MDAwICswMTAwCkBAIC0zNSw3ICszNSw3IEBACiAgKi8KIAogI2luY2x1ZGUgPHN5cy9jZGVmcy5o
PgotX19GQlNESUQoIiRGcmVlQlNEJCIpOworX19GQlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9r
ZXJuL3Zmc19sb29rdXAuYyAxOTU5MzkgMjAwOS0wNy0yOSAwNzo0NDo0M1ogcndhdHNvbiAkIik7
CiAKICNpbmNsdWRlICJvcHRfa2R0cmFjZS5oIgogI2luY2x1ZGUgIm9wdF9rdHJhY2UuaCIKQEAg
LTU2Myw4ICs1NjMsMTIgQEAKIAkJCWVycm9yID0gRU5PVERJUjsKIAkJCWdvdG8gYmFkOwogCQl9
Ci0JCWlmIChjbnAtPmNuX25hbWVpb3AgIT0gTE9PS1VQKSB7Ci0JCQllcnJvciA9IEVJU0RJUjsK
KwkJaWYgKGNucC0+Y25fbmFtZWlvcCAhPSBMT09LVVAgJiYgY25wLT5jbl9uYW1laW9wID09IERF
TEVURSkgeworCQkJZXJyb3IgPSBFQlVTWTsKKwkJCWdvdG8gYmFkOworCQl9CisJCWlmIChjbnAt
PmNuX25hbWVpb3AgIT0gTE9PS1VQICYmIGNucC0+Y25fbmFtZWlvcCA9PSBDUkVBVEUpIHsKKwkJ
CWVycm9yID0gRUVYSVNUOwogCQkJZ290byBiYWQ7CiAJCX0KIAkJaWYgKHdhbnRwYXJlbnQpIHsK

--+permail-2009110615322280e26a0b00003ff9-a_best01+--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?permail-2009110615322280e26a0b00003ff9-a_best01>