Index: openafs/src/JAVA/classes/org/openafs/jafs/Token.java diff -c openafs/src/JAVA/classes/org/openafs/jafs/Token.java:1.2.2.1 openafs/src/JAVA/classes/org/openafs/jafs/Token.java:1.2.2.2 *** openafs/src/JAVA/classes/org/openafs/jafs/Token.java:1.2.2.1 Fri Oct 14 22:14:10 2005 --- openafs/src/JAVA/classes/org/openafs/jafs/Token.java Fri Dec 14 16:37:39 2007 *************** *** 144,149 **** --- 144,163 ---- } /** + * Constructs a new Token object instance given the + * name of the AFS cell it represents; the token for administrative + * access will be extracted from the kernel cache manager if possible. + * + * @param cellName the name of the cell to Token into + * @exception AFSException If an error occurs in the native code + */ + public Token(String cellName) + throws AFSException + { + this(null, null, cellName); + } + + /** * Constructs a new Token object instance given * the name of the AFS cell it represents and the username and password * of the user to be Tokend for Index: openafs/src/JAVA/libjafs/AdminToken.c diff -c openafs/src/JAVA/libjafs/AdminToken.c:1.3.2.1 openafs/src/JAVA/libjafs/AdminToken.c:1.3.2.2 *** openafs/src/JAVA/libjafs/AdminToken.c:1.3.2.1 Fri Oct 14 22:14:11 2005 --- openafs/src/JAVA/libjafs/AdminToken.c Fri Dec 14 16:37:40 2007 *************** *** 30,35 **** --- 30,36 ---- #include #include #include + #include /** * Static function used to initialize the client library and the *************** *** 71,76 **** --- 72,78 ---- const char *password; void *tokenHandle; int rc; + int err; // convert java strings if( jcellName != NULL ) { *************** *** 101,108 **** password = NULL; } ! if ( !(afsclient_TokenGetNew( cellName, userName, password, &tokenHandle, ! &ast) ) ) { // release converted strings if( cellName != NULL ) { (*env)->ReleaseStringUTFChars(env, jcellName, cellName); --- 103,113 ---- password = NULL; } ! err = (password==NULL || userName==NULL) ! ? afsclient_TokenGetExisting( cellName, &tokenHandle, &ast) ! : afsclient_TokenGetNew( cellName, userName, password, &tokenHandle, &ast); ! ! if ( !err ) { // release converted strings if( cellName != NULL ) { (*env)->ReleaseStringUTFChars(env, jcellName, cellName); Index: openafs/src/JAVA/libjafs/Makefile.in diff -c openafs/src/JAVA/libjafs/Makefile.in:1.3.2.1 openafs/src/JAVA/libjafs/Makefile.in:1.3.2.2 *** openafs/src/JAVA/libjafs/Makefile.in:1.3.2.1 Fri Oct 14 22:14:12 2005 --- openafs/src/JAVA/libjafs/Makefile.in Fri Dec 14 16:37:40 2007 *************** *** 13,19 **** TOP_INCDIR=@TOP_INCDIR@ TOP_LIBDIR=@TOP_LIBDIR@ TOP_JLIBDIR=@TOP_SRCDIR@/JAVA/libjafs ! JNI_INC=${JAVA_HOME}/include prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ --- 13,19 ---- TOP_INCDIR=@TOP_INCDIR@ TOP_LIBDIR=@TOP_LIBDIR@ TOP_JLIBDIR=@TOP_SRCDIR@/JAVA/libjafs ! JNI_INC=-I ${JAVA_HOME}/include -I `dirname ${JAVA_HOME}/include/*/jni_md.h` prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ *************** *** 35,44 **** OBJECT_FLAGS = -fPIC -c ifeq "$(BUILD_TYPE)" "admin" ! INC := -I${TOP_INCDIR} -I${TOP_INCDIR}/afs/ -I${JAVA_HOME}/include -I ${JNI_INC} CFLAGS := ${INC} ${DBG} ${OPTMZ} -I${TOP_SRCDIR}/config ${MT_CFLAGS} else ! INC := -I${TOP_SRCDIR}/libuafs -I${TOP_INCDIR} -I${JAVA_HOME}/include -I ${JNI_INC} CFLAGS := ${INC} ${DBG} ${OPTMZ} ${FSINCLUDES} -D_REENTRANT -DLIBJUAFS ${MT_CFLAGS} endif --- 35,44 ---- OBJECT_FLAGS = -fPIC -c ifeq "$(BUILD_TYPE)" "admin" ! INC := -I${TOP_INCDIR} -I${TOP_INCDIR}/afs/ ${JNI_INC} CFLAGS := ${INC} ${DBG} ${OPTMZ} -I${TOP_SRCDIR}/config ${MT_CFLAGS} else ! INC := -I${TOP_SRCDIR}/libuafs -I${TOP_INCDIR} ${JNI_INC} CFLAGS := ${INC} ${DBG} ${OPTMZ} ${FSINCLUDES} -D_REENTRANT -DLIBJUAFS ${MT_CFLAGS} endif *************** *** 50,56 **** JAVADOCSDIR = javadocs/ JAVAH = ${JAVA_HOME}/bin/javah -classpath ${ROOTPACKAGEDIR} -jni -d ${LIBJAFSADMDIR} ! JAVAC = ${JAVA_HOME}/bin/javac -classpath ${ROOTPACKAGEDIR} J_NATIVE_PREFIX = org.openafs.jafs. C_NATIVE_PREFIX = org_openafs_jafs_ --- 50,56 ---- JAVADOCSDIR = javadocs/ JAVAH = ${JAVA_HOME}/bin/javah -classpath ${ROOTPACKAGEDIR} -jni -d ${LIBJAFSADMDIR} ! JAVAC = ${JAVA_HOME}/bin/javac -source 1.4 -classpath ${ROOTPACKAGEDIR} J_NATIVE_PREFIX = org.openafs.jafs. C_NATIVE_PREFIX = org_openafs_jafs_ *************** *** 153,158 **** --- 153,159 ---- LIBJAFS_LIBS =\ ${TOP_LIBDIR}/libjuafs.a \ + ${TOP_LIBDIR}/libafsutil.a \ ${TOP_LIBDIR}/libdes.a \ -lresolv \ -lpthread Index: openafs/src/WINNT/afs_setup_utils/afsrm.c diff -c openafs/src/WINNT/afs_setup_utils/afsrm.c:1.3 openafs/src/WINNT/afs_setup_utils/afsrm.c:1.3.8.1 *** openafs/src/WINNT/afs_setup_utils/afsrm.c:1.3 Tue Sep 18 00:26:47 2001 --- openafs/src/WINNT/afs_setup_utils/afsrm.c Wed Oct 31 00:13:07 2007 *************** *** 23,29 **** #include "forceremove.h" ! static int DoClient34(struct cmd_syndesc *as, char *arock) { DWORD status = Client34Eradicate(FALSE); --- 23,29 ---- #include "forceremove.h" ! static int DoClient34(struct cmd_syndesc *as, void *arock) { DWORD status = Client34Eradicate(FALSE); *************** *** 40,46 **** { struct cmd_syndesc *ts; ! ts = cmd_CreateSyntax("client34", DoClient34, 0, "remove AFS 3.4a client"); } --- 40,46 ---- { struct cmd_syndesc *ts; ! ts = cmd_CreateSyntax("client34", DoClient34, NULL, "remove AFS 3.4a client"); } Index: openafs/src/WINNT/afsd/cklog.c diff -c openafs/src/WINNT/afsd/cklog.c:1.3.2.1 openafs/src/WINNT/afsd/cklog.c:1.3.2.2 *** openafs/src/WINNT/afsd/cklog.c:1.3.2.1 Tue Apr 10 14:43:34 2007 --- openafs/src/WINNT/afsd/cklog.c Wed Oct 31 00:13:19 2007 *************** *** 22,28 **** #define BAD_ARGUMENT 1 #define KLOGEXIT(code) exit(code) ! int CommandProc(); static int zero_argc; static char **zero_argv; --- 22,28 ---- #define BAD_ARGUMENT 1 #define KLOGEXIT(code) exit(code) ! static int CommandProc(struct cmd_syndesc *, void *); static int zero_argc; static char **zero_argv; *************** *** 40,46 **** /* Start up sockets */ WSAStartup(0x0101, &WSAjunk); ! ts = cmd_CreateSyntax((char *) 0, CommandProc, 0, "obtain Kerberos authentication"); #define aXFLAG 0 #define aPRINCIPAL 1 --- 40,46 ---- /* Start up sockets */ WSAStartup(0x0101, &WSAjunk); ! ts = cmd_CreateSyntax(NULL, CommandProc, NULL, "obtain Kerberos authentication"); #define aXFLAG 0 #define aPRINCIPAL 1 *************** *** 135,143 **** return !ok; } ! CommandProc (as, arock) ! char *arock; ! struct cmd_syndesc *as; { char name[MAXKTCNAMELEN]; char instance[MAXKTCNAMELEN]; --- 135,142 ---- return !ok; } ! static int ! CommandProc (struct cmd_syndesc *as, void *arock) { char name[MAXKTCNAMELEN]; char instance[MAXKTCNAMELEN]; Index: openafs/src/WINNT/afsd/cunlog.c diff -c openafs/src/WINNT/afsd/cunlog.c:1.2 openafs/src/WINNT/afsd/cunlog.c:1.2.20.1 *** openafs/src/WINNT/afsd/cunlog.c:1.2 Sat Nov 4 05:01:41 2000 --- openafs/src/WINNT/afsd/cunlog.c Wed Oct 31 00:13:20 2007 *************** *** 15,23 **** #include #include ! CommandProc (as, arock) ! char *arock; ! struct cmd_syndesc *as; { afs_int32 code, ecode=0; struct ktc_principal server; --- 15,22 ---- #include #include ! static int ! CommandProc (struct cmd_syndesc *as, void *arock) { afs_int32 code, ecode=0; struct ktc_principal server; *************** *** 55,61 **** WSAStartup(0x0101, &WSAjunk); ! ts = cmd_CreateSyntax((char *) 0, CommandProc, 0, "Release Kerberos authentication"); cmd_AddParm(ts, "-cell", CMD_LIST, CMD_OPTIONAL, "cell name"); code = cmd_Dispatch(argc, argv); --- 54,60 ---- WSAStartup(0x0101, &WSAjunk); ! ts = cmd_CreateSyntax(NULL, CommandProc, NULL, "Release Kerberos authentication"); cmd_AddParm(ts, "-cell", CMD_LIST, CMD_OPTIONAL, "cell name"); code = cmd_Dispatch(argc, argv); Index: openafs/src/WINNT/afsd/fs.c diff -c openafs/src/WINNT/afsd/fs.c:1.16.2.21 openafs/src/WINNT/afsd/fs.c:1.16.2.22 *** openafs/src/WINNT/afsd/fs.c:1.16.2.21 Tue Apr 10 14:43:35 2007 --- openafs/src/WINNT/afsd/fs.c Wed Oct 31 00:13:20 2007 *************** *** 50,66 **** static struct ubik_client *uclient; ! static int GetClientAddrsCmd(struct cmd_syndesc *asp, char *arock); ! static int SetClientAddrsCmd(struct cmd_syndesc *asp, char *arock); ! static int FlushMountCmd(struct cmd_syndesc *asp, char *arock); ! static int RxStatProcCmd(struct cmd_syndesc *asp, char *arock); ! static int RxStatPeerCmd(struct cmd_syndesc *asp, char *arock); extern struct cmd_syndesc *cmd_CreateSyntax(); ! static int MemDumpCmd(struct cmd_syndesc *asp, char *arock); ! static int CSCPolicyCmd(struct cmd_syndesc *asp, char *arock); ! static int MiniDumpCmd(struct cmd_syndesc *asp, char *arock); static char pn[] = "fs"; static int rxInitDone = 0; --- 50,66 ---- static struct ubik_client *uclient; ! static int GetClientAddrsCmd(struct cmd_syndesc *asp, void *arock); ! static int SetClientAddrsCmd(struct cmd_syndesc *asp, void *arock); ! static int FlushMountCmd(struct cmd_syndesc *asp, void *arock); ! static int RxStatProcCmd(struct cmd_syndesc *asp, void *arock); ! static int RxStatPeerCmd(struct cmd_syndesc *asp, void *arock); extern struct cmd_syndesc *cmd_CreateSyntax(); ! static int MemDumpCmd(struct cmd_syndesc *asp, void *arock); ! static int CSCPolicyCmd(struct cmd_syndesc *asp, void *arock); ! static int MiniDumpCmd(struct cmd_syndesc *asp, void *arock); static char pn[] = "fs"; static int rxInitDone = 0; *************** *** 873,879 **** } static int ! SetACLCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 873,879 ---- } static int ! SetACLCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 1003,1009 **** } static int ! CopyACLCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 1003,1009 ---- } static int ! CopyACLCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 1179,1185 **** /* clean up an acl to not have bogus entries */ static int ! CleanACLCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct Acl *ta = 0; --- 1179,1185 ---- /* clean up an acl to not have bogus entries */ static int ! CleanACLCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct Acl *ta = 0; *************** *** 1266,1272 **** } static int ! ListACLCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct Acl *ta = 0; --- 1266,1272 ---- } static int ! ListACLCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct Acl *ta = 0; *************** *** 1332,1338 **** } static int ! FlushAllCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 1332,1338 ---- } static int ! FlushAllCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 1347,1353 **** } static int ! FlushVolumeCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 1347,1353 ---- } static int ! FlushVolumeCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 1369,1375 **** } static int ! FlushCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 1369,1375 ---- } static int ! FlushCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 1397,1403 **** /* all this command does is repackage its args and call SetVolCmd */ static int ! SetQuotaCmd(struct cmd_syndesc *as, char *arock) { struct cmd_syndesc ts; /* copy useful stuff from our command slot; we may later have to reorder */ --- 1397,1403 ---- /* all this command does is repackage its args and call SetVolCmd */ static int ! SetQuotaCmd(struct cmd_syndesc *as, void *arock) { struct cmd_syndesc ts; /* copy useful stuff from our command slot; we may later have to reorder */ *************** *** 1406,1412 **** } static int ! SetVolCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; struct cmd_item *ti; --- 1406,1412 ---- } static int ! SetVolCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; struct cmd_item *ti; *************** *** 1482,1488 **** #endif /* WIN32 */ static int ! ExamineCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 1482,1488 ---- #endif /* WIN32 */ static int ! ExamineCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 1545,1551 **** } static int ! ListQuotaCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 1545,1551 ---- } static int ! ListQuotaCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 1577,1583 **** } static int ! WhereIsCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 1577,1583 ---- } static int ! WhereIsCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 1616,1622 **** static int ! DiskFreeCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 1616,1622 ---- static int ! DiskFreeCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 1647,1653 **** } static int ! QuotaCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 1647,1653 ---- } static int ! QuotaCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 1679,1685 **** } static int ! ListMountCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 1679,1685 ---- } static int ! ListMountCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 1831,1837 **** } static int ! MakeMountCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; char *cellName, *volName, *tmpName; --- 1831,1837 ---- } static int ! MakeMountCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; char *cellName, *volName, *tmpName; *************** *** 1973,1979 **** * tp: Set to point to the actual name of the mount point to nuke. */ static int ! RemoveMountCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code=0; struct ViceIoctl blob; struct cmd_item *ti; --- 1973,1979 ---- * tp: Set to point to the actual name of the mount point to nuke. */ static int ! RemoveMountCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code=0; struct ViceIoctl blob; struct cmd_item *ti; *************** *** 2049,2055 **** */ static int ! CheckServersCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 2049,2055 ---- */ static int ! CheckServersCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 2155,2161 **** } static int ! MessagesCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code=0; struct ViceIoctl blob; --- 2155,2161 ---- } static int ! MessagesCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code=0; struct ViceIoctl blob; *************** *** 2198,2204 **** } static int ! CheckVolumesCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 2198,2204 ---- } static int ! CheckVolumesCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 2216,2222 **** } static int ! SetCacheSizeCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 2216,2222 ---- } static int ! SetCacheSizeCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 2261,2267 **** #define MAXGCSIZE 16 static int ! GetCacheParmsCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 2261,2267 ---- #define MAXGCSIZE 16 static int ! GetCacheParmsCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 2286,2292 **** } static int ! ListCellsCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; afs_int32 i, j, *lp, magic, size; --- 2286,2292 ---- } static int ! ListCellsCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; afs_int32 i, j, *lp, magic, size; *************** *** 2346,2352 **** #ifndef WIN32 static int ! ListAliasesCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code, i; char *tp, *aliasName, *realName; --- 2346,2352 ---- #ifndef WIN32 static int ! ListAliasesCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code, i; char *tp, *aliasName, *realName; *************** *** 2376,2382 **** } static int ! CallBackRxConnCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 2376,2382 ---- } static int ! CallBackRxConnCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 2416,2422 **** #endif /* WIN32 */ static int ! NewCellCmd(struct cmd_syndesc *as, char *arock) { #ifndef WIN32 afs_int32 code, linkedstate=0, size=0, *lp; --- 2416,2422 ---- #endif /* WIN32 */ static int ! NewCellCmd(struct cmd_syndesc *as, void *arock) { #ifndef WIN32 afs_int32 code, linkedstate=0, size=0, *lp; *************** *** 2513,2519 **** #ifndef WIN32 static int ! NewAliasCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 2513,2519 ---- #ifndef WIN32 static int ! NewAliasCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 2549,2555 **** #endif /* WIN32 */ static int ! WhichCellCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct cmd_item *ti; --- 2549,2555 ---- #endif /* WIN32 */ static int ! WhichCellCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct cmd_item *ti; *************** *** 2573,2579 **** } static int ! WSCellCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 2573,2579 ---- } static int ! WSCellCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 2596,2602 **** /* static int ! PrimaryCellCmd(struct cmd_syndesc *as, char *arock) { fprintf(stderr,"This command is obsolete, as is the concept of a primary token.\n"); return 0; --- 2596,2602 ---- /* static int ! PrimaryCellCmd(struct cmd_syndesc *as, void *arock) { fprintf(stderr,"This command is obsolete, as is the concept of a primary token.\n"); return 0; *************** *** 2604,2610 **** */ static int ! MonitorCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 2604,2610 ---- */ static int ! MonitorCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 2664,2670 **** } static int ! SysNameCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 2664,2670 ---- } static int ! SysNameCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 2734,2740 **** } static char *exported_types[] = {"null", "nfs", ""}; ! static int ExportAfsCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 2734,2740 ---- } static char *exported_types[] = {"null", "nfs", ""}; ! static int ExportAfsCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 2837,2843 **** static int ! GetCellCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 2837,2843 ---- static int ! GetCellCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 2886,2892 **** return error; } ! static int SetCellCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 2886,2892 ---- return error; } ! static int SetCellCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 3173,3179 **** #ifdef WIN32 static int ! SetPrefCmd(struct cmd_syndesc *as, char * arock) { FILE *infd; afs_int32 code; --- 3173,3179 ---- #ifdef WIN32 static int ! SetPrefCmd(struct cmd_syndesc *as, void * arock) { FILE *infd; afs_int32 code; *************** *** 3263,3269 **** } #else static int ! SetPrefCmd(struct cmd_syndesc *as, char *arock) { FILE *infd; afs_int32 code; --- 3263,3269 ---- } #else static int ! SetPrefCmd(struct cmd_syndesc *as, void *arock) { FILE *infd; afs_int32 code; *************** *** 3369,3375 **** #ifdef WIN32 static int ! GetPrefCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct cmd_item *ti; --- 3369,3375 ---- #ifdef WIN32 static int ! GetPrefCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct cmd_item *ti; *************** *** 3440,3446 **** } #else static int ! GetPrefCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct cmd_item *ti; --- 3440,3446 ---- } #else static int ! GetPrefCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct cmd_item *ti; *************** *** 3511,3517 **** #endif /* WIN32 */ static int ! TraceCmd(struct cmd_syndesc *asp, char *arock) { long code; struct ViceIoctl blob; --- 3511,3517 ---- #endif /* WIN32 */ static int ! TraceCmd(struct cmd_syndesc *asp, void *arock) { long code; struct ViceIoctl blob; *************** *** 3573,3579 **** /* fs sb -kbytes 9999 -files *.o -default 64 */ static int ! StoreBehindCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code = 0; struct ViceIoctl blob; --- 3573,3579 ---- /* fs sb -kbytes 9999 -files *.o -default 64 */ static int ! StoreBehindCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code = 0; struct ViceIoctl blob; *************** *** 3680,3686 **** } static afs_int32 ! SetCryptCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code = 0, flag; struct ViceIoctl blob; --- 3680,3686 ---- } static afs_int32 ! SetCryptCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code = 0, flag; struct ViceIoctl blob; *************** *** 3713,3719 **** } static afs_int32 ! GetCryptCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code = 0, flag; struct ViceIoctl blob; --- 3713,3719 ---- } static afs_int32 ! GetCryptCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code = 0, flag; struct ViceIoctl blob; *************** *** 3741,3747 **** } static int ! MemDumpCmd(struct cmd_syndesc *asp, char *arock) { long code; struct ViceIoctl blob; --- 3741,3747 ---- } static int ! MemDumpCmd(struct cmd_syndesc *asp, void *arock) { long code; struct ViceIoctl blob; *************** *** 3786,3792 **** } static int ! MiniDumpCmd(struct cmd_syndesc *asp, char *arock) { BOOL success = 0; SERVICE_STATUS status; --- 3786,3792 ---- } static int ! MiniDumpCmd(struct cmd_syndesc *asp, void *arock) { BOOL success = 0; SERVICE_STATUS status; *************** *** 3827,3833 **** } static int ! CSCPolicyCmd(struct cmd_syndesc *asp, char *arock) { struct cmd_item *ti; char *share = NULL; --- 3827,3833 ---- } static int ! CSCPolicyCmd(struct cmd_syndesc *asp, void *arock) { struct cmd_item *ti; char *share = NULL; *************** *** 3941,3947 **** #ifndef WIN32 /* get clients interface addresses */ static int ! GetClientAddrsCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct cmd_item *ti; --- 3941,3947 ---- #ifndef WIN32 /* get clients interface addresses */ static int ! GetClientAddrsCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct cmd_item *ti; *************** *** 3987,3993 **** } static int ! SetClientAddrsCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code, addr; struct cmd_item *ti; --- 3987,3993 ---- } static int ! SetClientAddrsCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code, addr; struct cmd_item *ti; *************** *** 4061,4067 **** } static int ! FlushMountCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; struct ViceIoctl blob; --- 4061,4067 ---- } static int ! FlushMountCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; struct ViceIoctl blob; *************** *** 4178,4184 **** #endif /* WIN32 */ static int ! RxStatProcCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; afs_int32 flags = 0; --- 4178,4184 ---- #endif /* WIN32 */ static int ! RxStatProcCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; afs_int32 flags = 0; *************** *** 4213,4219 **** } static int ! RxStatPeerCmd(struct cmd_syndesc *as, char *arock) { afs_int32 code; afs_int32 flags = 0; --- 4213,4219 ---- } static int ! RxStatPeerCmd(struct cmd_syndesc *as, void *arock) { afs_int32 code; afs_int32 flags = 0; *************** *** 4280,4311 **** osi_Init(); #ifndef WIN32 ! ts = cmd_CreateSyntax("getclientaddrs", GetClientAddrsCmd, 0, "get client network interface addresses"); cmd_CreateAlias(ts, "gc"); ! ts = cmd_CreateSyntax("setclientaddrs", SetClientAddrsCmd, 0, "set client network interface addresses"); cmd_AddParm(ts, "-address", CMD_LIST, CMD_OPTIONAL | CMD_EXPANDS, "client network interfaces"); cmd_CreateAlias(ts, "sc"); #endif /* WIN32 */ ! ts = cmd_CreateSyntax("setserverprefs", SetPrefCmd, 0, "set server ranks"); cmd_AddParm(ts, "-servers", CMD_LIST, CMD_OPTIONAL|CMD_EXPANDS, "fileserver names and ranks"); cmd_AddParm(ts, "-vlservers", CMD_LIST, CMD_OPTIONAL|CMD_EXPANDS, "VL server names and ranks"); cmd_AddParm(ts, "-file", CMD_SINGLE, CMD_OPTIONAL, "input from named file"); cmd_AddParm(ts, "-stdin", CMD_FLAG, CMD_OPTIONAL, "input from stdin"); cmd_CreateAlias(ts, "sp"); ! ts = cmd_CreateSyntax("getserverprefs", GetPrefCmd, 0, "get server ranks"); cmd_AddParm(ts, "-file", CMD_SINGLE, CMD_OPTIONAL, "output to named file"); cmd_AddParm(ts, "-numeric", CMD_FLAG, CMD_OPTIONAL, "addresses only"); cmd_AddParm(ts, "-vlservers", CMD_FLAG, CMD_OPTIONAL, "VL servers"); /* cmd_AddParm(ts, "-cell", CMD_FLAG, CMD_OPTIONAL, "cellname"); */ cmd_CreateAlias(ts, "gp"); ! ts = cmd_CreateSyntax("setacl", SetACLCmd, 0, "set access control list"); cmd_AddParm(ts, "-dir", CMD_LIST, 0, "directory"); cmd_AddParm(ts, "-acl", CMD_LIST, 0, "access list entries"); cmd_AddParm(ts, "-clear", CMD_FLAG, CMD_OPTIONAL, "clear access list"); --- 4280,4311 ---- osi_Init(); #ifndef WIN32 ! ts = cmd_CreateSyntax("getclientaddrs", GetClientAddrsCmd, NULL, "get client network interface addresses"); cmd_CreateAlias(ts, "gc"); ! ts = cmd_CreateSyntax("setclientaddrs", SetClientAddrsCmd, NULL, "set client network interface addresses"); cmd_AddParm(ts, "-address", CMD_LIST, CMD_OPTIONAL | CMD_EXPANDS, "client network interfaces"); cmd_CreateAlias(ts, "sc"); #endif /* WIN32 */ ! ts = cmd_CreateSyntax("setserverprefs", SetPrefCmd, NULL, "set server ranks"); cmd_AddParm(ts, "-servers", CMD_LIST, CMD_OPTIONAL|CMD_EXPANDS, "fileserver names and ranks"); cmd_AddParm(ts, "-vlservers", CMD_LIST, CMD_OPTIONAL|CMD_EXPANDS, "VL server names and ranks"); cmd_AddParm(ts, "-file", CMD_SINGLE, CMD_OPTIONAL, "input from named file"); cmd_AddParm(ts, "-stdin", CMD_FLAG, CMD_OPTIONAL, "input from stdin"); cmd_CreateAlias(ts, "sp"); ! ts = cmd_CreateSyntax("getserverprefs", GetPrefCmd, NULL, "get server ranks"); cmd_AddParm(ts, "-file", CMD_SINGLE, CMD_OPTIONAL, "output to named file"); cmd_AddParm(ts, "-numeric", CMD_FLAG, CMD_OPTIONAL, "addresses only"); cmd_AddParm(ts, "-vlservers", CMD_FLAG, CMD_OPTIONAL, "VL servers"); /* cmd_AddParm(ts, "-cell", CMD_FLAG, CMD_OPTIONAL, "cellname"); */ cmd_CreateAlias(ts, "gp"); ! ts = cmd_CreateSyntax("setacl", SetACLCmd, NULL, "set access control list"); cmd_AddParm(ts, "-dir", CMD_LIST, 0, "directory"); cmd_AddParm(ts, "-acl", CMD_LIST, 0, "access list entries"); cmd_AddParm(ts, "-clear", CMD_FLAG, CMD_OPTIONAL, "clear access list"); *************** *** 4315,4331 **** cmd_AddParm(ts, "-if", CMD_FLAG, CMD_OPTIONAL, "initial file acl (DFS only)"); cmd_CreateAlias(ts, "sa"); ! ts = cmd_CreateSyntax("listacl", ListACLCmd, 0, "list access control list"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); parm_listacl_id = ts->nParms; cmd_AddParm(ts, "-id", CMD_FLAG, CMD_OPTIONAL, "initial directory acl"); cmd_AddParm(ts, "-if", CMD_FLAG, CMD_OPTIONAL, "initial file acl"); cmd_CreateAlias(ts, "la"); ! ts = cmd_CreateSyntax("cleanacl", CleanACLCmd, 0, "clean up access control list"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); ! ts = cmd_CreateSyntax("copyacl", CopyACLCmd, 0, "copy access control list"); cmd_AddParm(ts, "-fromdir", CMD_SINGLE, 0, "source directory (or DFS file)"); cmd_AddParm(ts, "-todir", CMD_LIST, 0, "destination directory (or DFS file)"); cmd_AddParm(ts, "-clear", CMD_FLAG, CMD_OPTIONAL, "first clear dest access list"); --- 4315,4331 ---- cmd_AddParm(ts, "-if", CMD_FLAG, CMD_OPTIONAL, "initial file acl (DFS only)"); cmd_CreateAlias(ts, "sa"); ! ts = cmd_CreateSyntax("listacl", ListACLCmd, NULL, "list access control list"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); parm_listacl_id = ts->nParms; cmd_AddParm(ts, "-id", CMD_FLAG, CMD_OPTIONAL, "initial directory acl"); cmd_AddParm(ts, "-if", CMD_FLAG, CMD_OPTIONAL, "initial file acl"); cmd_CreateAlias(ts, "la"); ! ts = cmd_CreateSyntax("cleanacl", CleanACLCmd, NULL, "clean up access control list"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); ! ts = cmd_CreateSyntax("copyacl", CopyACLCmd, NULL, "copy access control list"); cmd_AddParm(ts, "-fromdir", CMD_SINGLE, 0, "source directory (or DFS file)"); cmd_AddParm(ts, "-todir", CMD_LIST, 0, "destination directory (or DFS file)"); cmd_AddParm(ts, "-clear", CMD_FLAG, CMD_OPTIONAL, "first clear dest access list"); *************** *** 4335,4350 **** cmd_CreateAlias(ts, "ca"); ! ts = cmd_CreateSyntax("flush", FlushCmd, 0, "flush file from cache"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); #ifndef WIN32 ! ts = cmd_CreateSyntax("flushmount", FlushMountCmd, 0, "flush mount symlink from cache"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); #endif ! ts = cmd_CreateSyntax("setvol", SetVolCmd, 0, "set volume status"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); cmd_AddParm(ts, "-max", CMD_SINGLE, CMD_OPTIONAL, "disk space quota in 1K units"); #ifdef notdef --- 4335,4350 ---- cmd_CreateAlias(ts, "ca"); ! ts = cmd_CreateSyntax("flush", FlushCmd, NULL, "flush file from cache"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); #ifndef WIN32 ! ts = cmd_CreateSyntax("flushmount", FlushMountCmd, NULL, "flush mount symlink from cache"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); #endif ! ts = cmd_CreateSyntax("setvol", SetVolCmd, NULL, "set volume status"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); cmd_AddParm(ts, "-max", CMD_SINGLE, CMD_OPTIONAL, "disk space quota in 1K units"); #ifdef notdef *************** *** 4354,4382 **** cmd_AddParm(ts, "-offlinemsg", CMD_SINGLE, CMD_OPTIONAL, "offline message"); cmd_CreateAlias(ts, "sv"); ! ts = cmd_CreateSyntax("messages", MessagesCmd, 0, "control Cache Manager messages"); cmd_AddParm(ts, "-show", CMD_SINGLE, CMD_OPTIONAL, "[user|console|all|none]"); ! ts = cmd_CreateSyntax("examine", ExamineCmd, 0, "display file/volume status"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); cmd_CreateAlias(ts, "lv"); cmd_CreateAlias(ts, "listvol"); ! ts = cmd_CreateSyntax("listquota", ListQuotaCmd, 0, "list volume quota"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); cmd_CreateAlias(ts, "lq"); ! ts = cmd_CreateSyntax("diskfree", DiskFreeCmd, 0, "show server disk space usage"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); cmd_CreateAlias(ts, "df"); ! ts = cmd_CreateSyntax("quota", QuotaCmd, 0, "show volume quota usage"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); ! ts = cmd_CreateSyntax("lsmount", ListMountCmd, 0, "list mount point"); cmd_AddParm(ts, "-dir", CMD_LIST, 0, "directory"); ! ts = cmd_CreateSyntax("mkmount", MakeMountCmd, 0, "make mount point"); cmd_AddParm(ts, "-dir", CMD_SINGLE, 0, "directory"); cmd_AddParm(ts, "-vol", CMD_SINGLE, 0, "volume name"); cmd_AddParm(ts, "-cell", CMD_SINGLE, CMD_OPTIONAL, "cell name"); --- 4354,4382 ---- cmd_AddParm(ts, "-offlinemsg", CMD_SINGLE, CMD_OPTIONAL, "offline message"); cmd_CreateAlias(ts, "sv"); ! ts = cmd_CreateSyntax("messages", MessagesCmd, NULL, "control Cache Manager messages"); cmd_AddParm(ts, "-show", CMD_SINGLE, CMD_OPTIONAL, "[user|console|all|none]"); ! ts = cmd_CreateSyntax("examine", ExamineCmd, NULL, "display file/volume status"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); cmd_CreateAlias(ts, "lv"); cmd_CreateAlias(ts, "listvol"); ! ts = cmd_CreateSyntax("listquota", ListQuotaCmd, NULL, "list volume quota"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); cmd_CreateAlias(ts, "lq"); ! ts = cmd_CreateSyntax("diskfree", DiskFreeCmd, NULL, "show server disk space usage"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); cmd_CreateAlias(ts, "df"); ! ts = cmd_CreateSyntax("quota", QuotaCmd, NULL, "show volume quota usage"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); ! ts = cmd_CreateSyntax("lsmount", ListMountCmd, NULL, "list mount point"); cmd_AddParm(ts, "-dir", CMD_LIST, 0, "directory"); ! ts = cmd_CreateSyntax("mkmount", MakeMountCmd, NULL, "make mount point"); cmd_AddParm(ts, "-dir", CMD_SINGLE, 0, "directory"); cmd_AddParm(ts, "-vol", CMD_SINGLE, 0, "volume name"); cmd_AddParm(ts, "-cell", CMD_SINGLE, CMD_OPTIONAL, "cell name"); *************** *** 4391,4421 **** */ ! ts = cmd_CreateSyntax("rmmount", RemoveMountCmd, 0, "remove mount point"); cmd_AddParm(ts, "-dir", CMD_LIST, 0, "directory"); ! ts = cmd_CreateSyntax("checkservers", CheckServersCmd, 0, "check local cell's servers"); cmd_AddParm(ts, "-cell", CMD_SINGLE, CMD_OPTIONAL, "cell to check"); cmd_AddParm(ts, "-all", CMD_FLAG, CMD_OPTIONAL, "check all cells"); cmd_AddParm(ts, "-fast", CMD_FLAG, CMD_OPTIONAL, "just list, don't check"); cmd_AddParm(ts,"-interval",CMD_SINGLE,CMD_OPTIONAL,"seconds between probes"); ! ts = cmd_CreateSyntax("checkvolumes", CheckVolumesCmd,0, "check volumeID/name mappings"); cmd_CreateAlias(ts, "checkbackups"); ! ts = cmd_CreateSyntax("setcachesize", SetCacheSizeCmd, 0, "set cache size"); cmd_AddParm(ts, "-blocks", CMD_SINGLE, CMD_OPTIONAL, "size in 1K byte blocks (0 => reset)"); cmd_CreateAlias(ts, "cachesize"); cmd_AddParm(ts, "-reset", CMD_FLAG, CMD_OPTIONAL, "reset size back to boot value"); ! ts = cmd_CreateSyntax("getcacheparms", GetCacheParmsCmd, 0, "get cache usage info"); ! ts = cmd_CreateSyntax("listcells", ListCellsCmd, 0, "list configured cells"); cmd_AddParm(ts, "-numeric", CMD_FLAG, CMD_OPTIONAL, "addresses only"); ! ts = cmd_CreateSyntax("setquota", SetQuotaCmd, 0, "set volume quota"); cmd_AddParm(ts, "-path", CMD_SINGLE, CMD_OPTIONAL, "dir/file path"); cmd_AddParm(ts, "-max", CMD_SINGLE, 0, "max quota in kbytes"); #ifdef notdef --- 4391,4421 ---- */ ! ts = cmd_CreateSyntax("rmmount", RemoveMountCmd, NULL, "remove mount point"); cmd_AddParm(ts, "-dir", CMD_LIST, 0, "directory"); ! ts = cmd_CreateSyntax("checkservers", CheckServersCmd, NULL, "check local cell's servers"); cmd_AddParm(ts, "-cell", CMD_SINGLE, CMD_OPTIONAL, "cell to check"); cmd_AddParm(ts, "-all", CMD_FLAG, CMD_OPTIONAL, "check all cells"); cmd_AddParm(ts, "-fast", CMD_FLAG, CMD_OPTIONAL, "just list, don't check"); cmd_AddParm(ts,"-interval",CMD_SINGLE,CMD_OPTIONAL,"seconds between probes"); ! ts = cmd_CreateSyntax("checkvolumes", CheckVolumesCmd, NULL, "check volumeID/name mappings"); cmd_CreateAlias(ts, "checkbackups"); ! ts = cmd_CreateSyntax("setcachesize", SetCacheSizeCmd, NULL, "set cache size"); cmd_AddParm(ts, "-blocks", CMD_SINGLE, CMD_OPTIONAL, "size in 1K byte blocks (0 => reset)"); cmd_CreateAlias(ts, "cachesize"); cmd_AddParm(ts, "-reset", CMD_FLAG, CMD_OPTIONAL, "reset size back to boot value"); ! ts = cmd_CreateSyntax("getcacheparms", GetCacheParmsCmd, NULL, "get cache usage info"); ! ts = cmd_CreateSyntax("listcells", ListCellsCmd, NULL, "list configured cells"); cmd_AddParm(ts, "-numeric", CMD_FLAG, CMD_OPTIONAL, "addresses only"); ! ts = cmd_CreateSyntax("setquota", SetQuotaCmd, NULL, "set volume quota"); cmd_AddParm(ts, "-path", CMD_SINGLE, CMD_OPTIONAL, "dir/file path"); cmd_AddParm(ts, "-max", CMD_SINGLE, 0, "max quota in kbytes"); #ifdef notdef *************** *** 4423,4429 **** #endif cmd_CreateAlias(ts, "sq"); ! ts = cmd_CreateSyntax("newcell", NewCellCmd, 0, "configure new cell"); #ifndef WIN32 cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "cell name"); cmd_AddParm(ts, "-servers", CMD_LIST, CMD_REQUIRED, "primary servers"); --- 4423,4429 ---- #endif cmd_CreateAlias(ts, "sq"); ! ts = cmd_CreateSyntax("newcell", NewCellCmd, NULL, "configure new cell"); #ifndef WIN32 cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "cell name"); cmd_AddParm(ts, "-servers", CMD_LIST, CMD_REQUIRED, "primary servers"); *************** *** 4440,4485 **** cmd_AddParm(ts, "-vlport", CMD_SINGLE, CMD_OPTIONAL, "cell's vldb server port"); #endif ! ts = cmd_CreateSyntax("newalias", NewAliasCmd, 0, "configure new cell alias"); cmd_AddParm(ts, "-alias", CMD_SINGLE, 0, "alias name"); cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "real name of cell"); #endif ! ts = cmd_CreateSyntax("whichcell", WhichCellCmd, 0, "list file's cell"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); ! ts = cmd_CreateSyntax("whereis", WhereIsCmd, 0, "list file's location"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); ! ts = cmd_CreateSyntax("wscell", WSCellCmd, 0, "list workstation's cell"); /* ts = cmd_CreateSyntax("primarycell", PrimaryCellCmd, 0, "obsolete (listed primary cell)"); */ ! ts = cmd_CreateSyntax("monitor", MonitorCmd, 0, "set cache monitor host address"); cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_OPTIONAL, "host name or 'off'"); cmd_CreateAlias(ts, "mariner"); ! ts = cmd_CreateSyntax("getcellstatus", GetCellCmd, 0, "get cell status"); cmd_AddParm(ts, "-cell", CMD_LIST, 0, "cell name"); ! ts = cmd_CreateSyntax("setcell", SetCellCmd, 0, "set cell status"); cmd_AddParm(ts, "-cell", CMD_LIST, 0, "cell name"); cmd_AddParm(ts, "-suid", CMD_FLAG, CMD_OPTIONAL, "allow setuid programs"); cmd_AddParm(ts, "-nosuid", CMD_FLAG, CMD_OPTIONAL, "disallow setuid programs"); ! ts = cmd_CreateSyntax("flushall", FlushAllCmd, 0, "flush all data"); ! ts = cmd_CreateSyntax("flushvolume", FlushVolumeCmd, 0, "flush all data in volume"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); ! ts = cmd_CreateSyntax("sysname", SysNameCmd, 0, "get/set sysname (i.e. @sys) value"); cmd_AddParm(ts, "-newsys", CMD_LIST, CMD_OPTIONAL, "new sysname"); ! ts = cmd_CreateSyntax("exportafs", ExportAfsCmd, 0, "enable/disable translators to AFS"); cmd_AddParm(ts, "-type", CMD_SINGLE, 0, "exporter name"); cmd_AddParm(ts, "-start", CMD_SINGLE, CMD_OPTIONAL, "start/stop translator ('on' or 'off')"); cmd_AddParm(ts, "-convert", CMD_SINGLE, CMD_OPTIONAL, "convert from afs to unix mode ('on or 'off')"); --- 4440,4485 ---- cmd_AddParm(ts, "-vlport", CMD_SINGLE, CMD_OPTIONAL, "cell's vldb server port"); #endif ! ts = cmd_CreateSyntax("newalias", NewAliasCmd, NULL, "configure new cell alias"); cmd_AddParm(ts, "-alias", CMD_SINGLE, 0, "alias name"); cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "real name of cell"); #endif ! ts = cmd_CreateSyntax("whichcell", WhichCellCmd, NULL, "list file's cell"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); ! ts = cmd_CreateSyntax("whereis", WhereIsCmd, NULL, "list file's location"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); ! ts = cmd_CreateSyntax("wscell", WSCellCmd, NULL, "list workstation's cell"); /* ts = cmd_CreateSyntax("primarycell", PrimaryCellCmd, 0, "obsolete (listed primary cell)"); */ ! ts = cmd_CreateSyntax("monitor", MonitorCmd, NULL, "set cache monitor host address"); cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_OPTIONAL, "host name or 'off'"); cmd_CreateAlias(ts, "mariner"); ! ts = cmd_CreateSyntax("getcellstatus", GetCellCmd, NULL, "get cell status"); cmd_AddParm(ts, "-cell", CMD_LIST, 0, "cell name"); ! ts = cmd_CreateSyntax("setcell", SetCellCmd, NULL, "set cell status"); cmd_AddParm(ts, "-cell", CMD_LIST, 0, "cell name"); cmd_AddParm(ts, "-suid", CMD_FLAG, CMD_OPTIONAL, "allow setuid programs"); cmd_AddParm(ts, "-nosuid", CMD_FLAG, CMD_OPTIONAL, "disallow setuid programs"); ! ts = cmd_CreateSyntax("flushall", FlushAllCmd, NULL, "flush all data"); ! ts = cmd_CreateSyntax("flushvolume", FlushVolumeCmd, NULL, "flush all data in volume"); cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path"); ! ts = cmd_CreateSyntax("sysname", SysNameCmd, NULL, "get/set sysname (i.e. @sys) value"); cmd_AddParm(ts, "-newsys", CMD_LIST, CMD_OPTIONAL, "new sysname"); ! ts = cmd_CreateSyntax("exportafs", ExportAfsCmd, NULL, "enable/disable translators to AFS"); cmd_AddParm(ts, "-type", CMD_SINGLE, 0, "exporter name"); cmd_AddParm(ts, "-start", CMD_SINGLE, CMD_OPTIONAL, "start/stop translator ('on' or 'off')"); cmd_AddParm(ts, "-convert", CMD_SINGLE, CMD_OPTIONAL, "convert from afs to unix mode ('on or 'off')"); Index: openafs/src/WINNT/afsd/symlink.c diff -c openafs/src/WINNT/afsd/symlink.c:1.2.20.5 openafs/src/WINNT/afsd/symlink.c:1.2.20.6 *** openafs/src/WINNT/afsd/symlink.c:1.2.20.5 Tue Apr 10 14:43:36 2007 --- openafs/src/WINNT/afsd/symlink.c Wed Oct 31 00:13:21 2007 *************** *** 269,276 **** } ! static ListLinkCmd(as) ! register struct cmd_syndesc *as; { register afs_int32 code; struct ViceIoctl blob; int error; --- 269,276 ---- } ! static ListLinkCmd(register struct cmd_syndesc *as, void *arock) ! { register afs_int32 code; struct ViceIoctl blob; int error; *************** *** 420,427 **** return error; } ! static MakeLinkCmd(as) ! register struct cmd_syndesc *as; { register afs_int32 code; struct ViceIoctl blob; char * parent; --- 420,427 ---- return error; } ! static MakeLinkCmd(register struct cmd_syndesc *as, void *arock) ! { register afs_int32 code; struct ViceIoctl blob; char * parent; *************** *** 484,491 **** * symlink (or ``.'' if none is provided) * tp: Set to point to the actual name of the symlink to nuke. */ ! static RemoveLinkCmd(as) ! register struct cmd_syndesc *as; { register afs_int32 code=0; struct ViceIoctl blob; register struct cmd_item *ti; --- 484,491 ---- * symlink (or ``.'' if none is provided) * tp: Set to point to the actual name of the symlink to nuke. */ ! static RemoveLinkCmd(register struct cmd_syndesc *as, void *arock) ! { register afs_int32 code=0; struct ViceIoctl blob; register struct cmd_item *ti; *************** *** 589,602 **** osi_Init(); ! ts = cmd_CreateSyntax("list", ListLinkCmd, 0, "list symlink"); cmd_AddParm(ts, "-name", CMD_LIST, 0, "name"); ! ts = cmd_CreateSyntax("make", MakeLinkCmd, 0, "make symlink"); cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "name"); cmd_AddParm(ts, "-to", CMD_SINGLE, 0, "target"); ! ts = cmd_CreateSyntax("remove", RemoveLinkCmd, 0, "remove symlink"); cmd_AddParm(ts, "-name", CMD_LIST, 0, "name"); cmd_CreateAlias(ts, "rm"); --- 589,602 ---- osi_Init(); ! ts = cmd_CreateSyntax("list", ListLinkCmd, NULL, "list symlink"); cmd_AddParm(ts, "-name", CMD_LIST, 0, "name"); ! ts = cmd_CreateSyntax("make", MakeLinkCmd, NULL, "make symlink"); cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "name"); cmd_AddParm(ts, "-to", CMD_SINGLE, 0, "target"); ! ts = cmd_CreateSyntax("remove", RemoveLinkCmd, NULL, "remove symlink"); cmd_AddParm(ts, "-name", CMD_LIST, 0, "name"); cmd_CreateAlias(ts, "rm"); Index: openafs/src/WINNT/afsd/sample/token.c diff -c openafs/src/WINNT/afsd/sample/token.c:1.3.2.1 openafs/src/WINNT/afsd/sample/token.c:1.3.2.2 *** openafs/src/WINNT/afsd/sample/token.c:1.3.2.1 Tue Apr 10 14:43:36 2007 --- openafs/src/WINNT/afsd/sample/token.c Wed Oct 31 00:13:21 2007 *************** *** 18,24 **** #define KABADARGUMENT 1 #define KLOGEXIT(code) exit(code) ! int CommandProc(); static int zero_argc; static char **zero_argv; --- 18,24 ---- #define KABADARGUMENT 1 #define KLOGEXIT(code) exit(code) ! int CommandProc(struct cmd_syndesc *, void *); static int zero_argc; static char **zero_argv; *************** *** 36,42 **** /* Start up sockets */ WSAStartup(0x0101, &WSAjunk); ! ts = cmd_CreateSyntax((char *) 0, CommandProc, 0, "obtain Kerberos authentication"); #define aXFLAG 0 #define aPRINCIPAL 1 --- 36,42 ---- /* Start up sockets */ WSAStartup(0x0101, &WSAjunk); ! ts = cmd_CreateSyntax(NULL, CommandProc, NULL, "obtain Kerberos authentication"); #define aXFLAG 0 #define aPRINCIPAL 1 *************** *** 131,139 **** return !ok; } ! CommandProc (as, arock) ! char *arock; ! struct cmd_syndesc *as; { char name[MAXKTCNAMELEN]; char defaultCell[256]; --- 131,138 ---- return !ok; } ! int ! CommandProc (struct cmd_syndesc *as, void *arock) { char name[MAXKTCNAMELEN]; char defaultCell[256]; Index: openafs/src/WINNT/afsreg/test/regman.c diff -c openafs/src/WINNT/afsreg/test/regman.c:1.3.8.1 openafs/src/WINNT/afsreg/test/regman.c:1.3.8.2 *** openafs/src/WINNT/afsreg/test/regman.c:1.3.8.1 Tue Apr 10 14:43:37 2007 --- openafs/src/WINNT/afsreg/test/regman.c Wed Oct 31 00:13:22 2007 *************** *** 35,41 **** static char* whoami; ! static int DoVptList(struct cmd_syndesc *as, char *arock) { struct vpt_iter vpiter; struct vptab vpentry; --- 35,41 ---- static char* whoami; ! static int DoVptList(struct cmd_syndesc *as, void *arock) { struct vpt_iter vpiter; struct vptab vpentry; *************** *** 51,57 **** return 0; } ! static int DoVptAdd(struct cmd_syndesc *as, char *arock) { char *vpName, *vpDev; struct vptab vpentry; --- 51,57 ---- return 0; } ! static int DoVptAdd(struct cmd_syndesc *as, void *arock) { char *vpName, *vpDev; struct vptab vpentry; *************** *** 79,85 **** return 0; } ! static int DoVptDel(struct cmd_syndesc *as, char *arock) { char *vpName; --- 79,85 ---- return 0; } ! static int DoVptDel(struct cmd_syndesc *as, void *arock) { char *vpName; *************** *** 98,104 **** } ! static int DoDirGet(struct cmd_syndesc *as, char *arock) { char *buf; --- 98,104 ---- } ! static int DoDirGet(struct cmd_syndesc *as, void *arock) { char *buf; *************** *** 115,121 **** } ! static int DoDirSet(struct cmd_syndesc *as, char *arock) { long status; HKEY key; --- 115,121 ---- } ! static int DoDirSet(struct cmd_syndesc *as, void *arock) { long status; HKEY key; *************** *** 143,149 **** } ! static int DoBosCfg(struct cmd_syndesc *as, char *arock) { char bosSvcPath[AFSDIR_PATH_MAX]; SC_HANDLE scmHandle, svcHandle; --- 143,149 ---- } ! static int DoBosCfg(struct cmd_syndesc *as, void *arock) { char bosSvcPath[AFSDIR_PATH_MAX]; SC_HANDLE scmHandle, svcHandle; *************** *** 213,219 **** } ! static int DoBosDel(struct cmd_syndesc *as, char *arock) { int rc = 0; SC_HANDLE scmHandle, svcHandle; --- 213,219 ---- } ! static int DoBosDel(struct cmd_syndesc *as, void *arock) { int rc = 0; SC_HANDLE scmHandle, svcHandle; *************** *** 258,264 **** return (rc); } ! static int DoVersionGet(struct cmd_syndesc *as, char *arock) { unsigned major, minor, patch; --- 258,264 ---- return (rc); } ! static int DoVersionGet(struct cmd_syndesc *as, void *arock) { unsigned major, minor, patch; *************** *** 286,300 **** { struct cmd_syndesc *ts; ! ts = cmd_CreateSyntax("vptlist", DoVptList, 0, "list vice partition table"); ! ts = cmd_CreateSyntax("vptadd", DoVptAdd, 0, "add entry to vice partition table"); cmd_AddParm(ts, "-partition", CMD_SINGLE, CMD_REQUIRED, "partition name"); cmd_AddParm(ts, "-dev", CMD_SINGLE, CMD_REQUIRED, "device name"); ! ts = cmd_CreateSyntax("vptdel", DoVptDel, 0, "remove entry from vice partition table"); cmd_AddParm(ts, "-partition", CMD_SINGLE, CMD_REQUIRED, "partition name"); } --- 286,300 ---- { struct cmd_syndesc *ts; ! ts = cmd_CreateSyntax("vptlist", DoVptList, NULL, "list vice partition table"); ! ts = cmd_CreateSyntax("vptadd", DoVptAdd, NULL, "add entry to vice partition table"); cmd_AddParm(ts, "-partition", CMD_SINGLE, CMD_REQUIRED, "partition name"); cmd_AddParm(ts, "-dev", CMD_SINGLE, CMD_REQUIRED, "device name"); ! ts = cmd_CreateSyntax("vptdel", DoVptDel, NULL, "remove entry from vice partition table"); cmd_AddParm(ts, "-partition", CMD_SINGLE, CMD_REQUIRED, "partition name"); } *************** *** 304,313 **** { struct cmd_syndesc *ts; ! ts = cmd_CreateSyntax("dirget", DoDirGet, 0, "display the AFS server installation directory"); ! ts = cmd_CreateSyntax("dirset", DoDirSet, 0, "set the AFS server installation directory"); cmd_AddParm(ts, "-path", CMD_SINGLE, CMD_REQUIRED, "directory path"); } --- 304,313 ---- { struct cmd_syndesc *ts; ! ts = cmd_CreateSyntax("dirget", DoDirGet, NULL, "display the AFS server installation directory"); ! ts = cmd_CreateSyntax("dirset", DoDirSet, NULL, "set the AFS server installation directory"); cmd_AddParm(ts, "-path", CMD_SINGLE, CMD_REQUIRED, "directory path"); } *************** *** 317,327 **** { struct cmd_syndesc *ts; ! ts = cmd_CreateSyntax("boscfg", DoBosCfg, 0, "configure the AFS BOS control service"); cmd_AddParm(ts, "-path", CMD_SINGLE, CMD_OPTIONAL, "service binary path"); ! ts = cmd_CreateSyntax("bosdel", DoBosDel, 0, "delete (unconfigure) the AFS BOS control service"); } --- 317,327 ---- { struct cmd_syndesc *ts; ! ts = cmd_CreateSyntax("boscfg", DoBosCfg, NULL, "configure the AFS BOS control service"); cmd_AddParm(ts, "-path", CMD_SINGLE, CMD_OPTIONAL, "service binary path"); ! ts = cmd_CreateSyntax("bosdel", DoBosDel, NULL, "delete (unconfigure) the AFS BOS control service"); } *************** *** 330,336 **** { struct cmd_syndesc *ts; ! ts = cmd_CreateSyntax("version", DoVersionGet, 0, "display AFS version information"); } --- 330,336 ---- { struct cmd_syndesc *ts; ! ts = cmd_CreateSyntax("version", DoVersionGet, NULL, "display AFS version information"); } Index: openafs/src/afs/afs.h diff -c openafs/src/afs/afs.h:1.48.2.30 openafs/src/afs/afs.h:1.48.2.31 *** openafs/src/afs/afs.h:1.48.2.30 Wed Oct 10 12:57:54 2007 --- openafs/src/afs/afs.h Mon Nov 26 16:21:44 2007 *************** *** 914,919 **** --- 914,922 ---- #endif #endif + + #ifdef KERNEL + /* it does not compile outside kernel */ struct buffer { afs_int32 fid; /* is adc->index, the cache file number */ afs_inode_t inode; /* is adc->f.inode, the inode number of the cac\ *************** *** 941,946 **** --- 944,950 ---- afs_int32 chunkBytes; /* Num bytes in this chunk */ char states; /* Has this chunk been modified? */ }; + #endif /* magic numbers to specify the cache type */ Index: openafs/src/afs/afs_buffer.c diff -c openafs/src/afs/afs_buffer.c:1.16.2.6 openafs/src/afs/afs_buffer.c:1.16.2.7 *** openafs/src/afs/afs_buffer.c:1.16.2.6 Tue Jan 24 12:41:20 2006 --- openafs/src/afs/afs_buffer.c Thu Dec 13 14:18:47 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_buffer.c,v 1.16.2.6 2006/01/24 17:41:20 shadow Exp $"); #include "afs/sysincludes.h" #include "afsincludes.h" --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_buffer.c,v 1.16.2.7 2007/12/13 19:18:47 shadow Exp $"); #include "afs/sysincludes.h" #include "afsincludes.h" *************** *** 534,540 **** register struct buffer *tp; #endif int i; - extern int afs_cold_shutdown; AFS_STATCNT(shutdown_bufferpackage); /* Free all allocated Buffers and associated buffer pages */ --- 534,539 ---- Index: openafs/src/afs/afs_call.c diff -c openafs/src/afs/afs_call.c:1.74.2.25 openafs/src/afs/afs_call.c:1.74.2.30 *** openafs/src/afs/afs_call.c:1.74.2.25 Tue Oct 16 23:51:44 2007 --- openafs/src/afs/afs_call.c Fri Apr 18 10:06:50 2008 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_call.c,v 1.74.2.25 2007/10/17 03:51:44 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_call.c,v 1.74.2.30 2008/04/18 14:06:50 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 581,586 **** --- 581,587 ---- #endif /* RXK_LISTENER_ENV */ afs_osi_Invisible(); afs_RXCallBackServer(); + afs_osi_Visible(); } #ifdef AFS_SGI_ENV AFS_GUNLOCK(); *************** *** 609,614 **** --- 610,616 ---- afs_osi_RxkRegister(); #endif /* !UKERNEL */ rxk_Listener(); + afs_osi_Visible(); } #ifdef AFS_SGI_ENV AFS_GUNLOCK(); *************** *** 628,633 **** --- 630,636 ---- afs_osi_Wakeup(&afs_initState); afs_osi_Invisible(); afs_Daemon(); + afs_osi_Visible(); #ifdef AFS_SGI_ENV AFS_GUNLOCK(); exit(CLD_EXITED, 0); *************** *** 635,640 **** --- 638,644 ---- } else if (parm == AFSOP_START_CS) { afs_osi_Invisible(); afs_CheckServerDaemon(); + afs_osi_Visible(); #ifdef AFS_SGI_ENV AFS_GUNLOCK(); exit(CLD_EXITED, 0); *************** *** 654,659 **** --- 658,664 ---- else #endif /* AFS_AIX32_ENV */ afs_BackgroundDaemon(); + afs_osi_Visible(); #ifdef AFS_SGI_ENV AFS_GUNLOCK(); exit(CLD_EXITED, 0); *************** *** 664,669 **** --- 669,675 ---- /* start the bkg daemon */ afs_osi_Invisible(); afs_CacheTruncateDaemon(); + afs_osi_Visible(); #ifdef AFS_SGI_ENV AFS_GUNLOCK(); exit(CLD_EXITED, 0); *************** *** 675,680 **** --- 681,687 ---- afs_osi_Sleep(&afs_initState); afs_osi_Invisible(); afs_rxevent_daemon(); + afs_osi_Visible(); #ifdef AFS_SGI_ENV AFS_GUNLOCK(); exit(CLD_EXITED, 0); *************** *** 1408,1414 **** --- 1415,1425 ---- if (current->thread.flags & THREAD_IA32) #elif defined(AFS_PPC64_LINUX26_ENV) + #if defined(STRUCT_TASK_STRUCT_HAS_THREAD_INFO) if (current->thread_info->flags & _TIF_32BIT) + #else + if (task_thread_info(current)->flags & _TIF_32BIT) + #endif #elif defined(AFS_PPC64_LINUX20_ENV) if (current->thread.flags & PPC_FLAG_32BIT) *************** *** 1864,1875 **** #endif afs_warn("\n"); ! /* Close file only after daemons which can write to it are stopped. */ ! if (afs_cacheInodep) { /* memcache won't set this */ ! osi_UFSClose(afs_cacheInodep); /* Since we always leave it open */ ! afs_cacheInodep = 0; ! } ! return; /* Just kill daemons for now */ #ifdef notdef shutdown_CB(); shutdown_AFS(); --- 1875,1884 ---- #endif afs_warn("\n"); ! #ifdef AFS_AIX51_ENV ! shutdown_daemons(); ! #endif ! #ifdef notdef shutdown_CB(); shutdown_AFS(); *************** *** 1877,1897 **** shutdown_rxevent(); shutdown_rx(); afs_shutdown_BKG(); - shutdown_bufferpackage(); - #endif - #ifdef AFS_AIX51_ENV - shutdown_daemons(); #endif ! #ifdef notdef shutdown_cache(); shutdown_osi(); shutdown_osinet(); shutdown_osifile(); shutdown_vnodeops(); - shutdown_vfsops(); - shutdown_exporter(); shutdown_memcache(); #if (!defined(AFS_NONFSTRANS) || defined(AFS_AIX_IAUTH_ENV)) && !defined(AFS_OSF_ENV) shutdown_nfsclnt(); #endif shutdown_afstest(); --- 1886,1901 ---- shutdown_rxevent(); shutdown_rx(); afs_shutdown_BKG(); #endif ! shutdown_bufferpackage(); shutdown_cache(); shutdown_osi(); shutdown_osinet(); shutdown_osifile(); shutdown_vnodeops(); shutdown_memcache(); #if (!defined(AFS_NONFSTRANS) || defined(AFS_AIX_IAUTH_ENV)) && !defined(AFS_OSF_ENV) + shutdown_exporter(); shutdown_nfsclnt(); #endif shutdown_afstest(); *************** *** 1902,1909 **** memset(&afs_stats_cmfullperf, 0, sizeof(struct afs_stats_CMFullPerf)); */ afs_warn(" ALL allocated tables\n"); afs_shuttingdown = 0; ! #endif } void --- 1906,1921 ---- memset(&afs_stats_cmfullperf, 0, sizeof(struct afs_stats_CMFullPerf)); */ afs_warn(" ALL allocated tables\n"); + + /* Close file only after daemons which can write to it are stopped. */ + if (afs_cacheInodep) { /* memcache won't set this */ + osi_UFSClose(afs_cacheInodep); /* Since we always leave it open */ + afs_cacheInodep = 0; + } + afs_shuttingdown = 0; ! ! return; /* Just kill daemons for now */ } void Index: openafs/src/afs/afs_callback.c diff -c openafs/src/afs/afs_callback.c:1.27.2.8 openafs/src/afs/afs_callback.c:1.27.2.10 *** openafs/src/afs/afs_callback.c:1.27.2.8 Fri Feb 2 22:25:18 2007 --- openafs/src/afs/afs_callback.c Mon Mar 10 18:35:33 2008 *************** *** 17,23 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_callback.c,v 1.27.2.8 2007/02/03 03:25:18 shadow Exp $"); #include "afs/sysincludes.h" /*Standard vendor system headers */ #include "afsincludes.h" /*AFS-based standard headers */ --- 17,23 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_callback.c,v 1.27.2.10 2008/03/10 22:35:33 shadow Exp $"); #include "afs/sysincludes.h" /*Standard vendor system headers */ #include "afsincludes.h" /*AFS-based standard headers */ *************** *** 61,67 **** { "afs_xsrvAddr", (char *)&afs_xsrvAddr}, { ! "afs_xvreclaim", (char *)&afs_xvreclaim} }; unsigned long lastCallBack_vnode; unsigned int lastCallBack_dv; --- 61,71 ---- { "afs_xsrvAddr", (char *)&afs_xsrvAddr}, { ! "afs_xvreclaim", (char *)&afs_xvreclaim}, ! #ifdef AFS_AFSDB_ENV ! { "afsdb_client_lock", (char *)&afsdb_client_lock}, ! { "afsdb_req_lock", (char *)&afsdb_req_lock}, ! #endif }; unsigned long lastCallBack_vnode; unsigned int lastCallBack_dv; *************** *** 307,317 **** AFS_STATCNT(SRXAFSCB_GetLock); nentries = sizeof(ltable) / sizeof(struct ltable); ! if (a_index < 0 || a_index >= nentries) { /* * Past EOF */ code = 1; } else { /* * Found it - copy out its contents. --- 311,345 ---- AFS_STATCNT(SRXAFSCB_GetLock); nentries = sizeof(ltable) / sizeof(struct ltable); ! if (a_index < 0 || a_index >= nentries+afs_cellindex) { /* * Past EOF */ code = 1; + } else if (a_index >= nentries) { + struct cell *tc = afs_GetCellByIndex(a_index-nentries, 0); + strcpy(a_result->name, tc->cellName); + a_result->lock.waitStates = + ((struct afs_lock *)&(tc->lock))->wait_states; + a_result->lock.exclLocked = + ((struct afs_lock *)&(tc->lock))->excl_locked; + a_result->lock.readersReading = + ((struct afs_lock *)&(tc->lock))->readers_reading; + a_result->lock.numWaiting = + ((struct afs_lock *)&(tc->lock))->num_waiting; + #ifdef INSTRUMENT_LOCKS + a_result->lock.pid_last_reader = + MyPidxx2Pid(((struct afs_lock *)&(tc->lock))->pid_last_reader); + a_result->lock.pid_writer = + MyPidxx2Pid(((struct afs_lock *)&(tc->lock))->pid_writer); + a_result->lock.src_indicator = + ((struct afs_lock *)&(tc->lock))->src_indicator; + #else + a_result->lock.pid_last_reader = 0; + a_result->lock.pid_writer = 0; + a_result->lock.src_indicator = 0; + #endif + code = 0; } else { /* * Found it - copy out its contents. *************** *** 981,987 **** /* * Donate this process to Rx. */ ! rx_ServerProc(); return (0); } /*afs_RXCallBackServer */ --- 1009,1015 ---- /* * Donate this process to Rx. */ ! rx_ServerProc(NULL); return (0); } /*afs_RXCallBackServer */ Index: openafs/src/afs/afs_cell.c diff -c openafs/src/afs/afs_cell.c:1.30.2.4 openafs/src/afs/afs_cell.c:1.30.2.6 *** openafs/src/afs/afs_cell.c:1.30.2.4 Mon Mar 19 20:52:20 2007 --- openafs/src/afs/afs_cell.c Tue Dec 4 15:33:17 2007 *************** *** 14,20 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_cell.c,v 1.30.2.4 2007/03/20 00:52:20 shadow Exp $"); #include "afs/stds.h" #include "afs/sysincludes.h" /* Standard vendor system headers */ --- 14,20 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_cell.c,v 1.30.2.6 2007/12/04 20:33:17 shadow Exp $"); #include "afs/stds.h" #include "afs/sysincludes.h" /* Standard vendor system headers */ *************** *** 35,52 **** */ #ifdef AFS_AFSDB_ENV ! static afs_rwlock_t afsdb_client_lock; /* Serializes client requests */ static char afsdb_handler_running; /* Protected by GLOCK */ static char afsdb_handler_shutdown; /* Protected by GLOCK */ static struct { ! afs_rwlock_t lock; char pending; char complete; char *cellname; - afs_int32 *cellhosts; - int *timeout; - char **realname; } afsdb_req; void --- 35,52 ---- */ #ifdef AFS_AFSDB_ENV ! afs_rwlock_t afsdb_client_lock; /* Serializes client requests */ ! afs_rwlock_t afsdb_req_lock; /* Serializes client requests */ static char afsdb_handler_running; /* Protected by GLOCK */ static char afsdb_handler_shutdown; /* Protected by GLOCK */ + /* from cellconfig.h */ + #define MAXCELLCHARS 64 static struct { ! /* lock moved to afsdb_req_lock for cmdebug */ char pending; char complete; char *cellname; } afsdb_req; void *************** *** 63,108 **** int afs_AFSDBHandler(char *acellName, int acellNameLen, afs_int32 * kernelMsg) { if (afsdb_handler_shutdown) return -2; afsdb_handler_running = 1; ! ObtainSharedLock(&afsdb_req.lock, 683); if (afsdb_req.pending) { int i, hostCount; ! UpgradeSToWLock(&afsdb_req.lock, 684); hostCount = kernelMsg[0]; ! *afsdb_req.timeout = kernelMsg[1]; ! if (*afsdb_req.timeout) ! *afsdb_req.timeout += osi_Time(); ! *afsdb_req.realname = afs_strdup(acellName); for (i = 0; i < MAXCELLHOSTS; i++) { if (i >= hostCount) ! afsdb_req.cellhosts[i] = 0; else ! afsdb_req.cellhosts[i] = kernelMsg[2 + i]; } /* Request completed, wake up the relevant thread */ afsdb_req.pending = 0; afsdb_req.complete = 1; afs_osi_Wakeup(&afsdb_req); ! ConvertWToSLock(&afsdb_req.lock); } ! ConvertSToRLock(&afsdb_req.lock); /* Wait for a request */ while (afsdb_req.pending == 0 && afs_termState != AFSOP_STOP_AFSDB) { ! ReleaseReadLock(&afsdb_req.lock); afs_osi_Sleep(&afsdb_req); ! ObtainReadLock(&afsdb_req.lock); } /* Check if we're shutting down */ if (afs_termState == AFSOP_STOP_AFSDB) { ! ReleaseReadLock(&afsdb_req.lock); /* Inform anyone waiting for us that we're going away */ afsdb_handler_shutdown = 1; --- 63,122 ---- int afs_AFSDBHandler(char *acellName, int acellNameLen, afs_int32 * kernelMsg) { + afs_int32 timeout, code; + afs_int32 cellHosts[MAXCELLHOSTS]; + if (afsdb_handler_shutdown) return -2; afsdb_handler_running = 1; ! ObtainSharedLock(&afsdb_req_lock, 683); if (afsdb_req.pending) { int i, hostCount; ! UpgradeSToWLock(&afsdb_req_lock, 684); hostCount = kernelMsg[0]; ! timeout = kernelMsg[1]; ! if (timeout) ! timeout += osi_Time(); for (i = 0; i < MAXCELLHOSTS; i++) { if (i >= hostCount) ! cellHosts[i] = 0; else ! cellHosts[i] = kernelMsg[2 + i]; } + if (hostCount) + code = afs_NewCell(acellName, cellHosts, CNoSUID, NULL, 0, 0, + timeout); + + if (!hostCount || (code && code != EEXIST)) + /* null out the cellname if the lookup failed */ + afsdb_req.cellname = NULL; + else + /* If we found an alias, create it */ + if (afs_strcasecmp(afsdb_req.cellname, acellName)) + afs_NewCellAlias(afsdb_req.cellname, acellName); + /* Request completed, wake up the relevant thread */ afsdb_req.pending = 0; afsdb_req.complete = 1; afs_osi_Wakeup(&afsdb_req); ! ConvertWToSLock(&afsdb_req_lock); } ! ConvertSToRLock(&afsdb_req_lock); /* Wait for a request */ while (afsdb_req.pending == 0 && afs_termState != AFSOP_STOP_AFSDB) { ! ReleaseReadLock(&afsdb_req_lock); afs_osi_Sleep(&afsdb_req); ! ObtainReadLock(&afsdb_req_lock); } /* Check if we're shutting down */ if (afs_termState == AFSOP_STOP_AFSDB) { ! ReleaseReadLock(&afsdb_req_lock); /* Inform anyone waiting for us that we're going away */ afsdb_handler_shutdown = 1; *************** *** 116,158 **** /* Return the lookup request to userspace */ strncpy(acellName, afsdb_req.cellname, acellNameLen); ! ReleaseReadLock(&afsdb_req.lock); return 0; } static int ! afs_GetCellHostsAFSDB(char *acellName, afs_int32 * acellHosts, int *timeout, ! char **realName) { AFS_ASSERT_GLOCK(); if (!afsdb_handler_running) return ENOENT; ObtainWriteLock(&afsdb_client_lock, 685); ! ObtainWriteLock(&afsdb_req.lock, 686); - *acellHosts = 0; afsdb_req.cellname = acellName; - afsdb_req.cellhosts = acellHosts; - afsdb_req.timeout = timeout; - afsdb_req.realname = realName; afsdb_req.complete = 0; afsdb_req.pending = 1; afs_osi_Wakeup(&afsdb_req); ! ConvertWToRLock(&afsdb_req.lock); while (afsdb_handler_running && !afsdb_req.complete) { ! ReleaseReadLock(&afsdb_req.lock); afs_osi_Sleep(&afsdb_req); ! ObtainReadLock(&afsdb_req.lock); }; ! ReleaseReadLock(&afsdb_req.lock); ReleaseWriteLock(&afsdb_client_lock); ! if (*acellHosts) return 0; ! else return ENOENT; } #endif --- 130,167 ---- /* Return the lookup request to userspace */ strncpy(acellName, afsdb_req.cellname, acellNameLen); ! ReleaseReadLock(&afsdb_req_lock); return 0; } static int ! afs_GetCellHostsAFSDB(char *acellName) { AFS_ASSERT_GLOCK(); if (!afsdb_handler_running) return ENOENT; ObtainWriteLock(&afsdb_client_lock, 685); ! ObtainWriteLock(&afsdb_req_lock, 686); afsdb_req.cellname = acellName; afsdb_req.complete = 0; afsdb_req.pending = 1; afs_osi_Wakeup(&afsdb_req); ! ConvertWToRLock(&afsdb_req_lock); while (afsdb_handler_running && !afsdb_req.complete) { ! ReleaseReadLock(&afsdb_req_lock); afs_osi_Sleep(&afsdb_req); ! ObtainReadLock(&afsdb_req_lock); }; ! ReleaseReadLock(&afsdb_req_lock); ReleaseWriteLock(&afsdb_client_lock); ! if (afsdb_req.cellname) { return 0; ! } else return ENOENT; } #endif *************** *** 161,184 **** afs_LookupAFSDB(char *acellName) { #ifdef AFS_AFSDB_ENV ! afs_int32 cellHosts[MAXCELLHOSTS]; ! char *realName = NULL; ! int code, timeout; ! code = afs_GetCellHostsAFSDB(acellName, cellHosts, &timeout, &realName); ! if (code) ! goto done; ! code = afs_NewCell(realName, cellHosts, CNoSUID, NULL, 0, 0, timeout); ! if (code && code != EEXIST) ! goto done; ! ! /* If we found an alias, create it */ ! if (afs_strcasecmp(acellName, realName)) ! afs_NewCellAlias(acellName, realName); ! ! done: ! if (realName) ! afs_osi_FreeStr(realName); #endif } --- 170,183 ---- afs_LookupAFSDB(char *acellName) { #ifdef AFS_AFSDB_ENV ! int code; ! char *cellName = afs_strdup(acellName); ! ! code = afs_GetCellHostsAFSDB(cellName); ! afs_Trace2(afs_iclSetp, CM_TRACE_AFSDB, ICL_TYPE_STRING, cellName, ! ICL_TYPE_INT32, code); ! afs_osi_FreeStr(cellName); #endif } *************** *** 819,825 **** RWLOCK_INIT(&afs_xcell, "afs_xcell"); #ifdef AFS_AFSDB_ENV RWLOCK_INIT(&afsdb_client_lock, "afsdb_client_lock"); ! RWLOCK_INIT(&afsdb_req.lock, "afsdb_req.lock"); #endif QInit(&CellLRU); --- 818,824 ---- RWLOCK_INIT(&afs_xcell, "afs_xcell"); #ifdef AFS_AFSDB_ENV RWLOCK_INIT(&afsdb_client_lock, "afsdb_client_lock"); ! RWLOCK_INIT(&afsdb_req_lock, "afsdb_req_lock"); #endif QInit(&CellLRU); Index: openafs/src/afs/afs_dcache.c diff -c openafs/src/afs/afs_dcache.c:1.42.2.22 openafs/src/afs/afs_dcache.c:1.42.2.23 *** openafs/src/afs/afs_dcache.c:1.42.2.22 Mon Aug 20 13:53:15 2007 --- openafs/src/afs/afs_dcache.c Sat Dec 8 13:00:44 2007 *************** *** 14,20 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_dcache.c,v 1.42.2.22 2007/08/20 17:53:15 shadow Exp $"); #include "afs/sysincludes.h" /*Standard vendor system headers */ #include "afsincludes.h" /*AFS-based standard headers */ --- 14,20 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_dcache.c,v 1.42.2.23 2007/12/08 18:00:44 shadow Exp $"); #include "afs/sysincludes.h" /*Standard vendor system headers */ #include "afsincludes.h" /*AFS-based standard headers */ *************** *** 2860,2865 **** --- 2860,2866 ---- if (cacheDiskType == AFS_FCACHE_TYPE_MEM) return 0; AFS_STATCNT(afs_WriteDCache); + osi_Assert(WriteLocked(&afs_xdcache)); if (atime) adc->f.modTime = osi_Time(); /* Index: openafs/src/afs/afs_osi.c diff -c openafs/src/afs/afs_osi.c:1.48.2.12 openafs/src/afs/afs_osi.c:1.48.2.15 *** openafs/src/afs/afs_osi.c:1.48.2.12 Tue Apr 3 14:57:06 2007 --- openafs/src/afs/afs_osi.c Tue Feb 5 20:43:44 2008 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_osi.c,v 1.48.2.12 2007/04/03 18:57:06 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_osi.c,v 1.48.2.15 2008/02/06 01:43:44 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 280,288 **** void afs_osi_RxkRegister(void) { - #ifdef AFS_LINUX22_ENV - osi_linux_rxkreg(); - #endif } /* procedure for making our processes as invisible as we can */ --- 280,285 ---- *************** *** 308,315 **** AFS_STATCNT(osi_Invisible); } ! #if !defined(AFS_LINUX20_ENV) && !defined(AFS_FBSD_ENV) /* set the real time */ void afs_osi_SetTime(osi_timeval_t * atv) --- 305,325 ---- AFS_STATCNT(osi_Invisible); } + void + afs_osi_Visible(void) + { + #if defined(AFS_SUN5_ENV) + curproc->p_flag &= ~SSYS; + #elif defined(AFS_DARWIN80_ENV) + #elif defined(AFS_DARWIN_ENV) + /* maybe call init_process instead? */ + current_proc()->p_flag &= ~P_SYSTEM; + #elif defined(AFS_XBSD_ENV) + curproc->p_flag &= ~P_SYSTEM; + #endif + } ! #if !defined(AFS_LINUX20_ENV) && !defined(AFS_XBSD_ENV) /* set the real time */ void afs_osi_SetTime(osi_timeval_t * atv) Index: openafs/src/afs/afs_osi_alloc.c diff -c openafs/src/afs/afs_osi_alloc.c:1.10.2.1 openafs/src/afs/afs_osi_alloc.c:1.10.2.3 *** openafs/src/afs/afs_osi_alloc.c:1.10.2.1 Sun Apr 3 14:18:54 2005 --- openafs/src/afs/afs_osi_alloc.c Thu Dec 13 14:18:47 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_osi_alloc.c,v 1.10.2.1 2005/04/03 18:18:54 shadow Exp $"); --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_osi_alloc.c,v 1.10.2.3 2007/12/13 19:18:47 shadow Exp $"); *************** *** 120,126 **** if (!freeSmallList) { afs_stats_cmperf.SmallBlocksAlloced++; afs_stats_cmperf.SmallBlocksActive++; ! return afs_osi_Alloc(AFS_SMALLOCSIZ); } afs_stats_cmperf.SmallBlocksActive++; MObtainWriteLock(&osi_fsplock, 327); --- 120,130 ---- if (!freeSmallList) { afs_stats_cmperf.SmallBlocksAlloced++; afs_stats_cmperf.SmallBlocksActive++; ! tp = afs_osi_Alloc(AFS_SMALLOCSIZ); ! #ifdef KERNEL_HAVE_PIN ! pin((char *)tp, AFS_SMALLOCSIZ); ! #endif ! return (char *)tp; } afs_stats_cmperf.SmallBlocksActive++; MObtainWriteLock(&osi_fsplock, 327); *************** *** 136,164 **** void shutdown_osinet(void) { - extern int afs_cold_shutdown; - AFS_STATCNT(shutdown_osinet); if (afs_cold_shutdown) { struct osi_packet *tp; while ((tp = freePacketList)) { freePacketList = tp->next; - afs_osi_Free(tp, AFS_LRALLOCSIZ); #ifdef KERNEL_HAVE_PIN unpin(tp, AFS_LRALLOCSIZ); #endif } while ((tp = freeSmallList)) { freeSmallList = tp->next; - afs_osi_Free(tp, AFS_SMALLOCSIZ); #ifdef KERNEL_HAVE_PIN unpin(tp, AFS_SMALLOCSIZ); #endif } LOCK_INIT(&osi_fsplock, "osi_fsplock"); LOCK_INIT(&osi_flplock, "osi_flplock"); } } #endif --- 140,173 ---- void shutdown_osinet(void) { AFS_STATCNT(shutdown_osinet); if (afs_cold_shutdown) { struct osi_packet *tp; while ((tp = freePacketList)) { freePacketList = tp->next; #ifdef KERNEL_HAVE_PIN unpin(tp, AFS_LRALLOCSIZ); #endif + afs_osi_Free(tp, AFS_LRALLOCSIZ); } while ((tp = freeSmallList)) { freeSmallList = tp->next; #ifdef KERNEL_HAVE_PIN unpin(tp, AFS_SMALLOCSIZ); #endif + afs_osi_Free(tp, AFS_SMALLOCSIZ); } LOCK_INIT(&osi_fsplock, "osi_fsplock"); LOCK_INIT(&osi_flplock, "osi_flplock"); } + if (afs_stats_cmperf.LargeBlocksActive || + afs_stats_cmperf.SmallBlocksActive) + { + afs_warn("WARNING: not all blocks freed: large %d small %d\n", + afs_stats_cmperf.LargeBlocksActive, + afs_stats_cmperf.SmallBlocksActive); + } } #endif Index: openafs/src/afs/afs_osi_pag.c diff -c openafs/src/afs/afs_osi_pag.c:1.21.2.10 openafs/src/afs/afs_osi_pag.c:1.21.2.11 *** openafs/src/afs/afs_osi_pag.c:1.21.2.10 Thu Feb 8 19:32:04 2007 --- openafs/src/afs/afs_osi_pag.c Fri Jan 4 13:40:30 2008 *************** *** 23,29 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_osi_pag.c,v 1.21.2.10 2007/02/09 00:32:04 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ --- 23,29 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_osi_pag.c,v 1.21.2.11 2008/01/04 18:40:30 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 145,150 **** --- 145,151 ---- */ static int afs_pag_sleepcnt = 0; + static int afs_pag_timewarn = 0; static int afs_pag_sleep(struct AFS_UCRED **acred) *************** *** 155,160 **** --- 156,168 ---- if(osi_Time() - pag_epoch < pagCounter) { rv = 1; } + if (rv && (osi_Time() < pag_epoch)) { + if (!afs_pag_timewarn) { + afs_pag_timewarn = 1; + printf("clock went backwards, not PAG throttling"); + } + rv = 0; + } } return rv; Index: openafs/src/afs/afs_pioctl.c diff -c openafs/src/afs/afs_pioctl.c:1.81.2.28 openafs/src/afs/afs_pioctl.c:1.81.2.33 *** openafs/src/afs/afs_pioctl.c:1.81.2.28 Tue Aug 21 22:15:33 2007 --- openafs/src/afs/afs_pioctl.c Fri Apr 18 16:13:32 2008 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_pioctl.c,v 1.81.2.28 2007/08/22 02:15:33 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #ifdef AFS_OBSD_ENV --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_pioctl.c,v 1.81.2.33 2008/04/18 20:13:32 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #ifdef AFS_OBSD_ENV *************** *** 284,290 **** if (current->thread.flags & THREAD_IA32) #elif defined(AFS_PPC64_LINUX26_ENV) ! if (current->thread_info->flags & _TIF_32BIT) #elif defined(AFS_PPC64_LINUX20_ENV) if (current->thread.flags & PPC_FLAG_32BIT) --- 284,294 ---- if (current->thread.flags & THREAD_IA32) #elif defined(AFS_PPC64_LINUX26_ENV) ! #if defined(STRUCT_TASK_STRUCT_HAS_THREAD_INFO) ! if (current->thread_info->flags & _TIF_32BIT) ! #else ! if (task_thread_info(current)->flags & _TIF_32BIT) ! #endif #elif defined(AFS_PPC64_LINUX20_ENV) if (current->thread.flags & PPC_FLAG_32BIT) *************** *** 982,989 **** #if defined(AFS_SUN510_ENV) if (vp && !IsAfsVnode(vp)) { struct vnode *realvp; ! ! if (VOP_REALVP(vp, &realvp) == 0) { struct vnode *oldvp = vp; VN_HOLD(realvp); --- 986,998 ---- #if defined(AFS_SUN510_ENV) if (vp && !IsAfsVnode(vp)) { struct vnode *realvp; ! if ! #ifdef AFS_SUN511_ENV ! (VOP_REALVP(vp, &realvp, NULL) == 0) ! #else ! (VOP_REALVP(vp, &realvp) == 0) ! #endif ! { struct vnode *oldvp = vp; VN_HOLD(realvp); *************** *** 2773,2779 **** DECL_PIOCTL(PSetSysName) { char *cp, *cp2 = NULL, inname[MAXSYSNAME], outname[MAXSYSNAME]; ! int setsysname, foundname = 0; register struct afs_exporter *exporter; register struct unixuser *au; register afs_int32 pag, error; --- 2782,2789 ---- DECL_PIOCTL(PSetSysName) { char *cp, *cp2 = NULL, inname[MAXSYSNAME], outname[MAXSYSNAME]; ! afs_int32 setsysname; ! int foundname = 0; register struct afs_exporter *exporter; register struct unixuser *au; register afs_int32 pag, error; *************** *** 2790,2796 **** #endif } memset(inname, 0, MAXSYSNAME); ! memcpy((char *)&setsysname, ain, sizeof(afs_int32)); ain += sizeof(afs_int32); if (setsysname) { --- 2800,2806 ---- #endif } memset(inname, 0, MAXSYSNAME); ! memcpy(&setsysname, ain, sizeof(afs_int32)); ain += sizeof(afs_int32); if (setsysname) { *************** *** 3852,3857 **** --- 3862,3868 ---- afs_uuid_create(&afs_cb_interface.uuid); ReleaseWriteLock(&afs_xinterface); ForceAllNewConnections(); + return 0; } DECL_PIOCTL(PCallBackAddr) Index: openafs/src/afs/afs_prototypes.h diff -c openafs/src/afs/afs_prototypes.h:1.53.2.20 openafs/src/afs/afs_prototypes.h:1.53.2.24 *** openafs/src/afs/afs_prototypes.h:1.53.2.20 Wed Jun 27 12:32:12 2007 --- openafs/src/afs/afs_prototypes.h Fri Apr 18 02:04:01 2008 *************** *** 195,201 **** --- 195,206 ---- extern void afs_DequeueCallback(struct vcache *avc); /* afs_cell.c */ + extern afs_int32 afs_cellindex; extern afs_rwlock_t afs_xcell; + #ifdef AFS_AFSDB_ENV + extern afs_rwlock_t afsdb_client_lock; + extern afs_rwlock_t afsdb_req_lock; + #endif extern struct afs_q CellLRU; extern void afs_CellInit(void); *************** *** 466,471 **** --- 471,477 ---- /* afs_osi.c */ extern afs_lock_t afs_ftf; extern void afs_osi_Invisible(void); + extern void afs_osi_Visible(void); extern void afs_osi_RxkRegister(void); extern void afs_osi_MaskSignals(void); extern void afs_osi_UnmaskRxkSignals(void); *************** *** 527,532 **** --- 533,539 ---- extern void osi_FreeSmallSpace(void *adata); extern void *osi_AllocLargeSpace(size_t size); extern void *osi_AllocSmallSpace(size_t size); + extern void shutdown_osinet(void); /* afs_osi_uio.c */ extern int afsio_copy(struct uio *ainuio, struct uio *aoutuio, *************** *** 554,560 **** #endif extern void osi_linux_mask(void); extern void osi_linux_unmask(void); - extern void osi_linux_rxkreg(void); extern int setpag(cred_t ** cr, afs_uint32 pagvalue, afs_uint32 * newpag, int change_parent); #endif --- 561,566 ---- Index: openafs/src/afs/afs_segments.c diff -c openafs/src/afs/afs_segments.c:1.16.2.5 openafs/src/afs/afs_segments.c:1.16.2.6 *** openafs/src/afs/afs_segments.c:1.16.2.5 Sun Feb 20 20:15:21 2005 --- openafs/src/afs/afs_segments.c Tue Dec 4 16:12:16 2007 *************** *** 14,20 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_segments.c,v 1.16.2.5 2005/02/21 01:15:21 shadow Exp $"); #include "afs/sysincludes.h" /*Standard vendor system headers */ #include "afsincludes.h" /*AFS-based standard headers */ --- 14,20 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_segments.c,v 1.16.2.6 2007/12/04 21:12:16 shadow Exp $"); #include "afs/sysincludes.h" /*Standard vendor system headers */ #include "afsincludes.h" /*AFS-based standard headers */ *************** *** 92,97 **** --- 92,101 ---- afs_int32 l1, l2; l1 = avc->m.Length; l2 = tlen; + if ((avc->m.Length > 0x7fffffff) || + (tlen > 0x7fffffff) || + ((0x7fffffff - tlen) < avc->m.Length)) + return EFBIG; code = StartRXAFS_StoreData(tcall, (struct AFSFid *)&avc->fid.Fid, Index: openafs/src/afs/afs_server.c diff -c openafs/src/afs/afs_server.c:1.33.2.10 openafs/src/afs/afs_server.c:1.33.2.12 *** openafs/src/afs/afs_server.c:1.33.2.10 Thu Oct 4 22:54:08 2007 --- openafs/src/afs/afs_server.c Tue Dec 11 16:31:52 2007 *************** *** 33,39 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_server.c,v 1.33.2.10 2007/10/05 02:54:08 shadow Exp $"); #include "afs/stds.h" #include "afs/sysincludes.h" /* Standard vendor system headers */ --- 33,39 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_server.c,v 1.33.2.12 2007/12/11 21:31:52 shadow Exp $"); #include "afs/stds.h" #include "afs/sysincludes.h" /* Standard vendor system headers */ *************** *** 1129,1134 **** --- 1129,1135 ---- sa->sa_iprank = afs_min(sa->sa_iprank, MED); } } + return; } #else /* AFS_USERSPACE_IP_ADDR */ #if (! defined(AFS_SUN5_ENV)) && !defined(AFS_DARWIN60_ENV) && defined(USEIFADDR) Index: openafs/src/afs/afs_stats.h diff -c openafs/src/afs/afs_stats.h:1.11.2.4 openafs/src/afs/afs_stats.h:1.11.2.5 *** openafs/src/afs/afs_stats.h:1.11.2.4 Tue Jun 21 16:13:48 2005 --- openafs/src/afs/afs_stats.h Mon Mar 17 14:03:27 2008 *************** *** 35,40 **** --- 35,41 ---- #define AFS_STATS(arg) #define XSTATS_DECLS #define XSTATS_START_TIME(arg) + #define XSTATS_START_CMTIME(arg) #define XSTATS_END_TIME #else /* AFS_NOSTATS */ Index: openafs/src/afs/afs_trace.et diff -c openafs/src/afs/afs_trace.et:1.17.2.1 openafs/src/afs/afs_trace.et:1.17.2.2 *** openafs/src/afs/afs_trace.et:1.17.2.1 Mon May 30 00:36:58 2005 --- openafs/src/afs/afs_trace.et Fri Nov 23 09:34:57 2007 *************** *** 172,176 **** --- 172,177 ---- ec CM_TRACE_LOCKWAIT,"%s line %d: Waiting for lock 0x%lx level %d" ec CM_TRACE_WRITEFAILED, "osi_Write failed len %ld resid %ld err %ld" ec CM_TRACE_ADJUSTSIZE2, "AdjustSize dc = 0x%lx, chunkBytes = 0x%x used = %ld, diff = %ld" + ec CM_TRACE_AFSDB, "AFSDB lookup %s returned %d" end Index: openafs/src/afs/afs_vcache.c diff -c openafs/src/afs/afs_vcache.c:1.65.2.46 openafs/src/afs/afs_vcache.c:1.65.2.48 *** openafs/src/afs/afs_vcache.c:1.65.2.46 Thu Nov 9 23:35:13 2006 --- openafs/src/afs/afs_vcache.c Thu Dec 13 14:49:30 2007 *************** *** 39,45 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_vcache.c,v 1.65.2.46 2006/11/10 04:35:13 shadow Exp $"); #include "afs/sysincludes.h" /*Standard vendor system headers */ #include "afsincludes.h" /*AFS-based standard headers */ --- 39,45 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_vcache.c,v 1.65.2.48 2007/12/13 19:49:30 shadow Exp $"); #include "afs/sysincludes.h" /*Standard vendor system headers */ #include "afsincludes.h" /*AFS-based standard headers */ Index: openafs/src/afs/lock.h diff -c openafs/src/afs/lock.h:1.13.2.7 openafs/src/afs/lock.h:1.13.2.8 *** openafs/src/afs/lock.h:1.13.2.7 Fri Feb 2 22:25:18 2007 --- openafs/src/afs/lock.h Fri Nov 9 14:22:07 2007 *************** *** 102,110 **** --- 102,116 ---- #define MyPidxx2Pid(x) ((afs_int32)(x)) #else /* AFS_AIX41_ENV */ #if defined(AFS_HPUX101_ENV) + #if defined(AFS_HPUX1111_ENV) + typedef struct kthread * afs_lock_tracker_t; + #define MyPidxx (u.u_kthreadp) + #define MyPidxx2Pid(x) (x ? kt_tid(x) : 0) + #else typedef struct proc * afs_lock_tracker_t; #define MyPidxx (u.u_procp) #define MyPidxx2Pid(x) (x ? (afs_int32)p_pid(x) : 0) + #endif #else #if defined(AFS_SGI64_ENV) #if defined(AFS_SGI65_ENV) Index: openafs/src/afs/sysincludes.h diff -c openafs/src/afs/sysincludes.h:1.28.2.14 openafs/src/afs/sysincludes.h:1.28.2.15 *** openafs/src/afs/sysincludes.h:1.28.2.14 Thu Dec 28 16:50:58 2006 --- openafs/src/afs/sysincludes.h Fri Nov 23 08:45:04 2007 *************** *** 75,80 **** --- 75,83 ---- #if defined(LINUX_KEYRING_SUPPORT) #include #include + #if defined(KEY_TYPE_H_EXISTS) + #include + #endif #ifndef KEY_ALLOC_IN_QUOTA #define KEY_ALLOC_IN_QUOTA 1 #endif Index: openafs/src/afs/AIX/osi_file.c diff -c openafs/src/afs/AIX/osi_file.c:1.9.2.2 openafs/src/afs/AIX/osi_file.c:1.9.2.3 *** openafs/src/afs/AIX/osi_file.c:1.9.2.2 Wed Aug 15 23:54:26 2007 --- openafs/src/afs/AIX/osi_file.c Thu Dec 13 14:18:49 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/AIX/osi_file.c,v 1.9.2.2 2007/08/16 03:54:26 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/AIX/osi_file.c,v 1.9.2.3 2007/12/13 19:18:49 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 272,279 **** void shutdown_osifile(void) { - extern int afs_cold_shutdown; - AFS_STATCNT(shutdown_osifile); if (afs_cold_shutdown) { afs_osicred_initialized = 0; --- 272,277 ---- Index: openafs/src/afs/AIX/osi_vfsops.c diff -c openafs/src/afs/AIX/osi_vfsops.c:1.11.2.1 openafs/src/afs/AIX/osi_vfsops.c:1.11.2.2 *** openafs/src/afs/AIX/osi_vfsops.c:1.11.2.1 Wed Aug 25 03:16:15 2004 --- openafs/src/afs/AIX/osi_vfsops.c Thu Dec 13 14:18:49 2007 *************** *** 14,20 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/AIX/osi_vfsops.c,v 1.11.2.1 2004/08/25 07:16:15 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ --- 14,20 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/AIX/osi_vfsops.c,v 1.11.2.2 2007/12/13 19:18:49 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 34,41 **** struct vfs *afs_globalVFS = 0; struct vcache *afs_globalVp = 0; - extern int afs_cold_shutdown; - static int afs_root_nolock(struct vfs *afsp, struct vnode **avpp); static int --- 34,39 ---- Index: openafs/src/afs/DARWIN/osi_file.c diff -c openafs/src/afs/DARWIN/osi_file.c:1.8.2.7 openafs/src/afs/DARWIN/osi_file.c:1.8.2.8 *** openafs/src/afs/DARWIN/osi_file.c:1.8.2.7 Wed Oct 10 12:57:55 2007 --- openafs/src/afs/DARWIN/osi_file.c Thu Dec 13 14:18:49 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/DARWIN/osi_file.c,v 1.8.2.7 2007/10/10 16:57:55 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/DARWIN/osi_file.c,v 1.8.2.8 2007/12/13 19:18:49 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 418,425 **** void shutdown_osifile(void) { - extern int afs_cold_shutdown; - AFS_STATCNT(shutdown_osifile); if (afs_cold_shutdown) { afs_osicred_initialized = 0; --- 418,423 ---- Index: openafs/src/afs/DARWIN/osi_misc.c diff -c openafs/src/afs/DARWIN/osi_misc.c:1.6.2.2 openafs/src/afs/DARWIN/osi_misc.c:1.6.2.3 *** openafs/src/afs/DARWIN/osi_misc.c:1.6.2.2 Wed Oct 5 01:58:29 2005 --- openafs/src/afs/DARWIN/osi_misc.c Mon Mar 24 13:10:40 2008 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/DARWIN/osi_misc.c,v 1.6.2.2 2005/10/05 05:58:29 shadow Exp $"); #include "afs/sysincludes.h" #include "afsincludes.h" --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/DARWIN/osi_misc.c,v 1.6.2.3 2008/03/24 17:10:40 shadow Exp $"); #include "afs/sysincludes.h" #include "afsincludes.h" *************** *** 102,111 **** user_addr_t iovaddr; user_size_t iovsize; ! /* XXX 64 bit userspaace? */ ! res = uio_create(uio_iovcnt(auio), uio_offset(auio), ! uio_isuserspace(auio) ? UIO_USERSPACE32 : UIO_SYSSPACE32, ! uio_rw(auio)); for (i = 0;i < uio_iovcnt(auio) && size > 0;i++) { if (uio_getiov(auio, i, &iovaddr, &iovsize)) --- 102,116 ---- user_addr_t iovaddr; user_size_t iovsize; ! if (proc_is64bit(current_proc())) { ! res = uio_create(uio_iovcnt(auio), uio_offset(auio), ! uio_isuserspace(auio) ? UIO_USERSPACE64 : UIO_SYSSPACE32, ! uio_rw(auio)); ! } else { ! res = uio_create(uio_iovcnt(auio), uio_offset(auio), ! uio_isuserspace(auio) ? UIO_USERSPACE32 : UIO_SYSSPACE32, ! uio_rw(auio)); ! } for (i = 0;i < uio_iovcnt(auio) && size > 0;i++) { if (uio_getiov(auio, i, &iovaddr, &iovsize)) Index: openafs/src/afs/DARWIN/osi_vnodeops.c diff -c openafs/src/afs/DARWIN/osi_vnodeops.c:1.18.2.28 openafs/src/afs/DARWIN/osi_vnodeops.c:1.18.2.29 *** openafs/src/afs/DARWIN/osi_vnodeops.c:1.18.2.28 Wed Oct 24 01:45:38 2007 --- openafs/src/afs/DARWIN/osi_vnodeops.c Tue Nov 27 15:04:13 2007 *************** *** 5,11 **** #include RCSID ! ("$Header: /cvs/openafs/src/afs/DARWIN/osi_vnodeops.c,v 1.18.2.28 2007/10/24 05:45:38 shadow Exp $"); #include /* Standard vendor system headers */ #include /* Afs-based standard headers */ --- 5,11 ---- #include RCSID ! ("$Header: /cvs/openafs/src/afs/DARWIN/osi_vnodeops.c,v 1.18.2.29 2007/11/27 20:04:13 shadow Exp $"); #include /* Standard vendor system headers */ #include /* Afs-based standard headers */ *************** *** 743,748 **** --- 743,751 ---- int code; struct vnode *vp = ap->a_vp; struct vcache *avc = VTOAFS(vp); + + if (vnode_isdir(ap->a_vp)) + return EISDIR; #ifdef AFS_DARWIN80_ENV ubc_sync_range(ap->a_vp, AFS_UIO_OFFSET(ap->a_uio), AFS_UIO_OFFSET(ap->a_uio) + AFS_UIO_RESID(ap->a_uio), UBC_PUSHDIRTY); #else Index: openafs/src/afs/DUX/osi_file.c diff -c openafs/src/afs/DUX/osi_file.c:1.9 openafs/src/afs/DUX/osi_file.c:1.9.2.1 *** openafs/src/afs/DUX/osi_file.c:1.9 Tue Jul 15 19:14:18 2003 --- openafs/src/afs/DUX/osi_file.c Thu Dec 13 14:18:50 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/DUX/Attic/osi_file.c,v 1.9 2003/07/15 23:14:18 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/DUX/Attic/osi_file.c,v 1.9.2.1 2007/12/13 19:18:50 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 279,286 **** void shutdown_osifile(void) { - extern int afs_cold_shutdown; - AFS_STATCNT(shutdown_osifile); if (afs_cold_shutdown) { afs_osicred_initialized = 0; --- 279,284 ---- Index: openafs/src/afs/FBSD/osi_file.c diff -c openafs/src/afs/FBSD/osi_file.c:1.13.2.1 openafs/src/afs/FBSD/osi_file.c:1.13.2.2 *** openafs/src/afs/FBSD/osi_file.c:1.13.2.1 Thu Nov 9 18:26:25 2006 --- openafs/src/afs/FBSD/osi_file.c Thu Dec 13 14:18:50 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/FBSD/osi_file.c,v 1.13.2.1 2006/11/09 23:26:25 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/FBSD/osi_file.c,v 1.13.2.2 2007/12/13 19:18:50 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 244,251 **** void shutdown_osifile(void) { - extern int afs_cold_shutdown; - AFS_STATCNT(shutdown_osifile); if (afs_cold_shutdown) { afs_osicred_initialized = 0; --- 244,249 ---- Index: openafs/src/afs/HPUX/osi_file.c diff -c openafs/src/afs/HPUX/osi_file.c:1.8.2.1 openafs/src/afs/HPUX/osi_file.c:1.8.2.2 *** openafs/src/afs/HPUX/osi_file.c:1.8.2.1 Thu Nov 9 18:26:26 2006 --- openafs/src/afs/HPUX/osi_file.c Thu Dec 13 14:18:50 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/HPUX/osi_file.c,v 1.8.2.1 2006/11/09 23:26:26 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/HPUX/osi_file.c,v 1.8.2.2 2007/12/13 19:18:50 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 223,230 **** void shutdown_osifile(void) { - extern int afs_cold_shutdown; - AFS_STATCNT(shutdown_osifile); if (afs_cold_shutdown) { afs_osicred_initialized = 0; --- 223,228 ---- Index: openafs/src/afs/IRIX/osi_file.c diff -c openafs/src/afs/IRIX/osi_file.c:1.11.2.1 openafs/src/afs/IRIX/osi_file.c:1.11.2.2 *** openafs/src/afs/IRIX/osi_file.c:1.11.2.1 Thu Nov 9 18:26:26 2006 --- openafs/src/afs/IRIX/osi_file.c Thu Dec 13 14:18:53 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/IRIX/osi_file.c,v 1.11.2.1 2006/11/09 23:26:26 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/IRIX/osi_file.c,v 1.11.2.2 2007/12/13 19:18:53 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 262,269 **** void shutdown_osifile(void) { - extern int afs_cold_shutdown; - AFS_STATCNT(shutdown_osifile); if (afs_cold_shutdown) { afs_osicred_initialized = 0; --- 262,267 ---- Index: openafs/src/afs/IRIX/osi_vfsops.c diff -c openafs/src/afs/IRIX/osi_vfsops.c:1.13.2.1 openafs/src/afs/IRIX/osi_vfsops.c:1.13.2.2 *** openafs/src/afs/IRIX/osi_vfsops.c:1.13.2.1 Wed Aug 25 03:09:34 2004 --- openafs/src/afs/IRIX/osi_vfsops.c Thu Dec 13 14:18:53 2007 *************** *** 14,20 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/IRIX/osi_vfsops.c,v 1.13.2.1 2004/08/25 07:09:34 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ --- 14,20 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/IRIX/osi_vfsops.c,v 1.13.2.2 2007/12/13 19:18:53 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 207,213 **** int flags; cred_t *cr; { - extern int afs_afs_cold_shutdown; struct vcache *tvc; vnode_t *vp, *rootvp = NULL; register struct afs_q *tq; --- 207,212 ---- Index: openafs/src/afs/LINUX/osi_file.c diff -c openafs/src/afs/LINUX/osi_file.c:1.19.2.11 openafs/src/afs/LINUX/osi_file.c:1.19.2.16 *** openafs/src/afs/LINUX/osi_file.c:1.19.2.11 Thu Nov 9 18:26:26 2006 --- openafs/src/afs/LINUX/osi_file.c Wed Mar 26 00:10:52 2008 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_file.c,v 1.19.2.11 2006/11/09 23:26:26 shadow Exp $"); #ifdef AFS_LINUX24_ENV #include "h/module.h" /* early to avoid printf->printk mapping */ --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_file.c,v 1.19.2.16 2008/03/26 04:10:52 shadow Exp $"); #ifdef AFS_LINUX24_ENV #include "h/module.h" /* early to avoid printf->printk mapping */ *************** *** 20,26 **** #include "afsincludes.h" /* Afs-based standard headers */ #include "afs/afs_stats.h" /* afs statistics */ #include "h/smp_lock.h" ! int afs_osicred_initialized = 0; struct AFS_UCRED afs_osi_cred; --- 20,28 ---- #include "afsincludes.h" /* Afs-based standard headers */ #include "afs/afs_stats.h" /* afs statistics */ #include "h/smp_lock.h" ! #if !defined(HAVE_IGET) ! #include "h/exportfs.h" ! #endif int afs_osicred_initialized = 0; struct AFS_UCRED afs_osi_cred; *************** *** 40,45 **** --- 42,50 ---- struct inode *tip = NULL; struct dentry *dp = NULL; struct file *filp = NULL; + #if !defined(HAVE_IGET) + struct fid fid; + #endif AFS_STATCNT(osi_UFSOpen); if (cacheDiskType != AFS_FCACHE_TYPE_UFS) { osi_Panic("UFSOpen called for non-UFS cache\n"); *************** *** 57,70 **** sizeof(struct osi_file)); } memset(afile, 0, sizeof(struct osi_file)); tip = iget(afs_cacheSBp, (u_long) ainode); if (!tip) osi_Panic("Can't get inode %d\n", ainode); - tip->i_flags |= MS_NOATIME; /* Disable updating access times. */ dp = d_alloc_anon(tip); if (!dp) osi_Panic("Can't get dentry for inode %d\n", ainode); filp = dentry_open(dp, mntget(afs_cacheMnt), O_RDWR); if (IS_ERR(filp)) --- 62,82 ---- sizeof(struct osi_file)); } memset(afile, 0, sizeof(struct osi_file)); + #if defined(HAVE_IGET) tip = iget(afs_cacheSBp, (u_long) ainode); if (!tip) osi_Panic("Can't get inode %d\n", ainode); dp = d_alloc_anon(tip); + #else + fid.i32.ino = ainode; + fid.i32.gen = 0; + dp = afs_cacheSBp->s_export_op->fh_to_dentry(afs_cacheSBp, &fid, sizeof(fid), FILEID_INO32_GEN); if (!dp) osi_Panic("Can't get dentry for inode %d\n", ainode); + tip = dp->d_inode; + #endif + tip->i_flags |= MS_NOATIME; /* Disable updating access times. */ filp = dentry_open(dp, mntget(afs_cacheMnt), O_RDWR); if (IS_ERR(filp)) *************** *** 348,355 **** void shutdown_osifile(void) { - extern int afs_cold_shutdown; - AFS_STATCNT(shutdown_osifile); if (afs_cold_shutdown) { afs_osicred_initialized = 0; --- 360,365 ---- Index: openafs/src/afs/LINUX/osi_groups.c diff -c openafs/src/afs/LINUX/osi_groups.c:1.25.2.10 openafs/src/afs/LINUX/osi_groups.c:1.25.2.15 *** openafs/src/afs/LINUX/osi_groups.c:1.25.2.10 Tue Mar 20 14:48:52 2007 --- openafs/src/afs/LINUX/osi_groups.c Sat Apr 19 17:56:11 2008 *************** *** 20,26 **** #endif RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_groups.c,v 1.25.2.10 2007/03/20 18:48:52 shadow Exp $"); #include "afs/sysincludes.h" #include "afsincludes.h" --- 20,26 ---- #endif RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_groups.c,v 1.25.2.15 2008/04/19 21:56:11 shadow Exp $"); #include "afs/sysincludes.h" #include "afsincludes.h" *************** *** 50,61 **** --- 50,63 ---- crset(*cr); + #ifdef STRUCT_TASK_STRUCT_HAS_PARENT if (change_parent) { old_info = current->parent->group_info; get_group_info(group_info); current->parent->group_info = group_info; put_group_info(old_info); } + #endif return (0); } *************** *** 222,228 **** } #ifdef LINUX_KEYRING_SUPPORT ! static struct key_type *__key_type_keyring; static int install_session_keyring(struct task_struct *task, struct key *keyring) --- 224,231 ---- } #ifdef LINUX_KEYRING_SUPPORT ! extern struct key_type key_type_keyring __attribute__((weak)); ! static struct key_type *__key_type_keyring = &key_type_keyring; static int install_session_keyring(struct task_struct *task, struct key *keyring) *************** *** 624,651 **** void osi_keyring_init(void) { struct task_struct *p; ! #ifdef EXPORTED_TASKLIST_LOCK ! if (&tasklist_lock) ! read_lock(&tasklist_lock); ! #endif ! #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) ! #ifdef EXPORTED_TASKLIST_LOCK ! else ! #endif ! rcu_read_lock(); ! #endif ! p = find_task_by_pid(1); ! if (p && p->user->session_keyring) ! __key_type_keyring = p->user->session_keyring->type; ! #ifdef EXPORTED_TASKLIST_LOCK ! if (&tasklist_lock) ! read_unlock(&tasklist_lock); ! #endif ! #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) ! #ifdef EXPORTED_TASKLIST_LOCK ! else ! #endif ! rcu_read_unlock(); #endif register_key_type(&key_type_afs_pag); --- 627,665 ---- void osi_keyring_init(void) { struct task_struct *p; ! ! /* If we can't lock the tasklist, either with its explicit lock, ! * or by using the RCU lock, then we can't safely work out the ! * type of a keyring. So, we have to rely on the weak reference. ! * If that's not available, then keyring based PAGs won't work. ! */ ! ! #if defined(EXPORTED_TASKLIST_LOCK) || (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) && defined(EXPORTED_RCU_READ_LOCK)) ! if (__key_type_keyring == NULL) { ! # ifdef EXPORTED_TASKLIST_LOCK ! if (&tasklist_lock) ! read_lock(&tasklist_lock); ! # endif ! # if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) && defined(EXPORTED_RCU_READ_LOCK)) ! # ifdef EXPORTED_TASKLIST_LOCK ! else ! # endif ! rcu_read_lock(); ! # endif ! p = find_task_by_pid(1); ! if (p && p->user->session_keyring) ! __key_type_keyring = p->user->session_keyring->type; ! # ifdef EXPORTED_TASKLIST_LOCK ! if (&tasklist_lock) ! read_unlock(&tasklist_lock); ! # endif ! # if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) && defined(EXPORTED_RCU_READ_LOCK)) ! # ifdef EXPORTED_TASKLIST_LOCK ! else ! # endif ! rcu_read_unlock(); ! # endif ! } #endif register_key_type(&key_type_afs_pag); Index: openafs/src/afs/LINUX/osi_machdep.h diff -c openafs/src/afs/LINUX/osi_machdep.h:1.22.2.17 openafs/src/afs/LINUX/osi_machdep.h:1.22.2.18 *** openafs/src/afs/LINUX/osi_machdep.h:1.22.2.17 Thu Feb 8 17:41:20 2007 --- openafs/src/afs/LINUX/osi_machdep.h Fri Nov 23 08:45:04 2007 *************** *** 76,82 **** --- 76,93 ---- #define afs_hz HZ #include "h/sched.h" + #if defined(HAVE_CURRENT_KERNEL_TIME) + static inline time_t osi_Time(void) { + struct timespec xtime; + xtime = current_kernel_time(); + return xtime.tv_sec; + } + #else #define osi_Time() (xtime.tv_sec) + #endif + + + #ifdef AFS_LINUX_64BIT_KERNEL #define osi_GetTime(V) \ do { \ Index: openafs/src/afs/LINUX/osi_misc.c diff -c openafs/src/afs/LINUX/osi_misc.c:1.34.2.10 openafs/src/afs/LINUX/osi_misc.c:1.34.2.12 *** openafs/src/afs/LINUX/osi_misc.c:1.34.2.10 Mon Jul 11 15:29:56 2005 --- openafs/src/afs/LINUX/osi_misc.c Mon Mar 10 15:05:28 2008 *************** *** 15,21 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_misc.c,v 1.34.2.10 2005/07/11 19:29:56 shadow Exp $"); #include "afs/sysincludes.h" #include "afsincludes.h" --- 15,21 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_misc.c,v 1.34.2.12 2008/03/10 19:05:28 shadow Exp $"); #include "afs/sysincludes.h" #include "afsincludes.h" *************** *** 52,61 **** --- 52,68 ---- #endif if (!code) { + #if defined(STRUCT_NAMEIDATA_HAS_PATH) + *dpp = dget(nd.path.dentry); + if (mnt) + *mnt = mntget(nd.path.mnt); + path_put(&nd.path); + #else *dpp = dget(nd.dentry); if (mnt) *mnt = mntget(nd.mnt); path_release(&nd); + #endif } return code; } *************** *** 348,355 **** } } - struct task_struct *rxk_ListenerTask; - void osi_linux_mask(void) { --- 355,360 ---- *************** *** 358,366 **** RECALC_SIGPENDING(current); SIG_UNLOCK(current); } - - void - osi_linux_rxkreg(void) - { - rxk_ListenerTask = current; - } --- 363,365 ---- Index: openafs/src/afs/LINUX/osi_probe.c diff -c openafs/src/afs/LINUX/osi_probe.c:1.1.2.24 openafs/src/afs/LINUX/osi_probe.c:1.1.2.25 *** openafs/src/afs/LINUX/osi_probe.c:1.1.2.24 Tue Aug 21 17:31:59 2007 --- openafs/src/afs/LINUX/osi_probe.c Sun Apr 6 23:19:40 2008 *************** *** 45,50 **** --- 45,51 ---- /* Code to find the Linux syscall table */ + #if defined(EXPORTED_INIT_MM) #ifdef OSI_PROBE_STANDALONE #define OSI_PROBE_DEBUG #endif *************** *** 1481,1483 **** --- 1482,1490 ---- module_exit(osi_probe_exit); #endif #endif + #else + void *osi_find_syscall_table(int which) + { + return 0; + } + #endif /* EXPORTED_INIT_MM */ Index: openafs/src/afs/LINUX/osi_sysctl.c diff -c openafs/src/afs/LINUX/osi_sysctl.c:1.7.2.5 openafs/src/afs/LINUX/osi_sysctl.c:1.7.2.6 *** openafs/src/afs/LINUX/osi_sysctl.c:1.7.2.5 Tue Jun 12 14:28:49 2007 --- openafs/src/afs/LINUX/osi_sysctl.c Fri Nov 23 08:45:04 2007 *************** *** 1,7 **** /* * osi_sysctl.c: Linux sysctl interface to OpenAFS * ! * $Id: osi_sysctl.c,v 1.7.2.5 2007/06/12 18:28:49 shadow Exp $ * * Written Jan 30, 2002 by Kris Van Hees (Sine Nomine Associates) */ --- 1,7 ---- /* * osi_sysctl.c: Linux sysctl interface to OpenAFS * ! * $Id: osi_sysctl.c,v 1.7.2.6 2007/11/23 13:45:04 shadow Exp $ * * Written Jan 30, 2002 by Kris Van Hees (Sine Nomine Associates) */ *************** *** 28,34 **** --- 28,38 ---- static ctl_table afs_sysctl_table[] = { { + #if defined(SYSCTL_TABLE_CHECKING) + .ctl_name = CTL_UNNUMBERED, + #else .ctl_name = 1, + #endif .procname = "hm_retry_RO", .data = &hm_retry_RO, .maxlen = sizeof(afs_int32), *************** *** 36,42 **** --- 40,50 ---- .proc_handler = &proc_dointvec }, { + #if defined(SYSCTL_TABLE_CHECKING) + .ctl_name = CTL_UNNUMBERED, + #else .ctl_name = 2, + #endif .procname = "hm_retry_RW", .data = &hm_retry_RW, .maxlen = sizeof(afs_int32), *************** *** 44,50 **** --- 52,62 ---- .proc_handler = &proc_dointvec }, { + #if defined(SYSCTL_TABLE_CHECKING) + .ctl_name = CTL_UNNUMBERED, + #else .ctl_name = 3, + #endif .procname = "hm_retry_int", .data = &hm_retry_int, .maxlen = sizeof(afs_int32), *************** *** 52,58 **** --- 64,74 ---- .proc_handler = &proc_dointvec }, { + #if defined(SYSCTL_TABLE_CHECKING) + .ctl_name = CTL_UNNUMBERED, + #else .ctl_name = 4, + #endif .procname = "GCPAGs", .data = &afs_gcpags, .maxlen = sizeof(afs_int32), *************** *** 60,66 **** --- 76,86 ---- .proc_handler = &proc_dointvec }, { + #if defined(SYSCTL_TABLE_CHECKING) + .ctl_name = CTL_UNNUMBERED, + #else .ctl_name = 5, + #endif .procname = "rx_deadtime", .data = &afs_rx_deadtime, .maxlen = sizeof(afs_int32), *************** *** 68,74 **** --- 88,98 ---- .proc_handler = &proc_dointvec }, { + #if defined(SYSCTL_TABLE_CHECKING) + .ctl_name = CTL_UNNUMBERED, + #else .ctl_name = 6, + #endif .procname = "bkVolPref", .data = &afs_bkvolpref, .maxlen = sizeof(afs_int32), *************** *** 80,86 **** --- 104,114 ---- static ctl_table fs_sysctl_table[] = { { + #if defined(SYSCTL_TABLE_CHECKING) + .ctl_name = CTL_UNNUMBERED, + #else .ctl_name = 1, + #endif .procname = "afs", .mode = 0555, .child = afs_sysctl_table Index: openafs/src/afs/LINUX/osi_vfsops.c diff -c openafs/src/afs/LINUX/osi_vfsops.c:1.29.2.26 openafs/src/afs/LINUX/osi_vfsops.c:1.29.2.28 *** openafs/src/afs/LINUX/osi_vfsops.c:1.29.2.26 Mon Oct 15 08:42:26 2007 --- openafs/src/afs/LINUX/osi_vfsops.c Fri Nov 23 08:45:04 2007 *************** *** 16,22 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_vfsops.c,v 1.29.2.26 2007/10/15 12:42:26 shadow Exp $"); #define __NO_VERSION__ /* don't define kernel_version in module.h */ #include /* early to avoid printf->printk mapping */ --- 16,22 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_vfsops.c,v 1.29.2.28 2007/11/23 13:45:04 shadow Exp $"); #define __NO_VERSION__ /* don't define kernel_version in module.h */ #include /* early to avoid printf->printk mapping */ *************** *** 295,302 **** --- 295,306 ---- #if defined(HAVE_KMEM_CACHE_T) init_once(void * foo, kmem_cache_t * cachep, unsigned long flags) #else + #if defined(KMEM_CACHE_INIT) + init_once(struct kmem_cache * cachep, void * foo) + #else init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) #endif + #endif { struct vcache *vcp = (struct vcache *) foo; *************** *** 531,538 **** --- 535,545 ---- ip->i_size = vp->va_size; #if defined(AFS_LINUX26_ENV) ip->i_atime.tv_sec = vp->va_atime.tv_sec; + ip->i_atime.tv_nsec = 0; ip->i_mtime.tv_sec = vp->va_mtime.tv_sec; + ip->i_mtime.tv_nsec = 0; ip->i_ctime.tv_sec = vp->va_ctime.tv_sec; + ip->i_ctime.tv_nsec = 0; #else ip->i_atime = vp->va_atime.tv_sec; ip->i_mtime = vp->va_mtime.tv_sec; Index: openafs/src/afs/LINUX/osi_vnodeops.c diff -c openafs/src/afs/LINUX/osi_vnodeops.c:1.81.2.57 openafs/src/afs/LINUX/osi_vnodeops.c:1.81.2.64 *** openafs/src/afs/LINUX/osi_vnodeops.c:1.81.2.57 Mon Oct 15 08:42:26 2007 --- openafs/src/afs/LINUX/osi_vnodeops.c Tue Apr 15 08:29:54 2008 *************** *** 22,28 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_vnodeops.c,v 1.81.2.57 2007/10/15 12:42:26 shadow Exp $"); #include "afs/sysincludes.h" #include "afsincludes.h" --- 22,28 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_vnodeops.c,v 1.81.2.64 2008/04/15 12:29:54 shadow Exp $"); #include "afs/sysincludes.h" #include "afsincludes.h" *************** *** 564,581 **** #endif { struct vrequest treq; ! struct vcache *vcp = VTOAFS(FILE_INODE(fp)); ! cred_t *credp = crref(); int code; AFS_GLOCK(); code = afs_InitReq(&treq, credp); if (code) goto out; ObtainSharedLock(&vcp->lock, 535); ! if (vcp->execsOrWriters > 0) { UpgradeSToWLock(&vcp->lock, 536); code = afs_StoreAllSegments(vcp, &treq, AFS_SYNC | AFS_LASTSTORE); ConvertWToSLock(&vcp->lock); --- 564,589 ---- #endif { struct vrequest treq; ! struct vcache *vcp; ! cred_t *credp; int code; AFS_GLOCK(); + if ((fp->f_flags & O_ACCMODE) == O_RDONLY) { /* readers dont flush */ + AFS_GUNLOCK(); + return 0; + } + + credp = crref(); + vcp = VTOAFS(FILE_INODE(fp)); + code = afs_InitReq(&treq, credp); if (code) goto out; ObtainSharedLock(&vcp->lock, 535); ! if ((vcp->execsOrWriters > 0) && (file_count(fp) == 1)) { UpgradeSToWLock(&vcp->lock, 536); code = afs_StoreAllSegments(vcp, &treq, AFS_SYNC | AFS_LASTSTORE); ConvertWToSLock(&vcp->lock); *************** *** 643,648 **** --- 651,660 ---- #if defined(AFS_LINUX26_ENV) && defined(STRUCT_FILE_OPERATIONS_HAS_SENDFILE) .sendfile = generic_file_sendfile, #endif + #if defined(AFS_LINUX26_ENV) && defined(STRUCT_FILE_OPERATIONS_HAS_SPLICE) + .splice_write = generic_file_splice_write, + .splice_read = generic_file_splice_read, + #endif .release = afs_linux_release, .fsync = afs_linux_fsync, .lock = afs_linux_lock, *************** *** 791,798 **** if (vcp == afs_globalVp) goto good_dentry; ! if (*dp->d_name.name != '/' && vcp->mvstat == 2) /* root vnode */ ! check_bad_parent(dp); /* check and correct mvid */ #ifdef notdef /* If the last looker changes, we should make sure the current --- 803,816 ---- if (vcp == afs_globalVp) goto good_dentry; ! if (vcp->mvstat == 1) { /* mount point */ ! if (vcp->mvid && (vcp->states & CMValid)) { ! /* a mount point, not yet replaced by its directory */ ! goto bad_dentry; ! } ! } else ! if (*dp->d_name.name != '/' && vcp->mvstat == 2) /* root vnode */ ! check_bad_parent(dp); /* check and correct mvid */ #ifdef notdef /* If the last looker changes, we should make sure the current *************** *** 878,883 **** --- 896,910 ---- AFS_GLOCK(); (void) afs_InactiveVCache(vcp, NULL); AFS_GUNLOCK(); + #ifdef DCACHE_NFSFS_RENAMED + #ifdef AFS_LINUX26_ENV + spin_lock(&dp->d_lock); + #endif + dp->d_flags &= ~DCACHE_NFSFS_RENAMED; + #ifdef AFS_LINUX26_ENV + spin_unlock(&dp->d_lock); + #endif + #endif iput(ip); } *************** *** 939,944 **** --- 966,972 ---- afs_getattr(vcp, &vattr, credp); afs_fill_inode(ip, &vattr); + insert_inode_hash(ip); dp->d_op = &afs_dentry_operations; dp->d_time = hgetlo(VTOAFS(dip)->m.DataVersion); d_instantiate(dp, ip); *************** *** 984,989 **** --- 1012,1019 ---- ip = AFSTOV(vcp); afs_getattr(vcp, &vattr, credp); afs_fill_inode(ip, &vattr); + if (hlist_unhashed(&ip->i_hash)) + insert_inode_hash(ip); } dp->d_op = &afs_dentry_operations; dp->d_time = hgetlo(VTOAFS(dip)->m.DataVersion); *************** *** 1095,1100 **** --- 1125,1139 ---- } tvc->uncred = credp; tvc->states |= CUnlinked; + #ifdef DCACHE_NFSFS_RENAMED + #ifdef AFS_LINUX26_ENV + spin_lock(&dp->d_lock); + #endif + dp->d_flags |= DCACHE_NFSFS_RENAMED; + #ifdef AFS_LINUX26_ENV + spin_unlock(&dp->d_lock); + #endif + #endif } else { osi_FreeSmallSpace(__name); } *************** *** 1822,1826 **** #endif } - /* insert_inode_hash(ip); -- this would make iget() work (if we used it) */ } --- 1861,1864 ---- Index: openafs/src/afs/NBSD/osi_file.c diff -c openafs/src/afs/NBSD/osi_file.c:1.5.2.1 openafs/src/afs/NBSD/osi_file.c:1.5.2.2 *** openafs/src/afs/NBSD/osi_file.c:1.5.2.1 Thu Nov 9 18:26:26 2006 --- openafs/src/afs/NBSD/osi_file.c Thu Dec 13 14:18:55 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/NBSD/osi_file.c,v 1.5.2.1 2006/11/09 23:26:26 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/NBSD/osi_file.c,v 1.5.2.2 2007/12/13 19:18:55 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 224,231 **** void shutdown_osifile(void) { - extern int afs_cold_shutdown; - AFS_STATCNT(shutdown_osifile); if (afs_cold_shutdown) { afs_osicred_initialized = 0; --- 224,229 ---- Index: openafs/src/afs/OBSD/osi_file.c diff -c openafs/src/afs/OBSD/osi_file.c:1.10.2.2 openafs/src/afs/OBSD/osi_file.c:1.10.2.3 *** openafs/src/afs/OBSD/osi_file.c:1.10.2.2 Thu Nov 9 18:26:26 2006 --- openafs/src/afs/OBSD/osi_file.c Fri Jan 4 12:56:41 2008 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/OBSD/osi_file.c,v 1.10.2.2 2006/11/09 23:26:26 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afs/afsincludes.h" /* Afs-based standard headers */ --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/OBSD/osi_file.c,v 1.10.2.3 2008/01/04 17:56:41 rees Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afs/afsincludes.h" /* Afs-based standard headers */ *************** *** 136,142 **** int afs_osi_Read(struct osi_file *afile, int offset, void *aptr, afs_int32 asize) { ! unsigned int resid; afs_int32 code; AFS_STATCNT(osi_Read); --- 136,142 ---- int afs_osi_Read(struct osi_file *afile, int offset, void *aptr, afs_int32 asize) { ! size_t resid; afs_int32 code; AFS_STATCNT(osi_Read); *************** *** 164,171 **** afile->offset += code; osi_DisableAtimes(afile->vnode); } else { ! afs_Trace2(afs_iclSetp, CM_TRACE_READFAILED, ICL_TYPE_INT32, resid, ! ICL_TYPE_INT32, code); code = -1; } return code; --- 164,171 ---- afile->offset += code; osi_DisableAtimes(afile->vnode); } else { ! afs_Trace2(afs_iclSetp, CM_TRACE_READFAILED, ICL_TYPE_INT32, ! (unsigned int) resid, ICL_TYPE_INT32, code); code = -1; } return code; *************** *** 176,182 **** afs_osi_Write(struct osi_file *afile, afs_int32 offset, void *aptr, afs_int32 asize) { ! unsigned int resid; afs_int32 code; AFS_STATCNT(osi_Write); --- 176,182 ---- afs_osi_Write(struct osi_file *afile, afs_int32 offset, void *aptr, afs_int32 asize) { ! size_t resid; afs_int32 code; AFS_STATCNT(osi_Write); Index: openafs/src/afs/OBSD/osi_machdep.h diff -c openafs/src/afs/OBSD/osi_machdep.h:1.16.2.8 openafs/src/afs/OBSD/osi_machdep.h:1.16.2.9 *** openafs/src/afs/OBSD/osi_machdep.h:1.16.2.8 Thu Nov 9 19:08:56 2006 --- openafs/src/afs/OBSD/osi_machdep.h Fri Jan 4 12:53:37 2008 *************** *** 16,22 **** * afs_osi.h. */ ! /* $Id: osi_machdep.h,v 1.16.2.8 2006/11/10 00:08:56 shadow Exp $ */ #ifndef _OSI_MACHDEP_H_ #define _OSI_MACHDEP_H_ --- 16,22 ---- * afs_osi.h. */ ! /* $Id: osi_machdep.h,v 1.16.2.9 2008/01/04 17:53:37 rees Exp $ */ #ifndef _OSI_MACHDEP_H_ #define _OSI_MACHDEP_H_ *************** *** 69,75 **** /* time */ #define afs_hz hz #define osi_GetTime(x) microtime(x) ! #define osi_Time() (time.tv_sec) /* str */ #define afs_strcasecmp(s1, s2) strncasecmp((s1), (s2), 65535) --- 69,75 ---- /* time */ #define afs_hz hz #define osi_GetTime(x) microtime(x) ! extern time_t osi_Time(); /* str */ #define afs_strcasecmp(s1, s2) strncasecmp((s1), (s2), 65535) Index: openafs/src/afs/OBSD/osi_sleep.c diff -c openafs/src/afs/OBSD/osi_sleep.c:1.7.2.2 openafs/src/afs/OBSD/osi_sleep.c:1.7.2.3 *** openafs/src/afs/OBSD/osi_sleep.c:1.7.2.2 Thu Jul 28 17:48:35 2005 --- openafs/src/afs/OBSD/osi_sleep.c Fri Jan 4 12:53:37 2008 *************** *** 1,5 **** /* ! * $Id: osi_sleep.c,v 1.7.2.2 2005/07/28 21:48:35 shadow Exp $ */ /* --- 1,5 ---- /* ! * $Id: osi_sleep.c,v 1.7.2.3 2008/01/04 17:53:37 rees Exp $ */ /* *************** *** 45,51 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/OBSD/osi_sleep.c,v 1.7.2.2 2005/07/28 21:48:35 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afs/afsincludes.h" /* Afs-based standard headers */ --- 45,51 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/OBSD/osi_sleep.c,v 1.7.2.3 2008/01/04 17:53:37 rees Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afs/afsincludes.h" /* Afs-based standard headers */ *************** *** 54,59 **** --- 54,74 ---- static char waitV; + time_t + osi_Time() + { + struct timeval now; + + getmicrotime(&now); + return now.tv_sec; + } + + void + afs_osi_SetTime(osi_timeval_t * atv) + { + printf("afs attempted to set clock; use \"afsd -nosettime\"\n"); + } + /* cancel osi_Wait */ void afs_osi_CancelWait(struct afs_osi_WaitHandle *achandle) *************** *** 76,88 **** afs_osi_Wait(afs_int32 ams, struct afs_osi_WaitHandle *ahandle, int aintok) { int timo, code = 0; ! struct timeval atv, endTime; AFS_STATCNT(osi_Wait); atv.tv_sec = ams / 1000; atv.tv_usec = (ams % 1000) * 1000; ! timeradd(&atv, &time, &endTime); if (ahandle) ahandle->proc = (caddr_t) curproc; --- 91,104 ---- afs_osi_Wait(afs_int32 ams, struct afs_osi_WaitHandle *ahandle, int aintok) { int timo, code = 0; ! struct timeval atv, now, endTime; AFS_STATCNT(osi_Wait); atv.tv_sec = ams / 1000; atv.tv_usec = (ams % 1000) * 1000; ! getmicrotime(&now); ! timeradd(&atv, &now, &endTime); if (ahandle) ahandle->proc = (caddr_t) curproc; *************** *** 90,96 **** AFS_GUNLOCK(); do { ! timersub(&endTime, &time, &atv); timo = atv.tv_sec * hz + atv.tv_usec * hz / 1000000 + 1; if (aintok) { code = tsleep(&waitV, PCATCH | PVFS, "afs_W1", timo); --- 106,112 ---- AFS_GUNLOCK(); do { ! timersub(&endTime, &now, &atv); timo = atv.tv_sec * hz + atv.tv_usec * hz / 1000000 + 1; if (aintok) { code = tsleep(&waitV, PCATCH | PVFS, "afs_W1", timo); *************** *** 104,110 **** /* we've been signalled */ break; } ! } while (timercmp(&time, &endTime, <)); AFS_GLOCK(); return code; --- 120,127 ---- /* we've been signalled */ break; } ! getmicrotime(&now); ! } while (timercmp(&now, &endTime, <)); AFS_GLOCK(); return code; Index: openafs/src/afs/OBSD/osi_vm.c diff -c openafs/src/afs/OBSD/osi_vm.c:1.2 openafs/src/afs/OBSD/osi_vm.c:1.2.2.1 *** openafs/src/afs/OBSD/osi_vm.c:1.2 Tue Jul 15 19:14:25 2003 --- openafs/src/afs/OBSD/osi_vm.c Thu Jan 3 12:15:19 2008 *************** *** 22,33 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/OBSD/osi_vm.c,v 1.2 2003/07/15 23:14:25 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afs/afsincludes.h" /* Afs-based standard headers */ #include "afs/afs_stats.h" /* statistics */ ! /* #include */ #include #include --- 22,33 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/OBSD/osi_vm.c,v 1.2.2.1 2008/01/03 17:15:19 rees Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afs/afsincludes.h" /* Afs-based standard headers */ #include "afs/afs_stats.h" /* statistics */ ! #include #include #include *************** *** 50,55 **** --- 50,65 ---- int osi_VM_FlushVCache(struct vcache *avc, int *slept) { + struct vnode *vp = AFSTOV(avc); + + if (!vp) + return 0; + AFS_GUNLOCK(); + + cache_purge(vp); + uvm_vnp_uncache(vp); + + AFS_GLOCK(); return 0; } *************** *** 57,62 **** --- 67,73 ---- * * Locking: the vcache entry's lock is held. It will usually be dropped and * re-obtained. + * */ void osi_VM_StoreAllSegments(struct vcache *avc) *************** *** 75,80 **** --- 86,94 ---- void osi_VM_TryToSmush(struct vcache *avc, struct AFS_UCRED *acred, int sync) { + ReleaseWriteLock(&avc->lock); + osi_VM_FlushVCache(avc, NULL); + ObtainWriteLock(&avc->lock, 59); } /* Purge VM for a file when its callback is revoked. *************** *** 84,89 **** --- 98,110 ---- void osi_VM_FlushPages(struct vcache *avc, struct AFS_UCRED *credp) { + struct vnode *vp = AFSTOV(avc); + + if (!vp) + return; + cache_purge(vp); + uvm_vnp_uncache(vp); + uvm_vnp_setsize(vp, avc->m.Length); } /* Purge pages beyond end-of-file, when truncating a file. *************** *** 95,98 **** --- 116,120 ---- void osi_VM_Truncate(struct vcache *avc, int alen, struct AFS_UCRED *acred) { + uvm_vnp_setsize(AFSTOV(avc), a