From: Derrick Brashear Date: Wed, 24 Feb 2010 05:30:28 +0000 (-0500) Subject: darwin afscall syscall should set retval X-Git-Tag: openafs-devel-1_5_73~128 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=518b3abb737fd02245c4400491388d15f5cb9e1f;p=packages%2Fo%2Fopenafs.git darwin afscall syscall should set retval because of how the ioctl based syscall works, passing back a real return value should be done this way, as it is for the other other afs syscall subcalls. matters for userspace handlers. Change-Id: I894b4bd633ce4823b1ce906861251fcbb3949af2 Reviewed-on: http://gerrit.openafs.org/1381 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- diff --git a/src/afs/afs_syscall.c b/src/afs/afs_syscall.c index 0bdfdf93c..0486d6e4d 100644 --- a/src/afs/afs_syscall.c +++ b/src/afs/afs_syscall.c @@ -638,6 +638,11 @@ Afs_syscall() code = afs_syscall64_call(uap64->parm1, uap64->parm2, uap64->parm3, uap64->parm4, uap64->parm5, uap64->parm6); + /* pass back the code as syscall retval */ + if (code < 0) { + *retval = code; + code = 0; + } } else if (uap64->syscall == AFSCALL_SETPAG) { AFS_GLOCK(); code = afs_setpag(p, args, retval); @@ -676,6 +681,13 @@ Afs_syscall() code = afs_syscall_call(uap->parm1, uap->parm2, uap->parm3, uap->parm4, uap->parm5, uap->parm6); +#ifdef AFS_DARWIN_ENV + /* pass back the code as syscall retval */ + if (code < 0) { + *retval = code; + code = 0; + } +#endif } else if (uap->syscall == AFSCALL_SETPAG) { #ifdef AFS_SUN5_ENV register proc_t *procp;