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 =