#endif /* AFS_SGI61_ENV */
AFS_STATCNT(afs_syscall_call);
+ if (!afs_suser(
#ifdef AFS_SUN5_ENV
- if (!afs_suser(CRED()) && (parm != AFSOP_GETMTU)
- && (parm != AFSOP_GETMASK)) {
- /* only root can run this code */
- return (EACCES);
+ CRED()
#else
- if (!afs_suser(NULL) && (parm != AFSOP_GETMTU)
- && (parm != AFSOP_GETMASK)) {
+ NULL
+#endif
+ ) && (parm != AFSOP_GETMTU) && (parm != AFSOP_GETMASK)) {
/* only root can run this code */
+#if defined(AFS_OSF_ENV) || defined(AFS_SUN5_ENV) || defined(KERNEL_HAVE_UERROR)
#if defined(KERNEL_HAVE_UERROR)
setuerror(EACCES);
- return (EACCES);
+#endif
+ code = EACCES;
#else
-#if defined(AFS_OSF_ENV)
- return EACCES;
-#else /* AFS_OSF_ENV */
- return EPERM;
-#endif /* AFS_OSF_ENV */
+ code = EPERM;
#endif
+ AFS_GLOCK();
+#ifdef AFS_DARWIN80_ENV
+ put_vfs_context();
#endif
+ goto out;
}
AFS_GLOCK();
#ifdef AFS_DARWIN80_ENV
afs_osi_Sleep(&afs_initState);
#ifdef AFS_DARWIN80_ENV
- get_vfs_context();
+ get_vfs_context();
#endif
/* do it by inode */
#ifdef AFS_SGI62_ENV
#endif
code = afs_InitCacheFile(NULL, ainode);
#ifdef AFS_DARWIN80_ENV
- put_vfs_context();
+ put_vfs_context();
#endif
} else if (parm == AFSOP_ROOTVOLUME) {
/* wait for basic init */
else if (parm == AFSOP_CELLINFO)
code = afs_InitCellInfo(tbuffer);
#ifdef AFS_DARWIN80_ENV
- put_vfs_context();
+ put_vfs_context();
#endif
}
osi_FreeSmallSpace(tbuffer);
code = EINVAL;
out:
-#ifdef AFS_DARWIN80_ENV /* to balance the put in afs3_syscall() */
- get_vfs_context();
-#endif
AFS_GUNLOCK();
#ifdef AFS_LINUX20_ENV
return -code;