Index: openafs/src/JAVA/libjafs/File.c diff -c openafs/src/JAVA/libjafs/File.c:1.3.2.1 openafs/src/JAVA/libjafs/File.c:1.3.2.2 *** openafs/src/JAVA/libjafs/File.c:1.3.2.1 Fri Oct 14 22:14:11 2005 --- openafs/src/JAVA/libjafs/File.c Tue Apr 10 14:43:28 2007 *************** *** 168,174 **** return JNI_TRUE; /* not really an error */ } else { fprintf(stderr, "File::setAttributes(): uafs_statmountpoint failed " ! "for %s (%s)\n", dirName, error_message(errno)); return JNI_FALSE; } } --- 168,174 ---- return JNI_TRUE; /* not really an error */ } else { fprintf(stderr, "File::setAttributes(): uafs_statmountpoint failed " ! "for %s (%s)\n", dirName, afs_error_message(errno)); return JNI_FALSE; } } *************** *** 208,214 **** } fprintf(stderr, "File::setAttributes(): uafs_stat failed for %s (%s)\n", ! dirName, error_message(errno)); return JNI_FALSE; } } --- 208,214 ---- } fprintf(stderr, "File::setAttributes(): uafs_stat failed for %s (%s)\n", ! dirName, afs_error_message(errno)); return JNI_FALSE; } } *************** *** 427,433 **** dirp = uafs_opendir(dirName); if(dirp == NULL) { fprintf(stderr, "File::listNative(): uafs_opendir(%s) failed(%s)\n", ! dirName, error_message(errno)); setError(env, &obj, errno); //throwAFSSecurityException( env, errno ); return 0; --- 427,433 ---- dirp = uafs_opendir(dirName); if(dirp == NULL) { fprintf(stderr, "File::listNative(): uafs_opendir(%s) failed(%s)\n", ! dirName, afs_error_message(errno)); setError(env, &obj, errno); //throwAFSSecurityException( env, errno ); return 0; Index: openafs/src/WINNT/afsd/afskfw.c diff -c openafs/src/WINNT/afsd/afskfw.c:1.8.2.20 openafs/src/WINNT/afsd/afskfw.c:1.8.2.21 *** openafs/src/WINNT/afsd/afskfw.c:1.8.2.20 Wed Jul 26 08:54:36 2006 --- openafs/src/WINNT/afsd/afskfw.c Wed Apr 18 11:58:22 2007 *************** *** 1422,1428 **** } free(principals); } ! pkrb5_free_context(ctx); return 0; } --- 1422,1429 ---- } free(principals); } ! if (ctx) ! pkrb5_free_context(ctx); return 0; } *************** *** 1476,1482 **** free(cells); } ! pkrb5_free_context(ctx); return 0; } --- 1477,1484 ---- free(cells); } ! if (ctx) ! pkrb5_free_context(ctx); return 0; } *************** *** 1700,1706 **** code = -1; // we did not renew the tokens cleanup: ! pkrb5_free_context(ctx); return (code ? FALSE : TRUE); } --- 1702,1709 ---- code = -1; // we did not renew the tokens cleanup: ! if (ctx) ! pkrb5_free_context(ctx); return (code ? FALSE : TRUE); } Index: openafs/src/WINNT/afsd/cklog.c diff -c openafs/src/WINNT/afsd/cklog.c:1.3 openafs/src/WINNT/afsd/cklog.c:1.3.2.1 *** openafs/src/WINNT/afsd/cklog.c:1.3 Fri Nov 14 22:20:01 2003 --- openafs/src/WINNT/afsd/cklog.c Tue Apr 10 14:43:34 2007 *************** *** 311,317 **** code = krb_write_ticket_file (realm); if (!Silent) { if (code) ! com_err (rn, code, "writing Kerberos ticket file"); else fprintf (stderr, "Wrote ticket file to /tmp\n"); } } --- 311,317 ---- code = krb_write_ticket_file (realm); if (!Silent) { if (code) ! afs_com_err (rn, code, "writing Kerberos ticket file"); else fprintf (stderr, "Wrote ticket file to /tmp\n"); } } Index: openafs/src/WINNT/afsd/fs.c diff -c openafs/src/WINNT/afsd/fs.c:1.16.2.20 openafs/src/WINNT/afsd/fs.c:1.16.2.21 *** openafs/src/WINNT/afsd/fs.c:1.16.2.20 Fri Mar 2 20:30:45 2007 --- openafs/src/WINNT/afsd/fs.c Tue Apr 10 14:43:35 2007 *************** *** 4594,4600 **** #ifdef WIN32 fprintf(stderr, ": code 0x%x\n", code); #else /* not WIN32 */ ! fprintf(stderr,": %s\n", error_message(code)); #endif /* not WIN32 */ } } /*Die*/ --- 4594,4600 ---- #ifdef WIN32 fprintf(stderr, ": code 0x%x\n", code); #else /* not WIN32 */ ! fprintf(stderr,": %s\n", afs_error_message(code)); #endif /* not WIN32 */ } } /*Die*/ Index: openafs/src/WINNT/afsd/lanahelper.cpp diff -c openafs/src/WINNT/afsd/lanahelper.cpp:1.8.2.6 openafs/src/WINNT/afsd/lanahelper.cpp:1.8.2.7 *** openafs/src/WINNT/afsd/lanahelper.cpp:1.8.2.6 Tue Feb 27 19:39:55 2007 --- openafs/src/WINNT/afsd/lanahelper.cpp Mon Oct 1 16:07:14 2007 *************** *** 445,450 **** --- 445,451 ---- rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE,AFSREG_CLT_SVC_PARAM_SUBKEY,0,KEY_READ,&hkConfig); if (rv == ERROR_SUCCESS) { + dummyLen = sizeof(regLana); rv = RegQueryValueEx(hkConfig, szForceLanaLoopback, NULL, NULL, (LPBYTE) ®Lana, &dummyLen); RegCloseKey(hkConfig); Index: openafs/src/WINNT/afsd/symlink.c diff -c openafs/src/WINNT/afsd/symlink.c:1.2.20.4 openafs/src/WINNT/afsd/symlink.c:1.2.20.5 *** openafs/src/WINNT/afsd/symlink.c:1.2.20.4 Wed Aug 31 07:00:31 2005 --- openafs/src/WINNT/afsd/symlink.c Tue Apr 10 14:43:36 2007 *************** *** 652,658 **** #ifdef WIN32 fprintf(stderr, ": code 0x%x\n", code); #else /* not WIN32 */ ! fprintf(stderr,": %s\n", error_message(code)); #endif /* not WIN32 */ } } /*Die*/ --- 652,658 ---- #ifdef WIN32 fprintf(stderr, ": code 0x%x\n", code); #else /* not WIN32 */ ! fprintf(stderr,": %s\n", afs_error_message(code)); #endif /* not WIN32 */ } } /*Die*/ Index: openafs/src/WINNT/afsd/sample/token.c diff -c openafs/src/WINNT/afsd/sample/token.c:1.3 openafs/src/WINNT/afsd/sample/token.c:1.3.2.1 *** openafs/src/WINNT/afsd/sample/token.c:1.3 Fri Nov 21 02:59:45 2003 --- openafs/src/WINNT/afsd/sample/token.c Tue Apr 10 14:43:36 2007 *************** *** 276,282 **** code = krb_write_ticket_file (realm); if (!Silent) { if (code) ! com_err (rn, code, "writing Kerberos ticket file"); else fprintf (stderr, "Wrote ticket file to /tmp\n"); } } --- 276,282 ---- code = krb_write_ticket_file (realm); if (!Silent) { if (code) ! afs_com_err (rn, code, "writing Kerberos ticket file"); else fprintf (stderr, "Wrote ticket file to /tmp\n"); } } Index: openafs/src/WINNT/afsreg/test/regman.c diff -c openafs/src/WINNT/afsreg/test/regman.c:1.3 openafs/src/WINNT/afsreg/test/regman.c:1.3.8.1 *** openafs/src/WINNT/afsreg/test/regman.c:1.3 Tue Sep 18 00:26:55 2001 --- openafs/src/WINNT/afsreg/test/regman.c Tue Apr 10 14:43:37 2007 *************** *** 60,71 **** vpDev = as->parms[1].items->data; if (!vpt_PartitionNameValid(vpName)) { ! com_err(whoami, 0, "Partition name invalid"); return 1; } if (!vpt_DeviceNameValid(vpDev)) { ! com_err(whoami, 0, "Device name invalid"); return 1; } --- 60,71 ---- vpDev = as->parms[1].items->data; if (!vpt_PartitionNameValid(vpName)) { ! afs_com_err(whoami, 0, "Partition name invalid"); return 1; } if (!vpt_DeviceNameValid(vpDev)) { ! afs_com_err(whoami, 0, "Device name invalid"); return 1; } *************** *** 73,79 **** strcpy(vpentry.vp_dev, vpDev); if (vpt_AddEntry(&vpentry)) { ! com_err(whoami, 0, "Unable to create vice partition table entry"); return 1; } return 0; --- 73,79 ---- strcpy(vpentry.vp_dev, vpDev); if (vpt_AddEntry(&vpentry)) { ! afs_com_err(whoami, 0, "Unable to create vice partition table entry"); return 1; } return 0; *************** *** 86,97 **** vpName = as->parms[0].items->data; if (!vpt_PartitionNameValid(vpName)) { ! com_err(whoami, 0, "Partition name invalid"); return 1; } if (vpt_RemoveEntry(vpName) && errno != ENOENT) { ! com_err(whoami, 0, "Unable to remove vice partition table entry"); return 1; } return 0; --- 86,97 ---- vpName = as->parms[0].items->data; if (!vpt_PartitionNameValid(vpName)) { ! afs_com_err(whoami, 0, "Partition name invalid"); return 1; } if (vpt_RemoveEntry(vpName) && errno != ENOENT) { ! afs_com_err(whoami, 0, "Unable to remove vice partition table entry"); return 1; } return 0; *************** *** 103,109 **** char *buf; if (afssw_GetServerInstallDir(&buf)) { ! com_err(whoami, 0, "Failed reading AFS install dir entry (or does not exist)"); return 1; } --- 103,109 ---- char *buf; if (afssw_GetServerInstallDir(&buf)) { ! afs_com_err(whoami, 0, "Failed reading AFS install dir entry (or does not exist)"); return 1; } *************** *** 136,142 **** } if (status) { ! com_err(whoami, 0, "Unable to set AFS installation directory entry"); } return (status ? 1 : 0); --- 136,142 ---- } if (status) { ! afs_com_err(whoami, 0, "Unable to set AFS installation directory entry"); } return (status ? 1 : 0); *************** *** 157,163 **** char *dirBuf; if (afssw_GetServerInstallDir(&dirBuf)) { ! com_err(whoami, 0, "binary path not specified and AFS server installation directory not set"); return 1; } --- 157,163 ---- char *dirBuf; if (afssw_GetServerInstallDir(&dirBuf)) { ! afs_com_err(whoami, 0, "binary path not specified and AFS server installation directory not set"); return 1; } *************** *** 177,183 **** if (status == ERROR_ACCESS_DENIED) { reason = "(insufficient privilege)"; } ! com_err(whoami, 0, "unable to connect to the SCM %s", reason); return 1; } --- 177,183 ---- if (status == ERROR_ACCESS_DENIED) { reason = "(insufficient privilege)"; } ! afs_com_err(whoami, 0, "unable to connect to the SCM %s", reason); return 1; } *************** *** 202,208 **** if (status == ERROR_SERVICE_EXISTS || status == ERROR_DUP_NAME) { reason = "(service or display name already exists)"; } ! com_err(whoami, 0, "unable to create service %s", reason); CloseServiceHandle(scmHandle); return 1; } --- 202,208 ---- if (status == ERROR_SERVICE_EXISTS || status == ERROR_DUP_NAME) { reason = "(service or display name already exists)"; } ! afs_com_err(whoami, 0, "unable to create service %s", reason); CloseServiceHandle(scmHandle); return 1; } *************** *** 227,233 **** if (status == ERROR_ACCESS_DENIED) { reason = "(insufficient privilege)"; } ! com_err(whoami, 0, "unable to connect to the SCM %s", reason); return 1; } --- 227,233 ---- if (status == ERROR_ACCESS_DENIED) { reason = "(insufficient privilege)"; } ! afs_com_err(whoami, 0, "unable to connect to the SCM %s", reason); return 1; } *************** *** 238,244 **** DWORD status = GetLastError(); if (status != ERROR_SERVICE_DOES_NOT_EXIST) { ! com_err(whoami, 0, "unable to open service"); rc = 1; } CloseServiceHandle(scmHandle); --- 238,244 ---- DWORD status = GetLastError(); if (status != ERROR_SERVICE_DOES_NOT_EXIST) { ! afs_com_err(whoami, 0, "unable to open service"); rc = 1; } CloseServiceHandle(scmHandle); *************** *** 249,255 **** DWORD status = GetLastError(); if (status != ERROR_SERVICE_MARKED_FOR_DELETE) { ! com_err(whoami, 0, "service delete failed"); rc = 1; } } --- 249,255 ---- DWORD status = GetLastError(); if (status != ERROR_SERVICE_MARKED_FOR_DELETE) { ! afs_com_err(whoami, 0, "service delete failed"); rc = 1; } } Index: openafs/src/WINNT/aklog/NTMakefile diff -c openafs/src/WINNT/aklog/NTMakefile:1.2.2.1 openafs/src/WINNT/aklog/NTMakefile:1.2.2.2 *** openafs/src/WINNT/aklog/NTMakefile:1.2.2.1 Sun Jun 12 07:26:15 2005 --- openafs/src/WINNT/aklog/NTMakefile Tue Apr 10 14:43:38 2007 *************** *** 28,35 **** EXELIBS = \ $(DESTDIR)\lib\afs\afspioctl.lib \ ! $(DESTDIR)\lib\afsauthent.lib \ ! $(DESTDIR)\lib\afs\afskauth.lib OTHERLIBS = \ ..\kfw\lib\i386\krbv4w32.lib \ --- 28,37 ---- EXELIBS = \ $(DESTDIR)\lib\afs\afspioctl.lib \ ! $(DESTDIR)\lib\afsauthent.lib \ ! $(DESTDIR)\lib\afs\afskauth.lib \ ! $(DESTDIR)\lib\afs\afscom_err.lib \ ! $(DESTDIR)\lib\afs\afsutil.lib OTHERLIBS = \ ..\kfw\lib\i386\krbv4w32.lib \ Index: openafs/src/WINNT/aklog/asetkey.c diff -c openafs/src/WINNT/aklog/asetkey.c:1.1.2.2 openafs/src/WINNT/aklog/asetkey.c:1.1.2.3 *** openafs/src/WINNT/aklog/asetkey.c:1.1.2.2 Sun Jun 12 07:26:15 2005 --- openafs/src/WINNT/aklog/asetkey.c Tue Apr 10 14:43:39 2007 *************** *** 1,5 **** /* ! * $Id: asetkey.c,v 1.1.2.2 2005/06/12 11:26:15 jaltman Exp $ * * asetkey - Manipulates an AFS KeyFile * --- 1,5 ---- /* ! * $Id: asetkey.c,v 1.1.2.3 2007/04/10 18:43:39 shadow Exp $ * * asetkey - Manipulates an AFS KeyFile * *************** *** 17,22 **** --- 17,23 ---- #ifndef PRE_AFS35 #include #endif /* !PRE_AFS35 */ + #include int main(int argc, char **argv) *************** *** 61,73 **** kvno = atoi(argv[2]); retval = krb5_parse_name(context, argv[4], &principal); if (retval != 0) { ! com_err(argv[0], retval, "while parsing AFS principal"); exit(1); } retval = krb5_kt_read_service_key(context, argv[3], principal, kvno, ENCTYPE_DES_CBC_CRC, &key); if (retval != 0) { ! com_err(argv[0], retval, "while extracting AFS service key"); exit(1); } --- 62,74 ---- kvno = atoi(argv[2]); retval = krb5_parse_name(context, argv[4], &principal); if (retval != 0) { ! afs_com_err(argv[0], retval, "while parsing AFS principal"); exit(1); } retval = krb5_kt_read_service_key(context, argv[3], principal, kvno, ENCTYPE_DES_CBC_CRC, &key); if (retval != 0) { ! afs_com_err(argv[0], retval, "while extracting AFS service key"); exit(1); } Index: openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm diff -c openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm:1.1.24.6 openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm:1.1.24.7 *** openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm:1.1.24.6 Fri Jan 5 15:15:41 2007 --- openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm Sat Jun 23 10:48:26 2007 *************** *** 198,204 ****

OpenAFS for Windows

!

Version 1.4.3

 

--- 198,204 ----

OpenAFS for Windows

!

Version 1.4.4

 

*************** *** 223,229 **** mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'>·         OpenAFS for Windows Release Notes

·         OpenAFS for Windows 1.4.4 Release Notes

tproa.net #The People's Republic of Ames ! 209.234.76.70 #service-3.tproa.net ! 209.234.76.75 #service-4.tproa.net ! 209.234.76.76 #service-5.tproa.net >nikhef.nl #The Dutch National Institute for High Energy Physics 192.16.185.26 #afs1.nikhef.nl 192.16.185.27 #afs2.nikhef.nl --- 488,496 ---- >slackers.net #The Slackers' Network 63.201.48.27 #alexandria.slackers.net >tproa.net #The People's Republic of Ames ! 72.13.4.23 #service-3.tproa.net ! 72.13.4.24 #service-4.tproa.net ! 72.13.4.25 #service-5.tproa.net >nikhef.nl #The Dutch National Institute for High Energy Physics 192.16.185.26 #afs1.nikhef.nl 192.16.185.27 #afs2.nikhef.nl *************** *** 519,526 **** 130.237.24.104 #afs2.hallf.kth.se >isk.kth.se #Royal Institute of Technology, ISK 130.237.202.3 #afsdb1.isk.kth.se 130.237.209.9 #afsdb3.isk.kth.se - 130.237.209.39 #ezri.isk.kth.se >it.kth.se #Royal Institute of Technology, IT 130.237.212.15 #ptah.it.kth.se 130.237.212.16 #toth.it.kth.se --- 529,536 ---- 130.237.24.104 #afs2.hallf.kth.se >isk.kth.se #Royal Institute of Technology, ISK 130.237.202.3 #afsdb1.isk.kth.se + 130.237.209.5 #afsdb2.isk.kth.se 130.237.209.9 #afsdb3.isk.kth.se >it.kth.se #Royal Institute of Technology, IT 130.237.212.15 #ptah.it.kth.se 130.237.212.16 #toth.it.kth.se *************** *** 546,552 **** >stacken.kth.se #Stacken Computer Club 130.237.234.3 #milko.stacken.kth.se 130.237.234.43 #hot.stacken.kth.se ! 130.237.237.230 #fishburger.stacken.kth.se >syd.kth.se #Royal Institute of Technology, KTH-Syd 130.237.83.23 #afs.haninge.kth.se >physto.se #Physics department Stockholm University --- 556,562 ---- >stacken.kth.se #Stacken Computer Club 130.237.234.3 #milko.stacken.kth.se 130.237.234.43 #hot.stacken.kth.se ! 130.237.234.101 #fishburger.stacken.kth.se >syd.kth.se #Royal Institute of Technology, KTH-Syd 130.237.83.23 #afs.haninge.kth.se >physto.se #Physics department Stockholm University Index: openafs/src/WINNT/install/Win9x/CellServDB diff -c openafs/src/WINNT/install/Win9x/CellServDB:1.2.2.6 openafs/src/WINNT/install/Win9x/CellServDB:1.2.2.7 *** openafs/src/WINNT/install/Win9x/CellServDB:1.2.2.6 Fri Mar 9 23:52:52 2007 --- openafs/src/WINNT/install/Win9x/CellServDB Thu Jul 5 19:44:59 2007 *************** *** 1,4 **** ! >grand.central.org #GCO Public CellServDB 09 Mar 2007 18.92.0.108 #grand-opening.mit.edu 128.2.203.61 #penn.central.org 130.237.48.87 #andrew.e.kth.se --- 1,4 ---- ! >grand.central.org #GCO Public CellServDB 05 Jul 2007 18.92.0.108 #grand-opening.mit.edu 128.2.203.61 #penn.central.org 130.237.48.87 #andrew.e.kth.se *************** *** 18,23 **** --- 18,26 ---- 129.27.161.7 #faepafs1.tu-graz.ac.at 129.27.161.15 #faepafs2.tu-graz.ac.at 129.27.161.114 #faepafs3.tu-graz.ac.at + >sums.math.mcgill.ca #Society of Undergraduate Mathematics Students of McGill Universi + 132.216.24.122 #germain.sums.math.mcgill.ca + 132.216.24.125 #turing.sums.math.mcgill.ca >cern.ch #European Laboratory for Particle Physics, Geneva 137.138.128.148 #afsdb1.cern.ch 137.138.246.50 #afsdb3.cern.ch *************** *** 110,115 **** --- 113,120 ---- 141.35.2.180 #afs00.rz.uni-jena.de 141.35.2.181 #afs01.rz.uni-jena.de 141.35.2.182 #afs02.rz.uni-jena.de + >impetus.uni-koeln.de #Univ. of Cologne - Geophysics/Meteorology Inst. + 134.95.80.39 #forano.meteo.uni-koeln.de >meteo.uni-koeln.de #Univ. of Cologne - Inst. for Geophysics & Meteorology 134.95.144.22 #afs1.meteo.uni-koeln.de 134.95.144.24 #afs2.meteo.uni-koeln.de *************** *** 161,183 **** 128.2.40.134 #afs.chem.cmu.edu 128.2.40.140 #afs2.chem.cmu.edu >cs.cmu.edu #Carnegie Mellon University - School of Comp. Sci. ! 128.2.194.178 #cherry.srv.cs.cmu.edu ! 128.2.194.179 #pumpkin.srv.cs.cmu.edu ! 128.2.194.180 #strawberry.srv.cs.cmu.edu >ece.cmu.edu #Carnegie Mellon University - Elec. Comp. Eng. Dept. 128.2.129.7 #porok.ece.cmu.edu 128.2.129.8 #vicio.ece.cmu.edu 128.2.129.9 #e-xing.ece.cmu.edu >scotch.ece.cmu.edu #CMU ECE CALCM research group 128.2.134.82 #lagavulin.ece.cmu.edu ! >qatar.cmu.edu #Carnegie Mellon University - Qatar Campus Cell ! 204.194.25.7 #afs1.qatar.cmu.edu ! 204.194.25.8 #afs2.qatar.cmu.edu >sbp.ri.cmu.edu #Carnegie Mellon University - Sensor Based Planning Lab 128.2.179.12 #nihao.sbp.ri.cmu.edu 128.2.179.113 #youtheman.sbp.ri.cmu.edu ! >cnf.cornell.edu #Cornell Nanoscale Science and Technology Facility 128.253.198.9 #hole.cnf.cornell.edu >msc.cornell.edu #Cornell University Materials Science Center 128.84.231.242 #miranda.ccmr.cornell.edu 128.84.241.35 #co.ccmr.cornell.edu --- 166,189 ---- 128.2.40.134 #afs.chem.cmu.edu 128.2.40.140 #afs2.chem.cmu.edu >cs.cmu.edu #Carnegie Mellon University - School of Comp. Sci. ! 128.2.201.46 #strawberry.srv.cs.cmu.edu ! 128.2.201.47 #pumpkin.srv.cs.cmu.edu ! 128.2.201.48 #cherry.srv.cs.cmu.edu >ece.cmu.edu #Carnegie Mellon University - Elec. Comp. Eng. Dept. 128.2.129.7 #porok.ece.cmu.edu 128.2.129.8 #vicio.ece.cmu.edu 128.2.129.9 #e-xing.ece.cmu.edu >scotch.ece.cmu.edu #CMU ECE CALCM research group 128.2.134.82 #lagavulin.ece.cmu.edu ! >qatar.cmu.edu #Carnegie Mellon University - Qatar ! 86.36.46.6 #afs1.qatar.cmu.edu ! 86.36.46.7 #afs2.qatar.cmu.edu >sbp.ri.cmu.edu #Carnegie Mellon University - Sensor Based Planning Lab 128.2.179.12 #nihao.sbp.ri.cmu.edu 128.2.179.113 #youtheman.sbp.ri.cmu.edu ! >cnf.cornell.edu #CNF 128.253.198.9 #hole.cnf.cornell.edu + 128.253.198.27 #smoke.cnf.cornell.edu >msc.cornell.edu #Cornell University Materials Science Center 128.84.231.242 #miranda.ccmr.cornell.edu 128.84.241.35 #co.ccmr.cornell.edu *************** *** 285,290 **** --- 291,300 ---- 128.174.251.8 #alnitak.acm.uiuc.edu 128.174.251.9 #alnilam.acm.uiuc.edu 128.174.251.10 #mintaka.acm.uiuc.edu + >illigal.uiuc.edu #Illinois Genetic Algorithms Labaratory + 128.174.193.200 #ial.illigal.uiuc.edu + 128.174.193.201 #cac.illigal.uiuc.edu + 128.174.193.202 #gcs.illigal.uiuc.edu >ncsa.uiuc.edu #University of Illinois 141.142.3.5 #congo.ncsa.uiuc.edu 141.142.3.8 #nile.ncsa.uiuc.edu *************** *** 478,486 **** >slackers.net #The Slackers' Network 63.201.48.27 #alexandria.slackers.net >tproa.net #The People's Republic of Ames ! 209.234.76.70 #service-3.tproa.net ! 209.234.76.75 #service-4.tproa.net ! 209.234.76.76 #service-5.tproa.net >nikhef.nl #The Dutch National Institute for High Energy Physics 192.16.185.26 #afs1.nikhef.nl 192.16.185.27 #afs2.nikhef.nl --- 488,496 ---- >slackers.net #The Slackers' Network 63.201.48.27 #alexandria.slackers.net >tproa.net #The People's Republic of Ames ! 72.13.4.23 #service-3.tproa.net ! 72.13.4.24 #service-4.tproa.net ! 72.13.4.25 #service-5.tproa.net >nikhef.nl #The Dutch National Institute for High Energy Physics 192.16.185.26 #afs1.nikhef.nl 192.16.185.27 #afs2.nikhef.nl *************** *** 519,526 **** 130.237.24.104 #afs2.hallf.kth.se >isk.kth.se #Royal Institute of Technology, ISK 130.237.202.3 #afsdb1.isk.kth.se 130.237.209.9 #afsdb3.isk.kth.se - 130.237.209.39 #ezri.isk.kth.se >it.kth.se #Royal Institute of Technology, IT 130.237.212.15 #ptah.it.kth.se 130.237.212.16 #toth.it.kth.se --- 529,536 ---- 130.237.24.104 #afs2.hallf.kth.se >isk.kth.se #Royal Institute of Technology, ISK 130.237.202.3 #afsdb1.isk.kth.se + 130.237.209.5 #afsdb2.isk.kth.se 130.237.209.9 #afsdb3.isk.kth.se >it.kth.se #Royal Institute of Technology, IT 130.237.212.15 #ptah.it.kth.se 130.237.212.16 #toth.it.kth.se *************** *** 546,552 **** >stacken.kth.se #Stacken Computer Club 130.237.234.3 #milko.stacken.kth.se 130.237.234.43 #hot.stacken.kth.se ! 130.237.237.230 #fishburger.stacken.kth.se >syd.kth.se #Royal Institute of Technology, KTH-Syd 130.237.83.23 #afs.haninge.kth.se >physto.se #Physics department Stockholm University --- 556,562 ---- >stacken.kth.se #Stacken Computer Club 130.237.234.3 #milko.stacken.kth.se 130.237.234.43 #hot.stacken.kth.se ! 130.237.234.101 #fishburger.stacken.kth.se >syd.kth.se #Royal Institute of Technology, KTH-Syd 130.237.83.23 #afs.haninge.kth.se >physto.se #Physics department Stockholm University Index: openafs/src/WINNT/install/wix/CellServDB diff -c openafs/src/WINNT/install/wix/CellServDB:1.2.2.6 openafs/src/WINNT/install/wix/CellServDB:1.2.2.7 *** openafs/src/WINNT/install/wix/CellServDB:1.2.2.6 Fri Mar 9 23:52:52 2007 --- openafs/src/WINNT/install/wix/CellServDB Thu Jul 5 19:44:59 2007 *************** *** 1,4 **** ! >grand.central.org #GCO Public CellServDB 09 Mar 2007 18.92.0.108 #grand-opening.mit.edu 128.2.203.61 #penn.central.org 130.237.48.87 #andrew.e.kth.se --- 1,4 ---- ! >grand.central.org #GCO Public CellServDB 05 Jul 2007 18.92.0.108 #grand-opening.mit.edu 128.2.203.61 #penn.central.org 130.237.48.87 #andrew.e.kth.se *************** *** 18,23 **** --- 18,26 ---- 129.27.161.7 #faepafs1.tu-graz.ac.at 129.27.161.15 #faepafs2.tu-graz.ac.at 129.27.161.114 #faepafs3.tu-graz.ac.at + >sums.math.mcgill.ca #Society of Undergraduate Mathematics Students of McGill Universi + 132.216.24.122 #germain.sums.math.mcgill.ca + 132.216.24.125 #turing.sums.math.mcgill.ca >cern.ch #European Laboratory for Particle Physics, Geneva 137.138.128.148 #afsdb1.cern.ch 137.138.246.50 #afsdb3.cern.ch *************** *** 110,115 **** --- 113,120 ---- 141.35.2.180 #afs00.rz.uni-jena.de 141.35.2.181 #afs01.rz.uni-jena.de 141.35.2.182 #afs02.rz.uni-jena.de + >impetus.uni-koeln.de #Univ. of Cologne - Geophysics/Meteorology Inst. + 134.95.80.39 #forano.meteo.uni-koeln.de >meteo.uni-koeln.de #Univ. of Cologne - Inst. for Geophysics & Meteorology 134.95.144.22 #afs1.meteo.uni-koeln.de 134.95.144.24 #afs2.meteo.uni-koeln.de *************** *** 161,183 **** 128.2.40.134 #afs.chem.cmu.edu 128.2.40.140 #afs2.chem.cmu.edu >cs.cmu.edu #Carnegie Mellon University - School of Comp. Sci. ! 128.2.194.178 #cherry.srv.cs.cmu.edu ! 128.2.194.179 #pumpkin.srv.cs.cmu.edu ! 128.2.194.180 #strawberry.srv.cs.cmu.edu >ece.cmu.edu #Carnegie Mellon University - Elec. Comp. Eng. Dept. 128.2.129.7 #porok.ece.cmu.edu 128.2.129.8 #vicio.ece.cmu.edu 128.2.129.9 #e-xing.ece.cmu.edu >scotch.ece.cmu.edu #CMU ECE CALCM research group 128.2.134.82 #lagavulin.ece.cmu.edu ! >qatar.cmu.edu #Carnegie Mellon University - Qatar Campus Cell ! 204.194.25.7 #afs1.qatar.cmu.edu ! 204.194.25.8 #afs2.qatar.cmu.edu >sbp.ri.cmu.edu #Carnegie Mellon University - Sensor Based Planning Lab 128.2.179.12 #nihao.sbp.ri.cmu.edu 128.2.179.113 #youtheman.sbp.ri.cmu.edu ! >cnf.cornell.edu #Cornell Nanoscale Science and Technology Facility 128.253.198.9 #hole.cnf.cornell.edu >msc.cornell.edu #Cornell University Materials Science Center 128.84.231.242 #miranda.ccmr.cornell.edu 128.84.241.35 #co.ccmr.cornell.edu --- 166,189 ---- 128.2.40.134 #afs.chem.cmu.edu 128.2.40.140 #afs2.chem.cmu.edu >cs.cmu.edu #Carnegie Mellon University - School of Comp. Sci. ! 128.2.201.46 #strawberry.srv.cs.cmu.edu ! 128.2.201.47 #pumpkin.srv.cs.cmu.edu ! 128.2.201.48 #cherry.srv.cs.cmu.edu >ece.cmu.edu #Carnegie Mellon University - Elec. Comp. Eng. Dept. 128.2.129.7 #porok.ece.cmu.edu 128.2.129.8 #vicio.ece.cmu.edu 128.2.129.9 #e-xing.ece.cmu.edu >scotch.ece.cmu.edu #CMU ECE CALCM research group 128.2.134.82 #lagavulin.ece.cmu.edu ! >qatar.cmu.edu #Carnegie Mellon University - Qatar ! 86.36.46.6 #afs1.qatar.cmu.edu ! 86.36.46.7 #afs2.qatar.cmu.edu >sbp.ri.cmu.edu #Carnegie Mellon University - Sensor Based Planning Lab 128.2.179.12 #nihao.sbp.ri.cmu.edu 128.2.179.113 #youtheman.sbp.ri.cmu.edu ! >cnf.cornell.edu #CNF 128.253.198.9 #hole.cnf.cornell.edu + 128.253.198.27 #smoke.cnf.cornell.edu >msc.cornell.edu #Cornell University Materials Science Center 128.84.231.242 #miranda.ccmr.cornell.edu 128.84.241.35 #co.ccmr.cornell.edu *************** *** 285,290 **** --- 291,300 ---- 128.174.251.8 #alnitak.acm.uiuc.edu 128.174.251.9 #alnilam.acm.uiuc.edu 128.174.251.10 #mintaka.acm.uiuc.edu + >illigal.uiuc.edu #Illinois Genetic Algorithms Labaratory + 128.174.193.200 #ial.illigal.uiuc.edu + 128.174.193.201 #cac.illigal.uiuc.edu + 128.174.193.202 #gcs.illigal.uiuc.edu >ncsa.uiuc.edu #University of Illinois 141.142.3.5 #congo.ncsa.uiuc.edu 141.142.3.8 #nile.ncsa.uiuc.edu *************** *** 478,486 **** >slackers.net #The Slackers' Network 63.201.48.27 #alexandria.slackers.net >tproa.net #The People's Republic of Ames ! 209.234.76.70 #service-3.tproa.net ! 209.234.76.75 #service-4.tproa.net ! 209.234.76.76 #service-5.tproa.net >nikhef.nl #The Dutch National Institute for High Energy Physics 192.16.185.26 #afs1.nikhef.nl 192.16.185.27 #afs2.nikhef.nl --- 488,496 ---- >slackers.net #The Slackers' Network 63.201.48.27 #alexandria.slackers.net >tproa.net #The People's Republic of Ames ! 72.13.4.23 #service-3.tproa.net ! 72.13.4.24 #service-4.tproa.net ! 72.13.4.25 #service-5.tproa.net >nikhef.nl #The Dutch National Institute for High Energy Physics 192.16.185.26 #afs1.nikhef.nl 192.16.185.27 #afs2.nikhef.nl *************** *** 519,526 **** 130.237.24.104 #afs2.hallf.kth.se >isk.kth.se #Royal Institute of Technology, ISK 130.237.202.3 #afsdb1.isk.kth.se 130.237.209.9 #afsdb3.isk.kth.se - 130.237.209.39 #ezri.isk.kth.se >it.kth.se #Royal Institute of Technology, IT 130.237.212.15 #ptah.it.kth.se 130.237.212.16 #toth.it.kth.se --- 529,536 ---- 130.237.24.104 #afs2.hallf.kth.se >isk.kth.se #Royal Institute of Technology, ISK 130.237.202.3 #afsdb1.isk.kth.se + 130.237.209.5 #afsdb2.isk.kth.se 130.237.209.9 #afsdb3.isk.kth.se >it.kth.se #Royal Institute of Technology, IT 130.237.212.15 #ptah.it.kth.se 130.237.212.16 #toth.it.kth.se *************** *** 546,552 **** >stacken.kth.se #Stacken Computer Club 130.237.234.3 #milko.stacken.kth.se 130.237.234.43 #hot.stacken.kth.se ! 130.237.237.230 #fishburger.stacken.kth.se >syd.kth.se #Royal Institute of Technology, KTH-Syd 130.237.83.23 #afs.haninge.kth.se >physto.se #Physics department Stockholm University --- 556,562 ---- >stacken.kth.se #Stacken Computer Club 130.237.234.3 #milko.stacken.kth.se 130.237.234.43 #hot.stacken.kth.se ! 130.237.234.101 #fishburger.stacken.kth.se >syd.kth.se #Royal Institute of Technology, KTH-Syd 130.237.83.23 #afs.haninge.kth.se >physto.se #Physics department Stockholm University Index: openafs/src/WINNT/install/wix/files.wxi diff -c openafs/src/WINNT/install/wix/files.wxi:1.9.2.11 openafs/src/WINNT/install/wix/files.wxi:1.9.2.12 *** openafs/src/WINNT/install/wix/files.wxi:1.9.2.11 Tue Jul 18 12:10:22 2006 --- openafs/src/WINNT/install/wix/files.wxi Fri Apr 20 06:59:41 2007 *************** *** 686,692 **** ! --- 686,692 ---- ! Index: openafs/src/WINNT/win9xpanel/CAfs.cpp diff -c openafs/src/WINNT/win9xpanel/CAfs.cpp:1.2 openafs/src/WINNT/win9xpanel/CAfs.cpp:1.2.14.1 *** openafs/src/WINNT/win9xpanel/CAfs.cpp:1.2 Sun Aug 19 10:44:46 2001 --- openafs/src/WINNT/win9xpanel/CAfs.cpp Tue Apr 10 14:43:40 2007 *************** *** 353,359 **** code = krb_write_ticket_file (realm); if (!Silent) { if (code) ! com_err (rn, code, "writing Kerberos ticket file"); else { m_pParent->Log("Wrote ticket file to /tmp"); } --- 353,359 ---- code = krb_write_ticket_file (realm); if (!Silent) { if (code) ! afs_com_err (rn, code, "writing Kerberos ticket file"); else { m_pParent->Log("Wrote ticket file to /tmp"); } Index: openafs/src/WINNT/win9xpanel/CellServDB diff -c openafs/src/WINNT/win9xpanel/CellServDB:1.1.18.6 openafs/src/WINNT/win9xpanel/CellServDB:1.1.18.7 *** openafs/src/WINNT/win9xpanel/CellServDB:1.1.18.6 Fri Mar 9 23:52:52 2007 --- openafs/src/WINNT/win9xpanel/CellServDB Thu Jul 5 19:44:59 2007 *************** *** 1,4 **** ! >grand.central.org #GCO Public CellServDB 09 Mar 2007 18.92.0.108 #grand-opening.mit.edu 128.2.203.61 #penn.central.org 130.237.48.87 #andrew.e.kth.se --- 1,4 ---- ! >grand.central.org #GCO Public CellServDB 05 Jul 2007 18.92.0.108 #grand-opening.mit.edu 128.2.203.61 #penn.central.org 130.237.48.87 #andrew.e.kth.se *************** *** 18,23 **** --- 18,26 ---- 129.27.161.7 #faepafs1.tu-graz.ac.at 129.27.161.15 #faepafs2.tu-graz.ac.at 129.27.161.114 #faepafs3.tu-graz.ac.at + >sums.math.mcgill.ca #Society of Undergraduate Mathematics Students of McGill Universi + 132.216.24.122 #germain.sums.math.mcgill.ca + 132.216.24.125 #turing.sums.math.mcgill.ca >cern.ch #European Laboratory for Particle Physics, Geneva 137.138.128.148 #afsdb1.cern.ch 137.138.246.50 #afsdb3.cern.ch *************** *** 110,115 **** --- 113,120 ---- 141.35.2.180 #afs00.rz.uni-jena.de 141.35.2.181 #afs01.rz.uni-jena.de 141.35.2.182 #afs02.rz.uni-jena.de + >impetus.uni-koeln.de #Univ. of Cologne - Geophysics/Meteorology Inst. + 134.95.80.39 #forano.meteo.uni-koeln.de >meteo.uni-koeln.de #Univ. of Cologne - Inst. for Geophysics & Meteorology 134.95.144.22 #afs1.meteo.uni-koeln.de 134.95.144.24 #afs2.meteo.uni-koeln.de *************** *** 161,183 **** 128.2.40.134 #afs.chem.cmu.edu 128.2.40.140 #afs2.chem.cmu.edu >cs.cmu.edu #Carnegie Mellon University - School of Comp. Sci. ! 128.2.194.178 #cherry.srv.cs.cmu.edu ! 128.2.194.179 #pumpkin.srv.cs.cmu.edu ! 128.2.194.180 #strawberry.srv.cs.cmu.edu >ece.cmu.edu #Carnegie Mellon University - Elec. Comp. Eng. Dept. 128.2.129.7 #porok.ece.cmu.edu 128.2.129.8 #vicio.ece.cmu.edu 128.2.129.9 #e-xing.ece.cmu.edu >scotch.ece.cmu.edu #CMU ECE CALCM research group 128.2.134.82 #lagavulin.ece.cmu.edu ! >qatar.cmu.edu #Carnegie Mellon University - Qatar Campus Cell ! 204.194.25.7 #afs1.qatar.cmu.edu ! 204.194.25.8 #afs2.qatar.cmu.edu >sbp.ri.cmu.edu #Carnegie Mellon University - Sensor Based Planning Lab 128.2.179.12 #nihao.sbp.ri.cmu.edu 128.2.179.113 #youtheman.sbp.ri.cmu.edu ! >cnf.cornell.edu #Cornell Nanoscale Science and Technology Facility 128.253.198.9 #hole.cnf.cornell.edu >msc.cornell.edu #Cornell University Materials Science Center 128.84.231.242 #miranda.ccmr.cornell.edu 128.84.241.35 #co.ccmr.cornell.edu --- 166,189 ---- 128.2.40.134 #afs.chem.cmu.edu 128.2.40.140 #afs2.chem.cmu.edu >cs.cmu.edu #Carnegie Mellon University - School of Comp. Sci. ! 128.2.201.46 #strawberry.srv.cs.cmu.edu ! 128.2.201.47 #pumpkin.srv.cs.cmu.edu ! 128.2.201.48 #cherry.srv.cs.cmu.edu >ece.cmu.edu #Carnegie Mellon University - Elec. Comp. Eng. Dept. 128.2.129.7 #porok.ece.cmu.edu 128.2.129.8 #vicio.ece.cmu.edu 128.2.129.9 #e-xing.ece.cmu.edu >scotch.ece.cmu.edu #CMU ECE CALCM research group 128.2.134.82 #lagavulin.ece.cmu.edu ! >qatar.cmu.edu #Carnegie Mellon University - Qatar ! 86.36.46.6 #afs1.qatar.cmu.edu ! 86.36.46.7 #afs2.qatar.cmu.edu >sbp.ri.cmu.edu #Carnegie Mellon University - Sensor Based Planning Lab 128.2.179.12 #nihao.sbp.ri.cmu.edu 128.2.179.113 #youtheman.sbp.ri.cmu.edu ! >cnf.cornell.edu #CNF 128.253.198.9 #hole.cnf.cornell.edu + 128.253.198.27 #smoke.cnf.cornell.edu >msc.cornell.edu #Cornell University Materials Science Center 128.84.231.242 #miranda.ccmr.cornell.edu 128.84.241.35 #co.ccmr.cornell.edu *************** *** 285,290 **** --- 291,300 ---- 128.174.251.8 #alnitak.acm.uiuc.edu 128.174.251.9 #alnilam.acm.uiuc.edu 128.174.251.10 #mintaka.acm.uiuc.edu + >illigal.uiuc.edu #Illinois Genetic Algorithms Labaratory + 128.174.193.200 #ial.illigal.uiuc.edu + 128.174.193.201 #cac.illigal.uiuc.edu + 128.174.193.202 #gcs.illigal.uiuc.edu >ncsa.uiuc.edu #University of Illinois 141.142.3.5 #congo.ncsa.uiuc.edu 141.142.3.8 #nile.ncsa.uiuc.edu *************** *** 478,486 **** >slackers.net #The Slackers' Network 63.201.48.27 #alexandria.slackers.net >tproa.net #The People's Republic of Ames ! 209.234.76.70 #service-3.tproa.net ! 209.234.76.75 #service-4.tproa.net ! 209.234.76.76 #service-5.tproa.net >nikhef.nl #The Dutch National Institute for High Energy Physics 192.16.185.26 #afs1.nikhef.nl 192.16.185.27 #afs2.nikhef.nl --- 488,496 ---- >slackers.net #The Slackers' Network 63.201.48.27 #alexandria.slackers.net >tproa.net #The People's Republic of Ames ! 72.13.4.23 #service-3.tproa.net ! 72.13.4.24 #service-4.tproa.net ! 72.13.4.25 #service-5.tproa.net >nikhef.nl #The Dutch National Institute for High Energy Physics 192.16.185.26 #afs1.nikhef.nl 192.16.185.27 #afs2.nikhef.nl *************** *** 519,526 **** 130.237.24.104 #afs2.hallf.kth.se >isk.kth.se #Royal Institute of Technology, ISK 130.237.202.3 #afsdb1.isk.kth.se 130.237.209.9 #afsdb3.isk.kth.se - 130.237.209.39 #ezri.isk.kth.se >it.kth.se #Royal Institute of Technology, IT 130.237.212.15 #ptah.it.kth.se 130.237.212.16 #toth.it.kth.se --- 529,536 ---- 130.237.24.104 #afs2.hallf.kth.se >isk.kth.se #Royal Institute of Technology, ISK 130.237.202.3 #afsdb1.isk.kth.se + 130.237.209.5 #afsdb2.isk.kth.se 130.237.209.9 #afsdb3.isk.kth.se >it.kth.se #Royal Institute of Technology, IT 130.237.212.15 #ptah.it.kth.se 130.237.212.16 #toth.it.kth.se *************** *** 546,552 **** >stacken.kth.se #Stacken Computer Club 130.237.234.3 #milko.stacken.kth.se 130.237.234.43 #hot.stacken.kth.se ! 130.237.237.230 #fishburger.stacken.kth.se >syd.kth.se #Royal Institute of Technology, KTH-Syd 130.237.83.23 #afs.haninge.kth.se >physto.se #Physics department Stockholm University --- 556,562 ---- >stacken.kth.se #Stacken Computer Club 130.237.234.3 #milko.stacken.kth.se 130.237.234.43 #hot.stacken.kth.se ! 130.237.234.101 #fishburger.stacken.kth.se >syd.kth.se #Royal Institute of Technology, KTH-Syd 130.237.83.23 #afs.haninge.kth.se >physto.se #Physics department Stockholm University Index: openafs/src/afs/Makefile.in diff -c openafs/src/afs/Makefile.in:1.19.2.1 openafs/src/afs/Makefile.in:1.19.2.2 *** openafs/src/afs/Makefile.in:1.19.2.1 Fri Mar 25 19:45:34 2005 --- openafs/src/afs/Makefile.in Mon Oct 15 13:33:49 2007 *************** *** 137,143 **** ${INSTALL} longc_procs.h ${DEST}/include/afs ;; \ esac case ${SYS_NAME} in \ ! next_mach30 | vax_ul43 | *_darwin* | i386_fbsd* ) \ echo skipping afszcm.cat install for ${SYS_NAME} ;; \ * ) \ ${INSTALL} afszcm.cat ${DEST}/root.client/usr/vice/etc/C ;; \ --- 137,143 ---- ${INSTALL} longc_procs.h ${DEST}/include/afs ;; \ esac case ${SYS_NAME} in \ ! i386_fbsd* ) \ echo skipping afszcm.cat install for ${SYS_NAME} ;; \ * ) \ ${INSTALL} afszcm.cat ${DEST}/root.client/usr/vice/etc/C ;; \ Index: openafs/src/afs/afs.h diff -c openafs/src/afs/afs.h:1.48.2.29 openafs/src/afs/afs.h:1.48.2.30 *** openafs/src/afs/afs.h:1.48.2.29 Thu Nov 9 19:08:52 2006 --- openafs/src/afs/afs.h Wed Oct 10 12:57:54 2007 *************** *** 268,273 **** --- 268,276 ---- extern afs_int32 afs_gcpags; extern afs_int32 afs_gcpags_procsize; extern afs_int32 afs_bkvolpref; + extern char afs_cachebasedir[1024]; + extern afs_int32 afs_numcachefiles; + extern afs_int32 afs_numfilesperdir; struct unixuser { struct unixuser *next; /* next hash pointer */ Index: openafs/src/afs/afs_call.c diff -c openafs/src/afs/afs_call.c:1.74.2.17 openafs/src/afs/afs_call.c:1.74.2.25 *** openafs/src/afs/afs_call.c:1.74.2.17 Thu Feb 8 20:07:54 2007 --- openafs/src/afs/afs_call.c Tue Oct 16 23:51:44 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_call.c,v 1.74.2.17 2007/02/09 01:07:54 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.25 2007/10/17 03:51:44 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 29,35 **** #ifdef AFS_LINUX22_ENV #include "h/smp_lock.h" #endif ! #if defined(AFS_SUN5_ENV) || defined(AFS_AIX_ENV) || defined(AFS_SGI_ENV) || defined(AFS_HPUX_ENV) #define AFS_MINBUFFERS 100 --- 29,38 ---- #ifdef AFS_LINUX22_ENV #include "h/smp_lock.h" #endif ! #ifdef AFS_SUN510_ENV ! #include "h/ksynch.h" ! #include "h/sunddi.h" ! #endif #if defined(AFS_SUN5_ENV) || defined(AFS_AIX_ENV) || defined(AFS_SGI_ENV) || defined(AFS_HPUX_ENV) #define AFS_MINBUFFERS 100 *************** *** 84,89 **** --- 87,97 ---- simple_lock_data afs_global_lock; #endif + #ifdef AFS_SUN510_ENV + ddi_taskq_t *afs_taskq; + krwlock_t afsifinfo_lock; + #endif + afs_int32 afs_initState = 0; afs_int32 afs_termState = 0; afs_int32 afs_setTime = 0; *************** *** 96,101 **** --- 104,112 ---- extern struct interfaceAddr afs_cb_interface; static int afs_RX_Running = 0; static int afs_InitSetup_done = 0; + afs_int32 afs_numcachefiles = -1; + afs_int32 afs_numfilesperdir = -1; + char afs_cachebasedir[1024]; afs_int32 afs_rx_deadtime = AFS_RXDEADTIME; afs_int32 afs_rx_harddead = AFS_HARDDEADTIME; *************** *** 121,126 **** --- 132,147 ---- if (afs_InitSetup_done) return EAGAIN; + #ifdef AFS_SUN510_ENV + /* Initialize a RW lock for the ifinfo global array */ + rw_init(&afsifinfo_lock, NULL, RW_DRIVER, NULL); + + /* Create a taskq */ + afs_taskq = ddi_taskq_create(NULL, "afs_taskq", 2, TASKQ_DEFAULTPRI, 0); + + osi_StartNetIfPoller(); + #endif + #ifndef AFS_NOSTATS /* * Set up all the AFS statistics variables. This should be done *************** *** 484,489 **** --- 505,522 ---- } #endif + static void + wait_for_cachedefs(void) { + #ifdef AFS_CACHE_VNODE_PATH + if (cacheDiskType != AFS_FCACHE_TYPE_MEM) + while ((afs_numcachefiles < 1) || (afs_numfilesperdir < 1) || + (afs_cachebasedir[0] != '/')) { + printf("afs: waiting for cache parameter definitions\n"); + afs_osi_Sleep(&afs_initState); + } + #endif + } + /* leaving as is, probably will barf if we add prototypes here since it's likely being called with partial list */ int *************** *** 498,523 **** #endif /* AFS_SGI61_ENV */ AFS_STATCNT(afs_syscall_call); #ifdef AFS_SUN5_ENV ! if (!afs_suser(CRED()) && (parm != AFSOP_GETMTU) ! && (parm != AFSOP_GETMASK)) { ! /* only root can run this code */ ! return (EACCES); #else ! if (!afs_suser(NULL) && (parm != AFSOP_GETMTU) ! && (parm != AFSOP_GETMASK)) { /* only root can run this code */ #if defined(KERNEL_HAVE_UERROR) ! setuerror(EACCES); ! return (EACCES); #else ! #if defined(AFS_OSF_ENV) ! return EACCES; ! #else /* AFS_OSF_ENV */ ! return EPERM; ! #endif /* AFS_OSF_ENV */ #endif #endif } AFS_GLOCK(); #ifdef AFS_DARWIN80_ENV --- 531,557 ---- #endif /* AFS_SGI61_ENV */ AFS_STATCNT(afs_syscall_call); + if ( #ifdef AFS_SUN5_ENV ! !afs_suser(CRED()) #else ! !afs_suser(NULL) ! #endif ! && (parm != AFSOP_GETMTU) && (parm != AFSOP_GETMASK)) { /* only root can run this code */ + #if defined(AFS_OSF_ENV) || defined(AFS_SUN5_ENV) || defined(KERNEL_HAVE_UERROR) #if defined(KERNEL_HAVE_UERROR) ! setuerror(EACCES); ! #endif ! code = EACCES; #else ! code = EPERM; #endif + AFS_GLOCK(); + #ifdef AFS_DARWIN80_ENV + put_vfs_context(); #endif + goto out; } AFS_GLOCK(); #ifdef AFS_DARWIN80_ENV *************** *** 792,798 **** afs_osi_Sleep(&afs_initState); #ifdef AFS_DARWIN80_ENV ! get_vfs_context(); #endif /* do it by inode */ #ifdef AFS_SGI62_ENV --- 826,832 ---- afs_osi_Sleep(&afs_initState); #ifdef AFS_DARWIN80_ENV ! get_vfs_context(); #endif /* do it by inode */ #ifdef AFS_SGI62_ENV *************** *** 800,807 **** #endif code = afs_InitCacheFile(NULL, ainode); #ifdef AFS_DARWIN80_ENV ! put_vfs_context(); #endif } else if (parm == AFSOP_ROOTVOLUME) { /* wait for basic init */ while (afs_initState < AFSOP_START_BKG) --- 834,847 ---- #endif code = afs_InitCacheFile(NULL, ainode); #ifdef AFS_DARWIN80_ENV ! put_vfs_context(); #endif + } else if (parm == AFSOP_CACHEDIRS) { + afs_numfilesperdir = parm2; + afs_osi_Wakeup(&afs_initState); + } else if (parm == AFSOP_CACHEFILES) { + afs_numcachefiles = parm2; + afs_osi_Wakeup(&afs_initState); } else if (parm == AFSOP_ROOTVOLUME) { /* wait for basic init */ while (afs_initState < AFSOP_START_BKG) *************** *** 815,821 **** code = 0; } else if (parm == AFSOP_CACHEFILE || parm == AFSOP_CACHEINFO || parm == AFSOP_VOLUMEINFO || parm == AFSOP_AFSLOG ! || parm == AFSOP_CELLINFO) { char *tbuffer = osi_AllocSmallSpace(AFS_SMALLOCSIZ); code = 0; --- 855,861 ---- code = 0; } else if (parm == AFSOP_CACHEFILE || parm == AFSOP_CACHEINFO || parm == AFSOP_VOLUMEINFO || parm == AFSOP_AFSLOG ! || parm == AFSOP_CELLINFO || parm == AFSOP_CACHEBASEDIR) { char *tbuffer = osi_AllocSmallSpace(AFS_SMALLOCSIZ); code = 0; *************** *** 829,850 **** tbuffer[AFS_SMALLOCSIZ - 1] = '\0'; /* null-terminate the name */ /* We have the cache dir copied in. Call the cache init routine */ #ifdef AFS_DARWIN80_ENV ! get_vfs_context(); #endif ! if (parm == AFSOP_CACHEFILE) code = afs_InitCacheFile(tbuffer, 0); ! else if (parm == AFSOP_CACHEINFO) code = afs_InitCacheInfo(tbuffer); ! else if (parm == AFSOP_VOLUMEINFO) code = afs_InitVolumeInfo(tbuffer); ! else if (parm == AFSOP_CELLINFO) code = afs_InitCellInfo(tbuffer); #ifdef AFS_DARWIN80_ENV ! put_vfs_context(); #endif } osi_FreeSmallSpace(tbuffer); } else if (parm == AFSOP_GO) { /* the generic initialization calls come here. One parameter: should we do the * set-time operation on this workstation */ if (afs_Go_Done) --- 869,919 ---- tbuffer[AFS_SMALLOCSIZ - 1] = '\0'; /* null-terminate the name */ /* We have the cache dir copied in. Call the cache init routine */ #ifdef AFS_DARWIN80_ENV ! get_vfs_context(); #endif ! if (parm == AFSOP_CACHEBASEDIR) { ! strncpy(afs_cachebasedir, tbuffer, 1024); ! afs_cachebasedir[1023] = '\0'; ! afs_osi_Wakeup(&afs_initState); ! } else if (parm == AFSOP_CACHEFILE) { ! wait_for_cachedefs(); code = afs_InitCacheFile(tbuffer, 0); ! } else if (parm == AFSOP_CACHEINFO) { ! wait_for_cachedefs(); code = afs_InitCacheInfo(tbuffer); ! } else if (parm == AFSOP_VOLUMEINFO) { ! wait_for_cachedefs(); code = afs_InitVolumeInfo(tbuffer); ! } else if (parm == AFSOP_CELLINFO) { ! wait_for_cachedefs(); code = afs_InitCellInfo(tbuffer); + } #ifdef AFS_DARWIN80_ENV ! put_vfs_context(); #endif } osi_FreeSmallSpace(tbuffer); } else if (parm == AFSOP_GO) { + #ifdef AFS_CACHE_VNODE_PATH + if (cacheDiskType != AFS_FCACHE_TYPE_MEM) { + afs_int32 dummy; + + wait_for_cachedefs(); + + #ifdef AFS_DARWIN80_ENV + get_vfs_context(); + #endif + if ((afs_numcachefiles > 0) && (afs_numfilesperdir > 0) && + (afs_cachebasedir[0] == '/')) { + for (dummy = 0; dummy < afs_numcachefiles; dummy++) { + code = afs_InitCacheFile(NULL, dummy); + } + } + #ifdef AFS_DARWIN80_ENV + put_vfs_context(); + #endif + } + #endif /* the generic initialization calls come here. One parameter: should we do the * set-time operation on this workstation */ if (afs_Go_Done) *************** *** 858,863 **** --- 927,933 ---- #if (!defined(AFS_NONFSTRANS)) || defined(AFS_AIX_IAUTH_ENV) afs_nfsclient_init(); #endif + afs_uuid_create(&afs_cb_interface.uuid); printf("found %d non-empty cache files (%d%%).\n", afs_stats_cmperf.cacheFilesReused, (100 * afs_stats_cmperf.cacheFilesReused) / *************** *** 866,871 **** --- 936,943 ---- } else if (parm == AFSOP_ADVISEADDR) { /* pass in the host address to the rx package */ int rxbind = 0; + int refresh = 0; + afs_int32 count = parm2; afs_int32 *buffer = afs_osi_Alloc(sizeof(afs_int32) * AFS_MAX_INTERFACE_ADDR); *************** *** 875,880 **** --- 947,960 ---- afs_osi_Alloc(sizeof(afs_int32) * AFS_MAX_INTERFACE_ADDR); int i; + /* This is a refresh */ + if (count & 0x40000000) { + count &= ~0x40000000; + /* Can't bind after we start. Fix? */ + count &= ~0x80000000; + refresh = 1; + } + /* Bind, but only if there's only one address configured */ if ( count & 0x80000000) { count &= ~0x80000000; *************** *** 914,929 **** afs_cb_interface.mtu[i] = (parm5 ? mtubuffer[i] : htonl(1500)); #endif } - afs_uuid_create(&afs_cb_interface.uuid); rxi_setaddr(buffer[0]); ! if (rxbind) ! rx_bindhost = buffer[0]; ! else ! rx_bindhost = htonl(INADDR_ANY); afs_osi_Free(buffer, sizeof(afs_int32) * AFS_MAX_INTERFACE_ADDR); afs_osi_Free(maskbuffer, sizeof(afs_int32) * AFS_MAX_INTERFACE_ADDR); afs_osi_Free(mtubuffer, sizeof(afs_int32) * AFS_MAX_INTERFACE_ADDR); } #ifdef AFS_SGI53_ENV else if (parm == AFSOP_NFSSTATICADDR) { --- 994,1015 ---- afs_cb_interface.mtu[i] = (parm5 ? mtubuffer[i] : htonl(1500)); #endif } rxi_setaddr(buffer[0]); ! if (!refresh) { ! if (rxbind) ! rx_bindhost = buffer[0]; ! else ! rx_bindhost = htonl(INADDR_ANY); ! } afs_osi_Free(buffer, sizeof(afs_int32) * AFS_MAX_INTERFACE_ADDR); afs_osi_Free(maskbuffer, sizeof(afs_int32) * AFS_MAX_INTERFACE_ADDR); afs_osi_Free(mtubuffer, sizeof(afs_int32) * AFS_MAX_INTERFACE_ADDR); + + if (refresh) { + afs_CheckServers(1, NULL); /* check down servers */ + afs_CheckServers(0, NULL); /* check down servers */ + } } #ifdef AFS_SGI53_ENV else if (parm == AFSOP_NFSSTATICADDR) { *************** *** 1072,1080 **** code = EINVAL; out: - #ifdef AFS_DARWIN80_ENV /* to balance the put in afs3_syscall() */ - get_vfs_context(); - #endif AFS_GUNLOCK(); #ifdef AFS_LINUX20_ENV return -code; --- 1158,1163 ---- *************** *** 1658,1664 **** } #if defined(AFS_DARWIN80_ENV) ! put_vfs_context(); #endif #ifdef AFS_LINUX20_ENV code = -code; --- 1741,1748 ---- } #if defined(AFS_DARWIN80_ENV) ! if (uap->syscall != AFSCALL_CALL) ! put_vfs_context(); #endif #ifdef AFS_LINUX20_ENV code = -code; Index: openafs/src/afs/afs_daemons.c diff -c openafs/src/afs/afs_daemons.c:1.28.2.13 openafs/src/afs/afs_daemons.c:1.28.2.14 *** openafs/src/afs/afs_daemons.c:1.28.2.13 Mon Feb 13 13:31:13 2006 --- openafs/src/afs/afs_daemons.c Mon Oct 22 20:03:01 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_daemons.c,v 1.28.2.13 2006/02/13 18:31:13 shadow Exp $"); #ifdef AFS_AIX51_ENV #define __FULL_PROTO --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_daemons.c,v 1.28.2.14 2007/10/23 00:03:01 shadow Exp $"); #ifdef AFS_AIX51_ENV #define __FULL_PROTO *************** *** 49,55 **** #ifdef DEFAULT_PROBE_INTERVAL afs_int32 PROBE_INTERVAL = DEFAULT_PROBE_INTERVAL; /* overridding during compile */ #else ! afs_int32 PROBE_INTERVAL = 180; /* default to 3 min */ #endif #define PROBE_WAIT() (1000 * (PROBE_INTERVAL - ((afs_random() & 0x7fffffff) \ --- 49,55 ---- #ifdef DEFAULT_PROBE_INTERVAL afs_int32 PROBE_INTERVAL = DEFAULT_PROBE_INTERVAL; /* overridding during compile */ #else ! afs_int32 PROBE_INTERVAL = 30; /* default to 3 min */ #endif #define PROBE_WAIT() (1000 * (PROBE_INTERVAL - ((afs_random() & 0x7fffffff) \ Index: openafs/src/afs/afs_dcache.c diff -c openafs/src/afs/afs_dcache.c:1.42.2.20 openafs/src/afs/afs_dcache.c:1.42.2.22 *** openafs/src/afs/afs_dcache.c:1.42.2.20 Thu Nov 9 19:16:29 2006 --- openafs/src/afs/afs_dcache.c Mon Aug 20 13:53:15 2007 *************** *** 14,20 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_dcache.c,v 1.42.2.20 2006/11/10 00:16:29 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.22 2007/08/20 17:53:15 shadow Exp $"); #include "afs/sysincludes.h" /*Standard vendor system headers */ #include "afsincludes.h" /*AFS-based standard headers */ *************** *** 1201,1214 **** } index = afs_dcnextTbl[index]; } - MReleaseWriteLock(&afs_xdcache); if (index != NULLIDX) { hset(afs_indexTimes[tdc->index], afs_indexCounter); hadd32(afs_indexCounter, 1); return tdc; ! } else ! return NULL; ! } /*afs_FindDCache */ --- 1201,1214 ---- } index = afs_dcnextTbl[index]; } if (index != NULLIDX) { hset(afs_indexTimes[tdc->index], afs_indexCounter); hadd32(afs_indexCounter, 1); + MReleaseWriteLock(&afs_xdcache); return tdc; ! } ! MReleaseWriteLock(&afs_xdcache); ! return NULL; } /*afs_FindDCache */ *************** *** 2382,2398 **** } ReleaseWriteLock(&tdc->lock); afs_PutDCache(tdc); ! ObtainWriteLock(&afs_xcbhash, 454); ! afs_DequeueCallback(avc); ! avc->states &= ~(CStatd | CUnique); ! ReleaseWriteLock(&afs_xcbhash); ! if (avc->fid.Fid.Vnode & 1 || (vType(avc) == VDIR)) ! osi_dnlc_purgedp(avc); ! /* ! * Locks held: ! * avc->lock(W); assert(!setLocks || slowPass) ! */ ! osi_Assert(!setLocks || slowPass); tdc = NULL; goto done; } --- 2382,2400 ---- } ReleaseWriteLock(&tdc->lock); afs_PutDCache(tdc); ! if (!afs_IsDynroot(avc)) { ! ObtainWriteLock(&afs_xcbhash, 454); ! afs_DequeueCallback(avc); ! avc->states &= ~(CStatd | CUnique); ! ReleaseWriteLock(&afs_xcbhash); ! if (avc->fid.Fid.Vnode & 1 || (vType(avc) == VDIR)) ! osi_dnlc_purgedp(avc); ! /* ! * Locks held: ! * avc->lock(W); assert(!setLocks || slowPass) ! */ ! osi_Assert(!setLocks || slowPass); ! } tdc = NULL; goto done; } Index: openafs/src/afs/afs_init.c diff -c openafs/src/afs/afs_init.c:1.28.2.5 openafs/src/afs/afs_init.c:1.28.2.7 *** openafs/src/afs/afs_init.c:1.28.2.5 Wed Oct 5 01:58:27 2005 --- openafs/src/afs/afs_init.c Wed Oct 10 13:43:35 2007 *************** *** 17,23 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_init.c,v 1.28.2.5 2005/10/05 05:58:27 shadow Exp $"); #include "afs/stds.h" #include "afs/sysincludes.h" /* Standard vendor system headers */ --- 17,23 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_init.c,v 1.28.2.7 2007/10/10 17:43:35 shadow Exp $"); #include "afs/stds.h" #include "afs/sysincludes.h" /* Standard vendor system headers */ *************** *** 244,251 **** --- 244,255 ---- ino_t inode; int code; + #ifdef AFS_CACHE_VNODE_PATH + return afs_cellname_init(AFS_CACHE_CELLS_INODE, code); + #else code = LookupInodeByPath(afile, &inode, NULL); return afs_cellname_init(inode, code); + #endif } /* *************** *** 286,291 **** --- 290,297 ---- * it in the cache... */ code = LookupInodeByPath(afile, &volumeInode, &volumeVnode); + #elif defined(AFS_CACHE_VNODE_PATH) + volumeInode = AFS_CACHE_VOLUME_INODE; #else code = LookupInodeByPath(afile, &volumeInode, NULL); #endif *************** *** 416,426 **** #if defined(AFS_SGI62_ENV) || defined(AFS_HAVE_VXFS) || defined(AFS_DARWIN_ENV) afs_InitDualFSCacheOps(filevp); #endif ! cacheInode = afs_vnodeToInumber(filevp); ! cacheDev.dev = afs_vnodeToDev(filevp); #ifndef AFS_DARWIN80_ENV afs_cacheVfsp = filevp->v_vfsp; #endif #endif /* AFS_LINUX20_ENV */ AFS_RELE(filevp); #endif /* AFS_LINUX22_ENV */ --- 422,436 ---- #if defined(AFS_SGI62_ENV) || defined(AFS_HAVE_VXFS) || defined(AFS_DARWIN_ENV) afs_InitDualFSCacheOps(filevp); #endif ! #ifndef AFS_CACHE_VNODE_PATH #ifndef AFS_DARWIN80_ENV afs_cacheVfsp = filevp->v_vfsp; #endif + cacheInode = afs_vnodeToInumber(filevp); + #else + cacheInode = AFS_CACHE_ITEMS_INODE; + #endif + cacheDev.dev = afs_vnodeToDev(filevp); #endif /* AFS_LINUX20_ENV */ AFS_RELE(filevp); #endif /* AFS_LINUX22_ENV */ Index: openafs/src/afs/afs_memcache.c diff -c openafs/src/afs/afs_memcache.c:1.15.2.5 openafs/src/afs/afs_memcache.c:1.15.2.6 *** openafs/src/afs/afs_memcache.c:1.15.2.5 Wed Oct 5 01:58:27 2005 --- openafs/src/afs/afs_memcache.c Sat Jun 23 11:31:11 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_memcache.c,v 1.15.2.5 2005/10/05 05:58:27 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #ifndef AFS_LINUX22_ENV --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_memcache.c,v 1.15.2.6 2007/06/23 15:31:11 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #ifndef AFS_LINUX22_ENV *************** *** 247,252 **** --- 247,259 ---- char *oldData = mceP->data; mceP->data = afs_osi_Alloc(size + offset); + if (mceP->data == NULL) { /* no available memory */ + mceP->data = oldData; /* revert back change that was made */ + MReleaseWriteLock(&mceP->afs_memLock); + afs_warn("afs: afs_MemWriteBlk mem alloc failure (%d bytes)\n", + size + offset); + return -ENOMEM; + } /* may overlap, but this is OK */ AFS_GUNLOCK(); *************** *** 285,290 **** --- 292,304 ---- char *oldData = mceP->data; mceP->data = afs_osi_Alloc(AFS_UIO_RESID(uioP) + AFS_UIO_OFFSET(uioP)); + if (mceP->data == NULL) { /* no available memory */ + mceP->data = oldData; /* revert back change that was made */ + MReleaseWriteLock(&mceP->afs_memLock); + afs_warn("afs: afs_MemWriteBlk mem alloc failure (%d bytes)\n", + AFS_UIO_RESID(uioP) + AFS_UIO_OFFSET(uioP)); + return -ENOMEM; + } AFS_GUNLOCK(); memcpy(mceP->data, oldData, mceP->size); *************** *** 314,322 **** MObtainWriteLock(&mceP->afs_memLock, 313); /* old directory entry; g.c. */ if (size == 0 && mceP->dataSize > memCacheBlkSize) { ! afs_osi_Free(mceP->data, mceP->dataSize); mceP->data = afs_osi_Alloc(memCacheBlkSize); ! mceP->dataSize = memCacheBlkSize; } if (size < mceP->size) --- 328,344 ---- MObtainWriteLock(&mceP->afs_memLock, 313); /* old directory entry; g.c. */ if (size == 0 && mceP->dataSize > memCacheBlkSize) { ! char *oldData = mceP->data; mceP->data = afs_osi_Alloc(memCacheBlkSize); ! if (mceP->data == NULL) { /* no available memory */ ! mceP->data = oldData; ! MReleaseWriteLock(&mceP->afs_memLock); ! afs_warn("afs: afs_MemWriteBlk mem alloc failure (%d bytes)\n", ! memCacheBlkSize); ! } else { ! afs_osi_Free(oldData, mceP->dataSize); ! mceP->dataSize = memCacheBlkSize; ! } } if (size < mceP->size) Index: openafs/src/afs/afs_nfsclnt.c diff -c openafs/src/afs/afs_nfsclnt.c:1.12.2.2 openafs/src/afs/afs_nfsclnt.c:1.12.2.4 *** openafs/src/afs/afs_nfsclnt.c:1.12.2.2 Wed Dec 20 15:09:06 2006 --- openafs/src/afs/afs_nfsclnt.c Tue Oct 16 18:03:45 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_nfsclnt.c,v 1.12.2.2 2006/12/20 20:09:06 shadow Exp $"); #if !defined(AFS_NONFSTRANS) || defined(AFS_AIX_IAUTH_ENV) #include "afs/sysincludes.h" /* Standard vendor system headers */ --- 11,17 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_nfsclnt.c,v 1.12.2.4 2007/10/16 22:03:45 shadow Exp $"); #if !defined(AFS_NONFSTRANS) || defined(AFS_AIX_IAUTH_ENV) #include "afs/sysincludes.h" /* Standard vendor system headers */ *************** *** 314,324 **** #endif AFS_STATCNT(afs_nfsclient_sysname); if (inname) { - if (np->sysname) { for(count=0; count < np->sysnamecount;++count) { afs_osi_Free(np->sysname[count], MAXSYSNAME); } - } for(count=0; count < *num;++count) { np->sysname[count]= afs_osi_Alloc(MAXSYSNAME); } --- 314,323 ---- #endif AFS_STATCNT(afs_nfsclient_sysname); if (inname) { for(count=0; count < np->sysnamecount;++count) { afs_osi_Free(np->sysname[count], MAXSYSNAME); + np->sysname[count] = NULL; } for(count=0; count < *num;++count) { np->sysname[count]= afs_osi_Alloc(MAXSYSNAME); } *************** *** 329,339 **** cp += t+1; } np->sysnamecount = *num; - } else if (!np->sysname) { - return ENODEV; /* XXX */ } *outname = np->sysname; *num = np->sysnamecount; return 0; } --- 328,338 ---- cp += t+1; } np->sysnamecount = *num; } *outname = np->sysname; *num = np->sysnamecount; + if (!np->sysname[0]) + return ENODEV; /* XXX */ return 0; } *************** *** 346,351 **** --- 345,351 ---- { register struct nfsclientpag *np, **tnp, *nnp; register afs_int32 i, delflag; + int count; #if defined(AFS_SGIMP_ENV) osi_Assert(ISAFS_GLOCK()); *************** *** 361,368 **** if ((pag == -1) || (!pag && delflag) || (pag && (np->refCount == 0) && (np->pag == pag))) { *tnp = np->next; ! if (np->sysname) ! afs_osi_Free(np->sysname, MAXSYSNAME); afs_osi_Free(np, sizeof(struct nfsclientpag)); } else { tnp = &np->next; --- 361,369 ---- if ((pag == -1) || (!pag && delflag) || (pag && (np->refCount == 0) && (np->pag == pag))) { *tnp = np->next; ! for(count=0; count < np->sysnamecount;++count) { ! afs_osi_Free(np->sysname[count], MAXSYSNAME); ! } afs_osi_Free(np, sizeof(struct nfsclientpag)); } else { tnp = &np->next; Index: openafs/src/afs/afs_osi.c diff -c openafs/src/afs/afs_osi.c:1.48.2.11 openafs/src/afs/afs_osi.c:1.48.2.12 *** openafs/src/afs/afs_osi.c:1.48.2.11 Thu Feb 8 20:30:32 2007 --- openafs/src/afs/afs_osi.c Tue Apr 3 14:57:06 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_osi.c,v 1.48.2.11 2007/02/09 01:30:32 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.12 2007/04/03 18:57:06 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 807,812 **** --- 807,815 ---- #endif #if defined(AFS_LINUX22_ENV) + #ifdef EXPORTED_TASKLIST_LOCK + extern rwlock_t tasklist_lock __attribute__((weak)); + #endif void afs_osi_TraverseProcTable() { *************** *** 814,821 **** struct task_struct *p; #ifdef EXPORTED_TASKLIST_LOCK - extern rwlock_t tasklist_lock __attribute__((weak)); - if (&tasklist_lock) read_lock(&tasklist_lock); #endif --- 817,822 ---- Index: openafs/src/afs/afs_osidnlc.c diff -c openafs/src/afs/afs_osidnlc.c:1.8.2.5 openafs/src/afs/afs_osidnlc.c:1.8.2.6 *** openafs/src/afs/afs_osidnlc.c:1.8.2.5 Fri Feb 17 23:09:33 2006 --- openafs/src/afs/afs_osidnlc.c Fri Oct 19 16:40:52 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_osidnlc.c,v 1.8.2.5 2006/02/18 04:09:33 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_osidnlc.c,v 1.8.2.6 2007/10/19 20:40:52 shadow Exp $"); #include "afs/sysincludes.h" /*Standard vendor system headers */ #include "afsincludes.h" /*AFS-based standard headers */ *************** *** 242,248 **** ReleaseReadLock(&afs_xvcache); dnlcstats.misses++; } else { ! if (tvc->states & CVInit) { ReleaseReadLock(&afs_xvcache); dnlcstats.misses++; osi_dnlc_remove(adp, aname, tvc); --- 242,253 ---- ReleaseReadLock(&afs_xvcache); dnlcstats.misses++; } else { ! if ((tvc->states & CVInit) ! #ifdef AFS_DARWIN80_ENV ! ||(tvc->states & CDeadVnode) ! #endif ! ) ! { ReleaseReadLock(&afs_xvcache); dnlcstats.misses++; osi_dnlc_remove(adp, aname, tvc); Index: openafs/src/afs/afs_pioctl.c diff -c openafs/src/afs/afs_pioctl.c:1.81.2.25 openafs/src/afs/afs_pioctl.c:1.81.2.28 *** openafs/src/afs/afs_pioctl.c:1.81.2.25 Thu Mar 2 01:44:05 2006 --- openafs/src/afs/afs_pioctl.c Tue Aug 21 22:15:33 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_pioctl.c,v 1.81.2.25 2006/03/02 06:44:05 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.28 2007/08/22 02:15:33 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #ifdef AFS_OBSD_ENV *************** *** 90,96 **** DECL_PIOCTL(PPrefetchFromTape); DECL_PIOCTL(PResidencyCmd); DECL_PIOCTL(PCallBackAddr); ! /* * A macro that says whether we're going to need HandleClientContext(). * This is currently used only by the nfs translator. --- 90,96 ---- DECL_PIOCTL(PPrefetchFromTape); DECL_PIOCTL(PResidencyCmd); DECL_PIOCTL(PCallBackAddr); ! DECL_PIOCTL(PNewUuid); /* * A macro that says whether we're going to need HandleClientContext(). * This is currently used only by the nfs translator. *************** *** 192,197 **** --- 192,203 ---- PNewAlias, /* 1 -- create new cell alias */ PListAliases, /* 2 -- list cell aliases */ PCallBackAddr, /* 3 -- request addr for callback rxcon */ + PBogus, /* 0 */ + PBogus, /* 0 */ + PBogus, /* 0 */ + PBogus, /* 0 */ + PBogus, /* 0 */ + PNewUuid, /* 9 -- generate new uuid */ }; #define PSetClientContext 99 /* Special pioctl to setup caller's creds */ *************** *** 3354,3359 **** --- 3360,3366 ---- struct afs_exporter *exporter, *outexporter; struct AFS_UCRED *newcred; struct unixuser *au; + afs_uint32 comp = *com & 0xff00; #if defined(AFS_SGIMP_ENV) osi_Assert(ISAFS_GLOCK()); *************** *** 3479,3484 **** --- 3486,3493 ---- } else if (!code) { EXP_RELE(outexporter); } + if (!code) + *com = (*com) | comp; return code; } #endif /* AFS_NEED_CLIENTCONTEXT */ *************** *** 3830,3835 **** --- 3839,3859 ---- return code; } + DECL_PIOCTL(PNewUuid) + { + /*AFS_STATCNT(PNewUuid); */ + if (!afs_resourceinit_flag) /* afs deamons havn't started yet */ + return EIO; /* Inappropriate ioctl for device */ + + if (!afs_osi_suser(acred)) + return EACCES; + + ObtainWriteLock(&afs_xinterface, 555); + afs_uuid_create(&afs_cb_interface.uuid); + ReleaseWriteLock(&afs_xinterface); + ForceAllNewConnections(); + } + DECL_PIOCTL(PCallBackAddr) { #ifndef UKERNEL Index: openafs/src/afs/afs_prototypes.h diff -c openafs/src/afs/afs_prototypes.h:1.53.2.19 openafs/src/afs/afs_prototypes.h:1.53.2.20 *** openafs/src/afs/afs_prototypes.h:1.53.2.19 Mon Jan 15 15:51:57 2007 --- openafs/src/afs/afs_prototypes.h Wed Jun 27 12:32:12 2007 *************** *** 692,697 **** --- 692,698 ---- afs_int32 acell, u_short aport, afs_int32 locktype, afsUUID * uuidp, afs_int32 addr_uniquifier); + extern void ForceAllNewConnections(void); extern void afs_MarkServerUpOrDown(struct srvAddr *sa, int a_isDown); extern void afs_ServerDown(struct srvAddr *sa); extern void afs_CountServers(void); Index: openafs/src/afs/afs_server.c diff -c openafs/src/afs/afs_server.c:1.33.2.8 openafs/src/afs/afs_server.c:1.33.2.10 *** openafs/src/afs/afs_server.c:1.33.2.8 Thu Nov 9 19:16:29 2006 --- openafs/src/afs/afs_server.c Thu Oct 4 22:54:08 2007 *************** *** 33,39 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/afs_server.c,v 1.33.2.8 2006/11/10 00:16:29 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.10 2007/10/05 02:54:08 shadow Exp $"); #include "afs/stds.h" #include "afs/sysincludes.h" /* Standard vendor system headers */ *************** *** 488,493 **** --- 488,529 ---- } /*afs_CountServers */ + void + ForceAllNewConnections() + { + int srvAddrCount; + struct srvAddr **addrs; + struct srvAddr *sa; + afs_int32 i, j; + + ObtainReadLock(&afs_xserver); /* Necessary? */ + ObtainReadLock(&afs_xsrvAddr); + + srvAddrCount = 0; + for (i = 0; i < NSERVERS; i++) { + for (sa = afs_srvAddrs[i]; sa; sa = sa->next_bkt) { + srvAddrCount++; + } + } + + addrs = afs_osi_Alloc(srvAddrCount * sizeof(*addrs)); + j = 0; + for (i = 0; i < NSERVERS; i++) { + for (sa = afs_srvAddrs[i]; sa; sa = sa->next_bkt) { + if (j >= srvAddrCount) + break; + addrs[j++] = sa; + } + } + + ReleaseReadLock(&afs_xsrvAddr); + ReleaseReadLock(&afs_xserver); + for (i = 0; i < j; i++) { + sa = addrs[i]; + ForceNewConnections(sa); + } + } + /* check down servers (if adown), or running servers (if !adown) */ void afs_CheckServers(int adown, struct cell *acellp) *************** *** 1237,1259 **** #else /* AFS_USERSPACE_IP_ADDR */ #if defined(AFS_SUN5_ENV) #ifdef AFS_SUN510_ENV ! ill_walk_context_t ctx; #else extern struct ill_s *ill_g_headp; long *addr = (long *)ill_g_headp; - #endif ill_t *ill; ipif_t *ipif; int subnet, subnetmask, net, netmask; if (sa) sa->sa_iprank = 0; #ifdef AFS_SUN510_ENV ! for (ill = ILL_START_WALK_ALL(&ctx) ; ill ; ill = ill_next(&ctx, ill)) { #else for (ill = (struct ill_s *)*addr /*ill_g_headp */ ; ill; ill = ill->ill_next) { - #endif #ifdef AFS_SUN58_ENV /* Make sure this is an IPv4 ILL */ if (ill->ill_isv6) --- 1273,1346 ---- #else /* AFS_USERSPACE_IP_ADDR */ #if defined(AFS_SUN5_ENV) #ifdef AFS_SUN510_ENV ! int i = 0; #else extern struct ill_s *ill_g_headp; long *addr = (long *)ill_g_headp; ill_t *ill; ipif_t *ipif; + #endif int subnet, subnetmask, net, netmask; if (sa) sa->sa_iprank = 0; #ifdef AFS_SUN510_ENV ! rw_enter(&afsifinfo_lock, RW_READER); ! ! for (i = 0; (afsifinfo[i].ipaddr != NULL) && (i < ADDRSPERSITE); i++) { ! ! if (IN_CLASSA(afsifinfo[i].ipaddr)) { ! netmask = IN_CLASSA_NET; ! } else if (IN_CLASSB(afsifinfo[i].ipaddr)) { ! netmask = IN_CLASSB_NET; ! } else if (IN_CLASSC(afsifinfo[i].ipaddr)) { ! netmask = IN_CLASSC_NET; ! } else { ! netmask = 0; ! } ! net = afsifinfo[i].ipaddr & netmask; ! ! #ifdef notdef ! if (!s) { ! if (afsifinfo[i].ipaddr != 0x7f000001) { /* ignore loopback */ ! *cnt += 1; ! if (*cnt > 16) ! return; ! *addrp++ = afsifinfo[i].ipaddr; ! } ! } else ! #endif /* notdef */ ! { ! /* XXXXXX Do the individual ip ranking below XXXXX */ ! if ((sa->sa_ip & netmask) == net) { ! if ((sa->sa_ip & subnetmask) == subnet) { ! if (afsifinfo[i].ipaddr == sa->sa_ip) { /* ie, ME! */ ! sa->sa_iprank = TOPR; ! } else { ! sa->sa_iprank = HI + afsifinfo[i].metric; /* case #2 */ ! } ! } else { ! sa->sa_iprank = MED + afsifinfo[i].metric; /* case #3 */ ! } ! } else { ! sa->sa_iprank = LO + afsifinfo[i].metric; /* case #4 */ ! } ! /* check for case #5 -- point-to-point link */ ! if ((afsifinfo[i].flags & IFF_POINTOPOINT) ! && (afsifinfo[i].dstaddr == sa->sa_ip)) { ! ! if (afsifinfo[i].metric >= (MAXDEFRANK - MED) / PPWEIGHT) ! sa->sa_iprank = MAXDEFRANK; ! else ! sa->sa_iprank = MED + (PPWEIGHT << afsifinfo[i].metric); ! } ! } ! } ! ! rw_exit(&afsifinfo_lock); #else for (ill = (struct ill_s *)*addr /*ill_g_headp */ ; ill; ill = ill->ill_next) { #ifdef AFS_SUN58_ENV /* Make sure this is an IPv4 ILL */ if (ill->ill_isv6) *************** *** 1313,1318 **** --- 1400,1406 ---- } } } + #endif /* AFS_SUN510_ENV */ #else #ifndef USEIFADDR struct ifnet *ifn = NULL; Index: openafs/src/afs/AIX/osi_file.c diff -c openafs/src/afs/AIX/osi_file.c:1.9.2.1 openafs/src/afs/AIX/osi_file.c:1.9.2.2 *** openafs/src/afs/AIX/osi_file.c:1.9.2.1 Thu Nov 9 18:26:25 2006 --- openafs/src/afs/AIX/osi_file.c Wed Aug 15 23:54:26 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/AIX/osi_file.c,v 1.9.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/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 */ *************** *** 30,36 **** { struct inode *ip; register struct osi_file *afile = NULL; - extern struct vfs *rootvfs; struct vnode *vp = NULL; extern int cacheDiskType; afs_int32 code = 0; --- 30,35 ---- *************** *** 48,54 **** afile = (struct osi_file *)osi_AllocSmallSpace(sizeof(struct osi_file)); setuerror(0); AFS_GUNLOCK(); ! ip = (struct inode *)igetinode((dev_t) cacheDev.dev, rootvfs, (ino_t) ainode, &vp, &dummy); AFS_GLOCK(); if (getuerror()) { --- 47,53 ---- afile = (struct osi_file *)osi_AllocSmallSpace(sizeof(struct osi_file)); setuerror(0); AFS_GUNLOCK(); ! ip = (struct inode *)igetinode((dev_t) cacheDev.dev, afs_cacheVfsp, (ino_t) ainode, &vp, &dummy); AFS_GLOCK(); if (getuerror()) { Index: openafs/src/afs/AIX/osi_inode.c diff -c openafs/src/afs/AIX/osi_inode.c:1.8.2.2 openafs/src/afs/AIX/osi_inode.c:1.8.2.3 *** openafs/src/afs/AIX/osi_inode.c:1.8.2.2 Sat Oct 15 10:24:25 2005 --- openafs/src/afs/AIX/osi_inode.c Wed Aug 15 23:54:26 2007 *************** *** 17,23 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/AIX/osi_inode.c,v 1.8.2.2 2005/10/15 14:24:25 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/AIX/osi_inode.c,v 1.8.2.3 2007/08/16 03:54:26 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 262,268 **** struct inode *ip, *newip, *pip; register int err, rval1, rc = 0; struct vnode *vp = NULL; - extern struct vfs *rootvfs; register struct vfs *vfsp; struct vfs *nvfsp = NULL; char error; --- 262,267 ---- Index: openafs/src/afs/AIX/osi_sleep.c diff -c openafs/src/afs/AIX/osi_sleep.c:1.10 openafs/src/afs/AIX/osi_sleep.c:1.10.2.1 *** openafs/src/afs/AIX/osi_sleep.c:1.10 Tue Jul 15 19:14:17 2003 --- openafs/src/afs/AIX/osi_sleep.c Mon Jun 25 16:25:31 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/AIX/osi_sleep.c,v 1.10 2003/07/15 23:14:17 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_sleep.c,v 1.10.2.1 2007/06/25 20:25:31 shadow Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 26,32 **** --- 26,35 ---- static void AfsWaitHack(struct trb *trb) { + #if 0 + /* this gets called at interrupt context; let's not tempt fate... */ AFS_STATCNT(WaitHack); + #endif e_clear_wait(trb->func_data, THREAD_TIMED_OUT); } *************** *** 121,127 **** evp = evp->next; } if (!newp) { ! newp = (afs_event_t *) osi_AllocSmallSpace(sizeof(afs_event_t)); afs_evhashcnt++; newp->next = afs_evhasht[hashcode]; afs_evhasht[hashcode] = newp; --- 124,130 ---- evp = evp->next; } if (!newp) { ! newp = (afs_event_t *) xmalloc(sizeof(afs_event_t), 5, pinned_heap); afs_evhashcnt++; newp->next = afs_evhasht[hashcode]; afs_evhasht[hashcode] = newp; Index: openafs/src/afs/DARWIN/osi_file.c diff -c openafs/src/afs/DARWIN/osi_file.c:1.8.2.6 openafs/src/afs/DARWIN/osi_file.c:1.8.2.7 *** openafs/src/afs/DARWIN/osi_file.c:1.8.2.6 Thu Nov 9 18:26:25 2006 --- openafs/src/afs/DARWIN/osi_file.c Wed Oct 10 12:57:55 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/DARWIN/osi_file.c,v 1.8.2.6 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/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 */ *************** *** 141,146 **** --- 141,149 ---- extern int cacheDiskType; afs_int32 code = 0; int dummy; + char fname[1024]; + struct osi_stat tstat; + AFS_STATCNT(osi_UFSOpen); if (cacheDiskType != AFS_FCACHE_TYPE_UFS) { osi_Panic("UFSOpen called for non-UFS cache\n"); *************** *** 154,159 **** --- 157,184 ---- } afile = (struct osi_file *)osi_AllocSmallSpace(sizeof(struct osi_file)); AFS_GUNLOCK(); + #ifdef AFS_CACHE_VNODE_PATH + if (ainode < 0) { + switch (ainode) { + case AFS_CACHE_CELLS_INODE: + snprintf(fname, 1024, "%s/%s", afs_cachebasedir, "CellItems"); + break; + case AFS_CACHE_ITEMS_INODE: + snprintf(fname, 1024, "%s/%s", afs_cachebasedir, "CacheItems"); + break; + case AFS_CACHE_VOLUME_INODE: + snprintf(fname, 1024, "%s/%s", afs_cachebasedir, "VolumeItems"); + break; + default: + osi_Panic("Invalid negative inode"); + } + } else { + dummy = ainode / afs_numfilesperdir; + snprintf(fname, 1024, "%s/D%d/V%d", afs_cachebasedir, dummy, ainode); + } + + code = vnode_open(fname, O_RDWR, 0, 0, &vp, afs_osi_ctxtp); + #else #ifndef AFS_DARWIN80_ENV if (afs_CacheFSType == AFS_APPL_HFS_CACHE) code = igetinode(afs_cacheVfsp, (dev_t) cacheDev.dev, &ainode, &vp, &va, &dummy); /* XXX hfs is broken */ *************** *** 166,181 **** else panic("osi_UFSOpen called before cacheops initialized\n"); #endif AFS_GLOCK(); if (code) { osi_FreeSmallSpace(afile); osi_Panic("UFSOpen: igetinode failed"); } afile->vnode = vp; - afile->size = va.va_size; afile->offset = 0; afile->proc = (int (*)())0; afile->inum = ainode; /* for hint validity checking */ return (void *)afile; } --- 191,212 ---- else panic("osi_UFSOpen called before cacheops initialized\n"); #endif + #endif AFS_GLOCK(); if (code) { osi_FreeSmallSpace(afile); osi_Panic("UFSOpen: igetinode failed"); } afile->vnode = vp; afile->offset = 0; afile->proc = (int (*)())0; afile->inum = ainode; /* for hint validity checking */ + #ifndef AFS_CACHE_VNODE_PATH + afile->size = va.va_size; + #else + code = afs_osi_Stat(afile, &tstat); + afile->size = tstat.size; + #endif return (void *)afile; } Index: openafs/src/afs/DARWIN/osi_vnodeops.c diff -c openafs/src/afs/DARWIN/osi_vnodeops.c:1.18.2.21 openafs/src/afs/DARWIN/osi_vnodeops.c:1.18.2.28 *** openafs/src/afs/DARWIN/osi_vnodeops.c:1.18.2.21 Wed Feb 14 19:29:51 2007 --- openafs/src/afs/DARWIN/osi_vnodeops.c Wed Oct 24 01:45:38 2007 *************** *** 5,11 **** #include RCSID ! ("$Header: /cvs/openafs/src/afs/DARWIN/osi_vnodeops.c,v 1.18.2.21 2007/02/15 00:29:51 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.28 2007/10/24 05:45:38 shadow Exp $"); #include /* Standard vendor system headers */ #include /* Afs-based standard headers */ *************** *** 542,547 **** --- 542,549 ---- else code = afs_close(avc, ap->a_fflag, &afs_osi_cred, vop_proc); osi_FlushPages(avc, vop_cred); /* hold bozon lock, but not basic vnode lock */ + /* This is legit; it just forces the fstrace event to happen */ + code = afs_CheckCode(code, NULL, 60); AFS_GUNLOCK(); return code; *************** *** 634,645 **** /* we can't check for KAUTH_VNODE_TAKE_OWNERSHIP, so we always permit it */ code = afs_AccessOK(tvc, bits, &treq, cmb); ! if (code == 1 && vnode_vtype(ap->a_vp) == VREG && ap->a_action & KAUTH_VNODE_EXECUTE && (tvc->m.Mode & 0100) != 0100) { code = 0; ! } if (code) { code= 0; /* if access is ok */ } else { --- 636,653 ---- /* we can't check for KAUTH_VNODE_TAKE_OWNERSHIP, so we always permit it */ code = afs_AccessOK(tvc, bits, &treq, cmb); ! #if defined(AFS_DARWIN80_ENV) ! /* In a dropbox, cp on 10.4 behaves badly, looping on EACCES */ ! /* In a dropbox, Finder may reopen the file. Let it. */ ! if (code == 0 && ((bits &~(PRSFS_READ|PRSFS_WRITE)) == 0)) { ! code = afs_AccessOK(tvc, PRSFS_ADMINISTER|PRSFS_INSERT|bits, &treq, cmb); ! } ! #endif if (code == 1 && vnode_vtype(ap->a_vp) == VREG && ap->a_action & KAUTH_VNODE_EXECUTE && (tvc->m.Mode & 0100) != 0100) { code = 0; ! } if (code) { code= 0; /* if access is ok */ } else { *************** *** 682,693 **** --- 690,704 ---- AFS_GLOCK(); code = afs_getattr(VTOAFS(ap->a_vp), ap->a_vap, vop_cred); + /* This is legit; it just forces the fstrace event to happen */ + code = afs_CheckCode(code, NULL, 58); AFS_GUNLOCK(); #ifdef AFS_DARWIN80_ENV VATTR_SET_SUPPORTED(ap->a_vap, va_type); VATTR_SET_SUPPORTED(ap->a_vap, va_mode); VATTR_SET_SUPPORTED(ap->a_vap, va_uid); VATTR_SET_SUPPORTED(ap->a_vap, va_gid); + VATTR_SET_SUPPORTED(ap->a_vap, va_fsid); VATTR_SET_SUPPORTED(ap->a_vap, va_fileid); VATTR_SET_SUPPORTED(ap->a_vap, va_nlink); VATTR_SET_SUPPORTED(ap->a_vap, va_data_size); *************** *** 714,719 **** --- 725,732 ---- int code; AFS_GLOCK(); code = afs_setattr(VTOAFS(ap->a_vp), ap->a_vap, vop_cred); + /* This is legit; it just forces the fstrace event to happen */ + code = afs_CheckCode(code, NULL, 59); AFS_GUNLOCK(); return code; } *************** *** 1190,1201 **** GETNAME(); AFS_GLOCK(); error = afs_remove(VTOAFS(dvp), name, vop_cn_cred); AFS_GUNLOCK(); cache_purge(vp); if (!error) { #ifdef AFS_DARWIN80_ENV ! ubc_setsize(vp, (off_t)0); ! vnode_recycle(vp); #else /* necessary so we don't deadlock ourselves in vclean */ VOP_UNLOCK(vp, 0, cnp->cn_proc); --- 1203,1219 ---- GETNAME(); AFS_GLOCK(); error = afs_remove(VTOAFS(dvp), name, vop_cn_cred); + error = afs_CheckCode(error, NULL, 61); AFS_GUNLOCK(); cache_purge(vp); if (!error) { #ifdef AFS_DARWIN80_ENV ! struct vcache *tvc = VTOAFS(vp); ! ! if (!(tvc->states & CUnlinked)) { ! ubc_setsize(vp, (off_t)0); ! vnode_recycle(vp); ! } #else /* necessary so we don't deadlock ourselves in vclean */ VOP_UNLOCK(vp, 0, cnp->cn_proc); *************** *** 1203,1208 **** --- 1221,1232 ---- /* If crashes continue in ubc_hold, comment this out */ (void)ubc_uncache(vp); #endif + } else { + /* should check for PRSFS_INSERT and not PRSFS_DELETE, but the + goal here is to deal with Finder's unhappiness with resource + forks that have no resources in a dropbox setting */ + if (name[0] == '.' && name[1] == '_' && error == EACCES) + error = 0; } #ifndef AFS_DARWIN80_ENV *************** *** 1626,1634 **** vprint("afs_vop_inactive(): pushing active", vp); #endif if (tvc) { ! AFS_GLOCK(); ! afs_InactiveVCache(tvc, 0); /* decrs ref counts */ ! AFS_GUNLOCK(); } #ifndef AFS_DARWIN80_ENV VOP_UNLOCK(vp, 0, ap->a_p); --- 1650,1667 ---- vprint("afs_vop_inactive(): pushing active", vp); #endif if (tvc) { ! #ifdef AFS_DARWIN80_ENV ! int unlinked = tvc->states & CUnlinked; ! #endif ! AFS_GLOCK(); ! afs_InactiveVCache(tvc, 0); /* decrs ref counts */ ! AFS_GUNLOCK(); ! #ifdef AFS_DARWIN80_ENV ! if (unlinked) { ! vnode_recycle(vp); ! cache_purge(vp); ! } ! #endif } #ifndef AFS_DARWIN80_ENV VOP_UNLOCK(vp, 0, ap->a_p); *************** *** 2047,2060 **** Don't touch! */ int afs_darwin_finalizevnode(struct vcache *avc, struct vnode *dvp, struct componentname *cnp, int isroot) { ! vnode_t ovp = AFSTOV(avc); vnode_t nvp; int error; struct vnode_fsparam par; AFS_GLOCK(); ObtainWriteLock(&avc->lock,325); if (!(avc->states & CDeadVnode) && vnode_vtype(ovp) != VNON) { - ReleaseWriteLock(&avc->lock); AFS_GUNLOCK(); #if 0 /* unsupported */ if (dvp && cnp) --- 2080,2093 ---- Don't touch! */ int afs_darwin_finalizevnode(struct vcache *avc, struct vnode *dvp, struct componentname *cnp, int isroot) { ! vnode_t ovp; vnode_t nvp; int error; struct vnode_fsparam par; AFS_GLOCK(); ObtainWriteLock(&avc->lock,325); + ovp = AFSTOV(avc); if (!(avc->states & CDeadVnode) && vnode_vtype(ovp) != VNON) { AFS_GUNLOCK(); #if 0 /* unsupported */ if (dvp && cnp) *************** *** 2062,2068 **** --- 2095,2105 ---- cnp->cn_hash, VNODE_UPDATE_PARENT|VNODE_UPDATE_NAME); #endif + /* Can end up in reclaim... drop GLOCK */ vnode_rele(ovp); + AFS_GLOCK(); + ReleaseWriteLock(&avc->lock); + AFS_GUNLOCK(); return 0; } if ((avc->states & CDeadVnode) && vnode_vtype(ovp) != VNON) *************** *** 2083,2101 **** par.vnfs_markroot = 1; error = vnode_create(VNCREATE_FLAVOR, VCREATESIZE, &par, &nvp); if (!error) { ! vnode_addfsref(nvp); ! avc->v = nvp; ! avc->states &=~ CDeadVnode; ! vnode_clearfsnode(ovp); ! vnode_removefsref(ovp); } AFS_GLOCK(); ReleaseWriteLock(&avc->lock); if (!error) afs_osi_Wakeup(&avc->states); AFS_GUNLOCK(); - vnode_put(ovp); - vnode_rele(ovp); return error; } #endif --- 2120,2144 ---- par.vnfs_markroot = 1; error = vnode_create(VNCREATE_FLAVOR, VCREATESIZE, &par, &nvp); if (!error) { ! vnode_addfsref(nvp); ! if ((avc->states & CDeadVnode) && vnode_vtype(ovp) != VNON) ! printf("vcache %p should not be CDeadVnode", avc); ! if (avc->v == ovp) { ! if (!(avc->states & CVInit)) { ! vnode_clearfsnode(ovp); ! vnode_removefsref(ovp); ! } ! } ! avc->v = nvp; ! avc->states &=~ CDeadVnode; } + vnode_put(ovp); + vnode_rele(ovp); AFS_GLOCK(); ReleaseWriteLock(&avc->lock); if (!error) afs_osi_Wakeup(&avc->states); AFS_GUNLOCK(); return error; } #endif Index: openafs/src/afs/LINUX/osi_alloc.c diff -c openafs/src/afs/LINUX/osi_alloc.c:1.22.2.1 openafs/src/afs/LINUX/osi_alloc.c:1.22.2.2 *** openafs/src/afs/LINUX/osi_alloc.c:1.22.2.1 Tue Dec 7 01:12:12 2004 --- openafs/src/afs/LINUX/osi_alloc.c Wed Apr 18 14:04:10 2007 *************** *** 15,21 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_alloc.c,v 1.22.2.1 2004/12/07 06:12:12 shadow Exp $"); #include "afs/sysincludes.h" #include "afsincludes.h" --- 15,21 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_alloc.c,v 1.22.2.2 2007/04/18 18:04:10 shadow Exp $"); #include "afs/sysincludes.h" #include "afsincludes.h" *************** *** 98,104 **** --- 98,109 ---- if (new) /* piggy back alloc type */ new = (void *)(KM_TYPE | (unsigned long)new); } else { + osi_Assert(drop_glock || !haveGlock); + if (drop_glock && haveGlock) + AFS_GUNLOCK(); new = (void *)vmalloc(asize); + if (drop_glock && haveGlock) + AFS_GLOCK(); if (new) /* piggy back alloc type */ new = (void *)(VM_TYPE | (unsigned long)new); } Index: openafs/src/afs/LINUX/osi_groups.c diff -c openafs/src/afs/LINUX/osi_groups.c:1.25.2.8 openafs/src/afs/LINUX/osi_groups.c:1.25.2.10 *** openafs/src/afs/LINUX/osi_groups.c:1.25.2.8 Mon Jan 15 10:52:46 2007 --- openafs/src/afs/LINUX/osi_groups.c Tue Mar 20 14:48:52 2007 *************** *** 20,26 **** #endif RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_groups.c,v 1.25.2.8 2007/01/15 15:52:46 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.10 2007/03/20 18:48:52 shadow Exp $"); #include "afs/sysincludes.h" #include "afsincludes.h" *************** *** 594,606 **** --- 594,611 ---- { afs_uint32 pag = key->payload.value; struct unixuser *pu; + int locked = ISAFS_GLOCK(); + if (!locked) + AFS_GLOCK(); pu = afs_FindUser(pag, -1, READ_LOCK); if (pu) { pu->ct.EndTimestamp = 0; pu->tokenTime = 0; afs_PutUser(pu, READ_LOCK); } + if (!locked) + AFS_GUNLOCK(); } struct key_type key_type_afs_pag = *************** *** 612,624 **** .destroy = afs_pag_destroy, }; void osi_keyring_init(void) { struct task_struct *p; ! p = find_task_by_pid(1); if (p && p->user->session_keyring) __key_type_keyring = p->user->session_keyring->type; register_key_type(&key_type_afs_pag); } --- 617,652 ---- .destroy = afs_pag_destroy, }; + #ifdef EXPORTED_TASKLIST_LOCK + extern rwlock_t tasklist_lock __attribute__((weak)); + #endif + 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); } Index: openafs/src/afs/LINUX/osi_module.c diff -c openafs/src/afs/LINUX/osi_module.c:1.52.2.26 openafs/src/afs/LINUX/osi_module.c:1.52.2.29 *** openafs/src/afs/LINUX/osi_module.c:1.52.2.26 Thu Feb 8 20:30:33 2007 --- openafs/src/afs/LINUX/osi_module.c Wed Oct 24 14:09:50 2007 *************** *** 15,21 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_module.c,v 1.52.2.26 2007/02/09 01:30:33 shadow Exp $"); #include /* early to avoid printf->printk mapping */ #include "afs/sysincludes.h" --- 15,21 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_module.c,v 1.52.2.29 2007/10/24 18:09:50 shadow Exp $"); #include /* early to avoid printf->printk mapping */ #include "afs/sysincludes.h" *************** *** 370,378 **** if (err) return err; err = afs_init_inodecache(); ! if (err) return err; ! register_filesystem(&afs_fs_type); osi_sysctl_init(); #ifdef LINUX_KEYRING_SUPPORT osi_keyring_init(); --- 370,388 ---- if (err) return err; err = afs_init_inodecache(); ! if (err) { ! #ifndef LINUX_KEYRING_SUPPORT ! osi_syscall_clean(); ! #endif ! return err; ! } ! err = register_filesystem(&afs_fs_type); ! if (err) { ! afs_destroy_inodecache(); ! osi_syscall_clean(); return err; ! } ! osi_sysctl_init(); #ifdef LINUX_KEYRING_SUPPORT osi_keyring_init(); *************** *** 392,398 **** --- 402,410 ---- cleanup_module(void) #endif { + #ifdef LINUX_KEYRING_SUPPORT osi_keyring_shutdown(); + #endif osi_sysctl_clean(); osi_syscall_clean(); unregister_filesystem(&afs_fs_type); Index: openafs/src/afs/LINUX/osi_probe.c diff -c openafs/src/afs/LINUX/osi_probe.c:1.1.2.20 openafs/src/afs/LINUX/osi_probe.c:1.1.2.24 *** openafs/src/afs/LINUX/osi_probe.c:1.1.2.20 Tue Feb 13 17:54:20 2007 --- openafs/src/afs/LINUX/osi_probe.c Tue Aug 21 17:31:59 2007 *************** *** 59,64 **** --- 59,65 ---- #include "afsincludes.h" #endif #include + #include #ifdef CONFIG_H_EXISTS #include #endif *************** *** 128,134 **** /* If this is set, we are more careful about avoiding duplicate matches */ static int probe_carefully = 1; ! #ifdef module_param module_param(probe_carefully, int, 0); #else MODULE_PARM(probe_carefully, "i"); --- 129,135 ---- /* If this is set, we are more careful about avoiding duplicate matches */ static int probe_carefully = 1; ! #if defined(module_param) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9) module_param(probe_carefully, int, 0); #else MODULE_PARM(probe_carefully, "i"); *************** *** 153,161 **** * 0x0010 - detail - check_harder * 0x0020 - detail - check_harder/zapped * 0x0040 - automatically ignore setgroups and afs_syscall */ static int probe_debug = 0x41; ! #ifdef module_param module_param(probe_debug, int, 0); #else MODULE_PARM(probe_debug, "i"); --- 154,163 ---- * 0x0010 - detail - check_harder * 0x0020 - detail - check_harder/zapped * 0x0040 - automatically ignore setgroups and afs_syscall + * 0x0080 - detail - check_table_readable */ static int probe_debug = 0x41; ! #if defined(module_param) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9) module_param(probe_debug, int, 0); #else MODULE_PARM(probe_debug, "i"); *************** *** 171,177 **** MODULE_PARM_DESC(probe_debug_addr, "Debug range starting locations"); static unsigned long probe_debug_range = 0; ! #ifdef module_param module_param(probe_debug_range, long, 0); #else MODULE_PARM(probe_debug_range, "l"); --- 173,179 ---- MODULE_PARM_DESC(probe_debug_addr, "Debug range starting locations"); static unsigned long probe_debug_range = 0; ! #if defined(module_param) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9) module_param(probe_debug_range, long, 0); #else MODULE_PARM(probe_debug_range, "l"); *************** *** 179,185 **** MODULE_PARM_DESC(probe_debug_range, "Debug range length"); static unsigned long probe_debug_tag = 0; ! #ifdef module_param module_param(probe_debug_tag, long, 0); #else MODULE_PARM(probe_debug_tag, "l"); --- 181,187 ---- MODULE_PARM_DESC(probe_debug_range, "Debug range length"); static unsigned long probe_debug_tag = 0; ! #if defined(module_param) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9) module_param(probe_debug_tag, long, 0); #else MODULE_PARM(probe_debug_tag, "l"); *************** *** 298,303 **** --- 300,309 ---- int debug_ignore_NR[4]; /* syscalls to ignore for debugging */ } probectl; + #if defined(AFS_I386_LINUX26_ENV) || defined(AFS_AMD64_LINUX26_ENV) + static int check_access(unsigned long, int); + static int check_table_readable(probectl *, PROBETYPE *); + #endif /********** Probing Configuration: sys_call_table **********/ *************** *** 512,520 **** /* symbol in section to try scanning */ #if defined(AFS_SPARC64_LINUX20_ENV) || defined(AFS_S390_LINUX20_ENV) || defined(AFS_S390X_LINUX20_ENV) (unsigned long)&sys_close, ! #elif defined(AFS_AMD64_LINUX20_ENV) /* On this platform, it's in a different section! */ (unsigned long)&generic_ro_fops, #else (unsigned long)&init_mm, #endif --- 518,529 ---- /* symbol in section to try scanning */ #if defined(AFS_SPARC64_LINUX20_ENV) || defined(AFS_S390_LINUX20_ENV) || defined(AFS_S390X_LINUX20_ENV) (unsigned long)&sys_close, ! #elif defined(AFS_AMD64_LINUX26_ENV) /* On this platform, it's in a different section! */ (unsigned long)&generic_ro_fops, + #elif defined(AFS_AMD64_LINUX20_ENV) + /* On this platform, it's in a different section! */ + (unsigned long)&tasklist_lock, #else (unsigned long)&init_mm, #endif *************** *** 535,544 **** (unsigned long)(&init_mm), 0x1fffff, 0x30000, ! #elif defined(AFS_AMD64_LINUX20_ENV) (unsigned long)(&generic_ro_fops) - 0x30000, 0, 0x6000, #elif defined(AFS_PPC64_LINUX26_ENV) (unsigned long)(&do_signal), 0xfff, --- 544,557 ---- (unsigned long)(&init_mm), 0x1fffff, 0x30000, ! #elif defined(AFS_AMD64_LINUX26_ENV) (unsigned long)(&generic_ro_fops) - 0x30000, 0, 0x6000, + #elif defined(AFS_AMD64_LINUX20_ENV) + (unsigned long)(&tasklist_lock) - 0x30000, + 0, + 0x6000, #elif defined(AFS_PPC64_LINUX26_ENV) (unsigned long)(&do_signal), 0xfff, *************** *** 940,945 **** --- 953,963 ---- PROBETYPE *x; int i, j; + #if defined(AFS_I386_LINUX26_ENV) || defined(AFS_AMD64_LINUX26_ENV) + i = check_table_readable(P, ptr); + if (i >= 0) return i; + #endif + for (x = ptr, i = 0; i < _SS(NR_syscalls); i++, x++) { #ifdef OSI_PROBE_DEBUG if (probe_debug & 0x0040) { *************** *** 1062,1067 **** --- 1080,1090 ---- unsigned long ip1; int i, s; + #if defined(AFS_I386_LINUX26_ENV) || defined(AFS_AMD64_LINUX26_ENV) + i = check_table_readable(P, p); + if (i >= 0) return 0; + #endif + /* Check zapped syscalls */ for (i = 1; i < P->n_zapped_syscalls; i++) { if (p[_SS(P->zapped_syscalls[i])] != p[_SS(P->zapped_syscalls[0])]) { *************** *** 1349,1355 **** } #if defined(AFS_I386_LINUX26_ENV) || defined(AFS_AMD64_LINUX26_ENV) ! static int check_writable(unsigned long address) { pgd_t *pgd = pgd_offset_k(address); #ifdef PUD_SIZE --- 1372,1378 ---- } #if defined(AFS_I386_LINUX26_ENV) || defined(AFS_AMD64_LINUX26_ENV) ! static int check_access(unsigned long address, int mode) { pgd_t *pgd = pgd_offset_k(address); #ifdef PUD_SIZE *************** *** 1374,1383 **** pte = (pte_t *)pmd; else pte = pte_offset_kernel(pmd, address); ! if (pte_none(*pte) || !pte_present(*pte) || !pte_write(*pte)) return 0; return 1; } #endif void *osi_find_syscall_table(int which) --- 1397,1430 ---- pte = (pte_t *)pmd; else pte = pte_offset_kernel(pmd, address); ! if (pte_none(*pte) || !pte_present(*pte)) ! return 0; ! if (mode && !pte_write(*pte)) return 0; return 1; } + + static int check_table_readable(probectl *P, PROBETYPE *ptr) + { + PROBETYPE *next_page; + int i = 0, delta; + + while (i < _SS(NR_syscalls)) { + next_page = (PROBETYPE *)PAGE_ALIGN((unsigned long)(ptr+1)); + delta = next_page - ptr; + if (!check_access((unsigned long)ptr, 0)) { + #ifdef OSI_PROBE_DEBUG + if (probe_debug & 0x0080) + printk("<7>osi_probe: %s 0x%016lx not readable; delta=0x%lx\n", + P->symbol, (unsigned long)ptr, delta); + #endif + return delta - 1; + } + ptr += delta; + i += delta; + } + return -1; + } #endif void *osi_find_syscall_table(int which) *************** *** 1405,1411 **** } printk("Found %s at 0x%lx (%s)\n", P->desc, (unsigned long)answer, method); #if defined(AFS_I386_LINUX26_ENV) || defined(AFS_AMD64_LINUX26_ENV) ! if (!check_writable((unsigned long)answer)) { printk("Address 0x%lx is not writable.\n", (unsigned long)answer); printk("System call hooks will not be installed; proceeding anyway\n"); return 0; --- 1452,1458 ---- } printk("Found %s at 0x%lx (%s)\n", P->desc, (unsigned long)answer, method); #if defined(AFS_I386_LINUX26_ENV) || defined(AFS_AMD64_LINUX26_ENV) ! if (!check_access((unsigned long)answer, 1)) { printk("Address 0x%lx is not writable.\n", (unsigned long)answer); printk("System call hooks will not be installed; proceeding anyway\n"); return 0; Index: openafs/src/afs/LINUX/osi_sleep.c diff -c openafs/src/afs/LINUX/osi_sleep.c:1.22.2.10 openafs/src/afs/LINUX/osi_sleep.c:1.22.2.11 *** openafs/src/afs/LINUX/osi_sleep.c:1.22.2.10 Thu Jan 4 16:26:34 2007 --- openafs/src/afs/LINUX/osi_sleep.c Tue Jun 12 01:47:47 2007 *************** *** 11,17 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_sleep.c,v 1.22.2.10 2007/01/04 21:26:34 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/LINUX/osi_sleep.c,v 1.22.2.11 2007/06/12 05:47:47 rra Exp $"); #include "afs/sysincludes.h" /* Standard vendor system headers */ #include "afsincludes.h" /* Afs-based standard headers */ *************** *** 205,211 **** --- 205,215 ---- #if defined(STRUCT_TASK_STRUCT_HAS_TODO) !current->todo #else + #if defined(STRUCT_TASK_STRUCT_HAS_THREAD_INFO) test_ti_thread_flag(current->thread_info, TIF_FREEZE) + #else + test_ti_thread_flag(task_thread_info(current), TIF_FREEZE) + #endif #endif #endif ) *************** *** 303,309 **** --- 307,317 ---- #if defined(STRUCT_TASK_STRUCT_HAS_TODO) !current->todo #else + #if defined(STRUCT_TASK_STRUCT_HAS_THREAD_INFO) test_ti_thread_flag(current->thread_info, TIF_FREEZE) + #else + test_ti_thread_flag(task_thread_info(current), TIF_FREEZE) + #endif #endif #endif ) Index: openafs/src/afs/LINUX/osi_syscall.c diff -c openafs/src/afs/LINUX/osi_syscall.c:1.1.2.8 openafs/src/afs/LINUX/osi_syscall.c:1.1.2.9 *** openafs/src/afs/LINUX/osi_syscall.c:1.1.2.8 Fri Dec 1 13:49:28 2006 --- openafs/src/afs/LINUX/osi_syscall.c Mon Mar 26 23:22:25 2007 *************** *** 15,21 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_syscall.c,v 1.1.2.8 2006/12/01 18:49:28 shadow Exp $"); #ifdef AFS_LINUX24_ENV #include /* early to avoid printf->printk mapping */ --- 15,21 ---- #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_syscall.c,v 1.1.2.9 2007/03/27 03:22:25 shadow Exp $"); #ifdef AFS_LINUX24_ENV #include /* early to avoid printf->printk mapping */ *************** *** 56,64 **** #if defined(AFS_S390X_LINUX24_ENV) #define INSERT_SYSCALL(SLOT, TMPPAGE, FUNC) \ ! if (POINTER2SYSCALL FUNC > 0x7fffffff) { \ TMPPAGE = kmalloc ( PAGE_SIZE, GFP_DMA|GFP_KERNEL ); \ ! if (POINTER2SYSCALL TMPPAGE > 0x7fffffff) { \ printf("Cannot allocate page for FUNC syscall jump vector\n"); \ return EINVAL; \ } \ --- 56,64 ---- #if defined(AFS_S390X_LINUX24_ENV) #define INSERT_SYSCALL(SLOT, TMPPAGE, FUNC) \ ! if (SYSCALL2POINTER FUNC > 0x7fffffff) { \ TMPPAGE = kmalloc ( PAGE_SIZE, GFP_DMA|GFP_KERNEL ); \ ! if (SYSCALL2POINTER TMPPAGE > 0x7fffffff) { \ printf("Cannot allocate page for FUNC syscall jump vector\n"); \ return EINVAL; \ } \ Index: openafs/src/afs/LINUX/osi_sysctl.c diff -c openafs/src/afs/LINUX/osi_sysctl.c:1.7.2.4 openafs/src/afs/LINUX/osi_sysctl.c:1.7.2.5 *** openafs/src/afs/LINUX/osi_sysctl.c:1.7.2.4 Thu Feb 22 16:49:01 2007 --- openafs/src/afs/LINUX/osi_sysctl.c Tue Jun 12 14:28:49 2007 *************** *** 1,7 **** /* * osi_sysctl.c: Linux sysctl interface to OpenAFS * ! * $Id: osi_sysctl.c,v 1.7.2.4 2007/02/22 21:49:01 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.5 2007/06/12 18:28:49 shadow Exp $ * * Written Jan 30, 2002 by Kris Van Hees (Sine Nomine Associates) */ *************** *** 27,61 **** static struct ctl_table_header *afs_sysctl = NULL; static ctl_table afs_sysctl_table[] = { ! {1, "hm_retry_RO", ! &hm_retry_RO, sizeof(afs_int32), 0644, NULL, ! &proc_dointvec} ! , ! {2, "hm_retry_RW", ! &hm_retry_RW, sizeof(afs_int32), 0644, NULL, ! &proc_dointvec} ! , ! {3, "hm_retry_int", ! &hm_retry_int, sizeof(afs_int32), 0644, NULL, ! &proc_dointvec} ! , ! {4, "GCPAGs", ! &afs_gcpags, sizeof(afs_int32), 0644, NULL, ! &proc_dointvec} ! , ! {5, "rx_deadtime", ! &afs_rx_deadtime, sizeof(afs_int32), 0644, NULL, ! &proc_dointvec} ! , ! {6, "bkVolPref", ! &afs_bkvolpref, sizeof(afs_int32), 0644, NULL, ! &proc_dointvec} ! , {0} }; static ctl_table fs_sysctl_table[] = { ! {1, "afs", NULL, 0, 0555, afs_sysctl_table}, {0} }; --- 27,90 ---- static struct ctl_table_header *afs_sysctl = NULL; static ctl_table afs_sysctl_table[] = { ! { ! .ctl_name = 1, ! .procname = "hm_retry_RO", ! .data = &hm_retry_RO, ! .maxlen = sizeof(afs_int32), ! .mode = 0644, ! .proc_handler = &proc_dointvec ! }, ! { ! .ctl_name = 2, ! .procname = "hm_retry_RW", ! .data = &hm_retry_RW, ! .maxlen = sizeof(afs_int32), ! .mode = 0644, ! .proc_handler = &proc_dointvec ! }, ! { ! .ctl_name = 3, ! .procname = "hm_retry_int", ! .data = &hm_retry_int, ! .maxlen = sizeof(afs_int32), ! .mode = 0644, ! .proc_handler = &proc_dointvec ! }, ! { ! .ctl_name = 4, ! .procname = "GCPAGs", ! .data = &afs_gcpags, ! .maxlen = sizeof(afs_int32), ! .mode = 0644, ! .proc_handler = &proc_dointvec ! }, ! { ! .ctl_name = 5, ! .procname = "rx_deadtime", ! .data = &afs_rx_deadtime, ! .maxlen = sizeof(afs_int32), ! .mode = 0644, ! .proc_handler = &proc_dointvec ! }, ! { ! .ctl_name = 6, ! .procname = "bkVolPref", ! .data = &afs_bkvolpref, ! .maxlen = sizeof(afs_int32), ! .mode = 0644, ! .proc_handler = &proc_dointvec ! }, {0} }; static ctl_table fs_sysctl_table[] = { ! { ! .ctl_name = 1, ! .procname = "afs", ! .mode = 0555, ! .child = afs_sysctl_table ! }, {0} }; Index: openafs/src/afs/LINUX/osi_vfsops.c diff -c openafs/src/afs/LINUX/osi_vfsops.c:1.29.2.23 openafs/src/afs/LINUX/osi_vfsops.c:1.29.2.26 *** openafs/src/afs/LINUX/osi_vfsops.c:1.29.2.23 Thu Feb 8 20:25:48 2007 --- openafs/src/afs/LINUX/osi_vfsops.c Mon Oct 15 08:42:26 2007 *************** *** 16,22 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_vfsops.c,v 1.29.2.23 2007/02/09 01:25:48 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.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 */ *************** *** 263,269 **** --- 263,273 ---- #if defined(STRUCT_SUPER_HAS_ALLOC_INODE) + #if defined(HAVE_KMEM_CACHE_T) static kmem_cache_t *afs_inode_cachep; + #else + struct kmem_cache *afs_inode_cachep; + #endif static struct inode * afs_alloc_inode(struct super_block *sb) *************** *** 288,299 **** --- 292,309 ---- } static void + #if defined(HAVE_KMEM_CACHE_T) init_once(void * foo, kmem_cache_t * cachep, unsigned long flags) + #else + init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) + #endif { struct vcache *vcp = (struct vcache *) foo; + #if defined(SLAB_CTOR_VERIFY) if ((flags & (SLAB_CTOR_VERIFY|SLAB_CTOR_CONSTRUCTOR)) == SLAB_CTOR_CONSTRUCTOR) + #endif inode_init_once(AFSTOV(vcp)); } *************** *** 304,313 **** --- 314,330 ---- #define SLAB_RECLAIM_ACCOUNT 0 #endif + #if defined(KMEM_CACHE_TAKES_DTOR) afs_inode_cachep = kmem_cache_create("afs_inode_cache", sizeof(struct vcache), 0, SLAB_HWCACHE_ALIGN | SLAB_RECLAIM_ACCOUNT, init_once, NULL); + #else + afs_inode_cachep = kmem_cache_create("afs_inode_cache", + sizeof(struct vcache), + 0, SLAB_HWCACHE_ALIGN | SLAB_RECLAIM_ACCOUNT, + init_once); + #endif if (afs_inode_cachep == NULL) return -ENOMEM; return 0; *************** *** 316,322 **** void afs_destroy_inodecache(void) { ! (void) kmem_cache_destroy(afs_inode_cachep); } #else int --- 333,340 ---- void afs_destroy_inodecache(void) { ! if (afs_inode_cachep) ! (void) kmem_cache_destroy(afs_inode_cachep); } #else int Index: openafs/src/afs/LINUX/osi_vnodeops.c diff -c openafs/src/afs/LINUX/osi_vnodeops.c:1.81.2.51 openafs/src/afs/LINUX/osi_vnodeops.c:1.81.2.57 *** openafs/src/afs/LINUX/osi_vnodeops.c:1.81.2.51 Tue Feb 20 13:06:24 2007 --- openafs/src/afs/LINUX/osi_vnodeops.c Mon Oct 15 08:42:26 2007 *************** *** 22,28 **** #include "afs/param.h" RCSID ! ("$Header: /cvs/openafs/src/afs/LINUX/osi_vnodeops.c,v 1.81.2.51 2007/02/20 18:06:24 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.57 2007/10/15 12:42:26 shadow Exp $"); #include "afs/sysincludes.h" #include "afsincludes.h" *************** *** 473,483 **** #ifdef AFS_LINUX24_ENV if ((code == 0 || flp->fl_type == F_UNLCK) && (cmd == F_SETLK || cmd == F_SETLKW)) { ! #ifdef AFS_LINUX26_ENV flp->fl_flags &=~ FL_SLEEP; code = posix_lock_file(fp, flp); - #else - code = posix_lock_file(fp, flp, 0); #endif if (code && flp->fl_type != F_UNLCK) { struct AFS_FLOCK flock2; --- 473,483 ---- #ifdef AFS_LINUX24_ENV if ((code == 0 || flp->fl_type == F_UNLCK) && (cmd == F_SETLK || cmd == F_SETLKW)) { ! #ifdef POSIX_LOCK_FILE_WAIT_ARG ! code = posix_lock_file(fp, flp, 0); ! #else flp->fl_flags &=~ FL_SLEEP; code = posix_lock_file(fp, flp); #endif if (code && flp->fl_type != F_UNLCK) { struct AFS_FLOCK flock2; *************** *** 557,563 **** --- 557,567 ---- * afs_StoreAllSegments() with AFS_LASTSTORE */ static int + #if defined(FOP_FLUSH_TAKES_FL_OWNER_T) + afs_linux_flush(struct file *fp, fl_owner_t id) + #else afs_linux_flush(struct file *fp) + #endif { struct vrequest treq; struct vcache *vcp = VTOAFS(FILE_INODE(fp)); *************** *** 636,642 **** .mmap =