Subject: Re: nfs bug?
To: Bill Studenmund <wrstuden@netbsd.org>
From: None <uwe@6bone.informatik.uni-leipzig.de>
List: current-users
Date: 05/27/2004 20:18:46
hello again,

the SFU 3.5 nfs-server implements rfc 1813:

"3.3.13 Procedure 13: RMDIR - Remove a Directory
...
DESCRIPTION

Procedure RMDIR removes (deletes) a subdirectory from a
directory. If the directory entry of the subdirectory is
the last reference to the subdirectory, the subdirectory
may be destroyed. On entry, the arguments in RMDIR3args
are:

object
A diropargs3 structure identifying the directory entry
to be removed:

dir
The file handle for the directory from which the
subdirectory is to be removed.

name
The name of the subdirectory to be removed. Refer to
General comments on filenames on page 30.
...

IMPLEMENTATION

Note that on some servers, removal of a non-empty
directory is disallowed.

On some servers, the filename, ".", is illegal. These
servers will return the error, NFS3ERR_INVAL. On some
servers, the filename, "..", is illegal. These servers
will return the error, NFS3ERR_EXIST. This would seem
inconsistent, but allows these servers to comply with
their own specific interface definitions. Clients should
be prepared to handle both cases."


The Microsoft Support tells me, that the SFU sever does not allow the
removal of a non-empty directory and NetBSD does not handle this
case correctly.

> You mean rm -r foo ?? rm -f complains that foo is a directory.

No, I mean rm -rf foo and foo is a directory. Some makefiles in the sys or
pkgsrc tree are using this syntax for 'make clean'.
the manpage says:
-f    Attempt to remove the files without prompting for confirmation
I think the -f option works also with directories?

Thank you for your efforts
Uwe