Hello Axel,
attached is a small tool to test fchown on a freshly created file:
<
These are the tests I've made using this tool:
compile
xlc /tmp/t.c -o /tmp/t
environemnt
mount | grep -E "(filer0|hd4)" /dev/hd4 / jfs Jun 11 23:25 rw,log=/dev/hd8 filer0 /vol/mail /net/var_mail nfs3 Jun 11 23:26 rw,proto=tcp,port=2049,wsize=65534,rsize=65534 filer0 /vol/home /u/f0 nfs4 Jul 06 08:09 rw,proto=tcp,port=2049,vers=4,wsize=65534,rsize=65534
local filesystem => SUCCESS
/tmp/t /tmp/test.txt fchown returns 0
NFS3 filesystem => SUCCESS
/tmp/t /net/var_mail/spool/test.txt fchown returns 0
NFS4 filesystem => ERROR
/tmp/t /u/f0/test.txt fchown returns -1 errno=22 (Invalid argument)
So I should alter the to subject to ... with AIX, NFS4 and netapp ... :-)
Back to your question:
Wouldn't it be worth to check what kind of entity gets created under your environment?
yes and it's just a raw file
and as suspected conclusion
EINVAL is returned because the owner or group ID is not a value supported by the implementation (of NFS4 on netapp filers?)
Ralf
Axel Luttgens schrieb:
According to the posix specification, fchown may return EINVAL when the owner or group ID is not a value supported by the implementation, or when the fildes argument refers to a pipe or socket or an fattach()-ed STREAM and the implementation disallows execution of fchown() on a pipe.
Wouldn't it be worth to check what kind of entity gets created under your environment? I ask because I wouldn't exclude without further investigations the possibility of encountering other side effects wrt files throughout the code.
--
Dipl.-Inform. (FH) Ralf Becker Rechenzentrum (r/ft) der FH Trier (Network|Mail|Web|Firewall) University of applied sciences Administrator Schneidershof, D-54293 Trier
Mail: beckerr@fh-trier.de Fon: +49 651 8103 499 WWW: http://www.fh-trier.de/~beckerr Fax: +49 651 8103 214