From f62728a62e14cf1a99405fc9c2a77d2fe5fe6d82 Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Fri, 9 Sep 2005 08:53:21 +0000 Subject: [PATCH] Merge with upstream 1.4.0-rc3 release (as 1.4rc3 so that version numbers will sort correctly). --- configure | 2 +- configure-libafs | 2 +- configure-libafs.in | 2 +- configure.in | 2 +- debian/changelog | 6 ++++++ debian/rules | 2 +- src/afs/LINUX/osi_vnodeops.c | 4 +++- src/config/NTMakefile.amd64_w2k | 12 ++++++----- src/config/NTMakefile.i386_nt40 | 18 +++++++++------- src/config/NTMakefile.i386_w2k | 13 ++++++------ src/config/NTMakefile.i386_win95 | 2 +- src/rx/rx.c | 28 ++++++++++++++++++++++--- src/shlibafsrpc/Makefile.in | 6 +++--- src/sys/pioctl_nt.c | 35 ++++++++++++++++++++++++-------- src/volser/volprocs.c | 4 ++-- 15 files changed, 97 insertions(+), 41 deletions(-) diff --git a/configure b/configure index 52bc48f91..5928c7d59 100755 --- a/configure +++ b/configure @@ -757,7 +757,7 @@ fi PACKAGE=openafs -VERSION=1.4.0-rc1 +VERSION=1.4.0-rc3 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } diff --git a/configure-libafs b/configure-libafs index b053e4fe5..b394c2a84 100755 --- a/configure-libafs +++ b/configure-libafs @@ -757,7 +757,7 @@ fi PACKAGE=openafs-libafs -VERSION=1.4.0-rc1 +VERSION=1.4.0-rc3 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } diff --git a/configure-libafs.in b/configure-libafs.in index ea28a2e7c..213ced246 100644 --- a/configure-libafs.in +++ b/configure-libafs.in @@ -1,5 +1,5 @@ AC_INIT(src/libafs/Makefile.common.in) -AM_INIT_AUTOMAKE(openafs-libafs,1.4.0-rc1) +AM_INIT_AUTOMAKE(openafs-libafs,1.4.0-rc3) AC_CONFIG_HEADER(src/config/afsconfig.h) define(OPENAFS_CONFIGURE_LIBAFS) diff --git a/configure.in b/configure.in index e91c87d66..5a3b2b6a3 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ AC_INIT(src/config/stds.h) -AM_INIT_AUTOMAKE(openafs,1.4.0-rc1) +AM_INIT_AUTOMAKE(openafs,1.4.0-rc3) AC_CONFIG_HEADER(src/config/afsconfig.h) AC_PROG_CC diff --git a/debian/changelog b/debian/changelog index 0c352ab39..aa35e96fb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +openafs (1.4rc3-1) unstable; urgency=low + + * New upstream version. + + -- + openafs (1.4rc1-1) unstable; urgency=low * New upstream version. diff --git a/debian/rules b/debian/rules index ec0d39326..5bae255e8 100755 --- a/debian/rules +++ b/debian/rules @@ -42,7 +42,7 @@ LINTIAN_PACKAGES = openafs-dbserver openafs-client openafs-fileserver # These variable is used only by get-orig-source, which will normally only be # run by maintainers. -VERSION = 1.4.0-rc1 +VERSION = 1.4.0-rc3 UPSTREAM = /afs/grand.central.org/software/openafs/candidate/$(VERSION) # Download the upstream source and do the repackaging that we have to do for diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c index ddd73a6c4..491696fb8 100644 --- a/src/afs/LINUX/osi_vnodeops.c +++ b/src/afs/LINUX/osi_vnodeops.c @@ -22,7 +22,7 @@ #include "afs/param.h" RCSID - ("$Header: /cvs/openafs/src/afs/LINUX/osi_vnodeops.c,v 1.81.2.35 2005/08/19 15:33:28 shadow Exp $"); + ("$Header: /cvs/openafs/src/afs/LINUX/osi_vnodeops.c,v 1.81.2.36 2005/09/04 04:11:55 shadow Exp $"); #include "afs/sysincludes.h" #include "afsincludes.h" @@ -631,6 +631,7 @@ afs_linux_revalidate(struct dentry *dp) #endif AFS_GLOCK(); +#ifdef notyet /* Make this a fast path (no crref), since it's called so often. */ if (vcp->states & CStatd) { @@ -643,6 +644,7 @@ afs_linux_revalidate(struct dentry *dp) #endif return 0; } +#endif credp = crref(); code = afs_getattr(vcp, &vattr, credp); diff --git a/src/config/NTMakefile.amd64_w2k b/src/config/NTMakefile.amd64_w2k index 4f2c37da3..9185ca681 100644 --- a/src/config/NTMakefile.amd64_w2k +++ b/src/config/NTMakefile.amd64_w2k @@ -80,7 +80,7 @@ LIB = $(AFSDEV_LIB) #define used in WinNT/2000 installation and program version display AFSPRODUCT_VER_MAJOR=1 AFSPRODUCT_VER_MINOR=4 -AFSPRODUCT_VER_PATCH=0000 +AFSPRODUCT_VER_PATCH=0002 AFSPRODUCT_VER_BUILD=0 # For MSI installer, each major release should have a different GUID @@ -258,6 +258,10 @@ afscflags = $(afscflags) /G7 !ENDIF !ENDIF +!IF ("$(AFSIFS)" == "TRUE") +afscdefs = $(afscdefs) -DAFSIFS +!ENDIF + !IF ("$(AFSDEV_BUILDTYPE)" == "FREE") afscflags = $(afscflags) /Ox /Zi @@ -269,11 +273,9 @@ NODEBUG=1 cdebug = $(cdebug:-Z7=-Zi) # avoid annoying override warning (D4025) !IF ("$(AFSVER_CL)"=="1200") -afscdefs = $(afscdefs) -DDEBUG -afscflags = $(afscflags) /GZ +afscdefs = $(afscdefs) -DDEBUG /GZ !ELSE -afscdefs = $(afscdefs) -DDEBUG -afscflags = $(afscflags) /RTCs /RTCu +afscdefs = $(afscdefs) -DDEBUG /RTCs /RTCu !ENDIF !IFDEF _CRTDBG_MAP_ALLOC diff --git a/src/config/NTMakefile.i386_nt40 b/src/config/NTMakefile.i386_nt40 index 82e6c8712..5c54ac8d9 100644 --- a/src/config/NTMakefile.i386_nt40 +++ b/src/config/NTMakefile.i386_nt40 @@ -80,7 +80,7 @@ LIB = $(AFSDEV_LIB) #define used in WinNT/2000 installation and program version display AFSPRODUCT_VER_MAJOR=1 AFSPRODUCT_VER_MINOR=4 -AFSPRODUCT_VER_PATCH=0000 +AFSPRODUCT_VER_PATCH=0002 AFSPRODUCT_VER_BUILD=0 # For MSI installer, each major release should have a different GUID @@ -249,13 +249,17 @@ afscflags = $(afscflags) /GX !ENDIF !IF ("$(AFSVER_CL)"!="1200") -afscflags = $(afscflags) /GT /GS +afscdefs = $(afscdefs) /GT /GS #/Wp64 !IF ("$(AFSVER_CL)"!="1400") -afscflags = $(afscflags) /G7 +afscdefs = $(afscdefs) /G7 !ENDIF !ENDIF +!IF ("$(AFSIFS)" == "TRUE") +afscdefs = $(afscdefs) -DAFSIFS +!ENDIF + !IF ("$(AFSDEV_BUILDTYPE)" == "FREE") afscflags = $(afscflags) /Ox /Zi @@ -267,15 +271,15 @@ NODEBUG=1 cdebug = $(cdebug:-Z7=-Zi) # avoid annoying override warning (D4025) !IF ("$(AFSVER_CL)"=="1200") -afscdefs = $(afscdefs) -DDEBUG +afscdefs = $(afscdefs) -DDEBUG afscflags = $(afscflags) /GZ !ELSE -afscdefs = $(afscdefs) -DDEBUG +afscdefs = $(afscdefs) -DDEBUG afscflags = $(afscflags) /RTCs /RTCu !ENDIF !IFDEF _CRTDBG_MAP_ALLOC -afscflags = $(afscflags) -D_DEBUG -D_CRTDBG_MAP_ALLOC +afscdefs = $(afscdefs) -D_DEBUG -D_CRTDBG_MAP_ALLOC !ENDIF !UNDEF NODEBUG @@ -298,7 +302,7 @@ AFSDEV_WARNLEVEL = 3 afscflags = $(afscflags) /W$(AFSDEV_WARNLEVEL) # C/C++ compilation macros -C2OBJ = $(cc) /Fo$@ /Fd$*.pdb $(cflags) $(cdebug) $(cvarsdll) $(afscflags) $(afscdefs) /c +C2OBJ = $(cc) /Fo$@ /Fd$*.pdb $(cflags) $(cdebug) $(dafsifs) $(cvarsdll) $(afscflags) $(afscdefs) /c CPP2OBJ = $(C2OBJ) # Inference rules for building and installing targets # Compile .c files, from current directory to defined by OUT diff --git a/src/config/NTMakefile.i386_w2k b/src/config/NTMakefile.i386_w2k index 82e6c8712..171711ab0 100644 --- a/src/config/NTMakefile.i386_w2k +++ b/src/config/NTMakefile.i386_w2k @@ -78,9 +78,8 @@ INCLUDE = $(AFSDEV_INCLUDE) LIB = $(AFSDEV_LIB) #define used in WinNT/2000 installation and program version display -AFSPRODUCT_VER_MAJOR=1 AFSPRODUCT_VER_MINOR=4 -AFSPRODUCT_VER_PATCH=0000 +AFSPRODUCT_VER_PATCH=0002 AFSPRODUCT_VER_BUILD=0 # For MSI installer, each major release should have a different GUID @@ -256,6 +255,10 @@ afscflags = $(afscflags) /G7 !ENDIF !ENDIF +!IF ("$(AFSIFS)" == "TRUE") +afscdefs = $(afscdefs) -DAFSIFS +!ENDIF + !IF ("$(AFSDEV_BUILDTYPE)" == "FREE") afscflags = $(afscflags) /Ox /Zi @@ -267,11 +270,9 @@ NODEBUG=1 cdebug = $(cdebug:-Z7=-Zi) # avoid annoying override warning (D4025) !IF ("$(AFSVER_CL)"=="1200") -afscdefs = $(afscdefs) -DDEBUG -afscflags = $(afscflags) /GZ +afscdefs = $(afscdefs) -DDEBUG /GZ !ELSE -afscdefs = $(afscdefs) -DDEBUG -afscflags = $(afscflags) /RTCs /RTCu +afscdefs = $(afscdefs) -DDEBUG /RTCs /RTCu !ENDIF !IFDEF _CRTDBG_MAP_ALLOC diff --git a/src/config/NTMakefile.i386_win95 b/src/config/NTMakefile.i386_win95 index 9b81d2ca8..16dc95df1 100644 --- a/src/config/NTMakefile.i386_win95 +++ b/src/config/NTMakefile.i386_win95 @@ -36,7 +36,7 @@ APPVER = 4.0 !ENDIF #define used in Win9x installation and program version display -AFSPRODUCT_VERSION=1.3.60 +AFSPRODUCT_VERSION=0.0.00 CELLNAME_DEFAULT=Your Cell Name CELLSERVDB_INSTALL=CellServDB.GrandCentral CELLSERVDB_WEB=http://grand.central.org/dl/cellservdb/CellServDB diff --git a/src/rx/rx.c b/src/rx/rx.c index 8f0dc6df9..f06d35427 100644 --- a/src/rx/rx.c +++ b/src/rx/rx.c @@ -17,7 +17,7 @@ #endif RCSID - ("$Header: /cvs/openafs/src/rx/rx.c,v 1.58.2.20 2005/05/30 04:57:36 shadow Exp $"); + ("$Header: /cvs/openafs/src/rx/rx.c,v 1.58.2.22 2005/09/02 22:50:59 shadow Exp $"); #ifdef KERNEL #include "afs/sysincludes.h" @@ -1146,8 +1146,12 @@ rx_NewCall(register struct rx_connection *conn) /* Client is initially in send mode */ call->state = RX_STATE_ACTIVE; - call->mode = RX_MODE_SENDING; - + call->error = conn->error; + if (call->error) + call->mode = RX_MODE_ERROR; + else + call->mode = RX_MODE_SENDING; + /* remember start time for call in case we have hard dead time limit */ call->queueTime = queueTime; clock_GetTime(&call->startTime); @@ -2602,6 +2606,24 @@ rxi_ReceivePacket(register struct rx_packet *np, osi_socket socket, clock_GetTime(&call->queueTime); hzero(call->bytesSent); hzero(call->bytesRcvd); + /* + * If the number of queued calls exceeds the overload + * threshold then abort this call. + */ + if ((rx_BusyThreshold > 0) && (rx_nWaiting > rx_BusyThreshold)) { + struct rx_packet *tp; + + rxi_CallError(call, rx_BusyError); + tp = rxi_SendCallAbort(call, np, 1, 0); + MUTEX_EXIT(&call->lock); + MUTEX_ENTER(&conn->conn_data_lock); + conn->refCount--; + MUTEX_EXIT(&conn->conn_data_lock); + MUTEX_ENTER(&rx_stats_mutex); + rx_stats.nBusies++; + MUTEX_EXIT(&rx_stats_mutex); + return tp; + } rxi_KeepAliveOn(call); } else if (np->header.callNumber != currentCallNumber) { /* Wait until the transmit queue is idle before deciding diff --git a/src/shlibafsrpc/Makefile.in b/src/shlibafsrpc/Makefile.in index fa9210c2d..8a0c4b95d 100644 --- a/src/shlibafsrpc/Makefile.in +++ b/src/shlibafsrpc/Makefile.in @@ -31,8 +31,8 @@ FSINT = ../fsint DES = ../des COMERR = ../comerr UTIL = ../util -SYS = ../sys -LWP = ../lwp +SYS = ${srcdir}/../sys +LWP = ${srcdir}/../lwp SYSOBJS =\ syscall.o @@ -279,7 +279,7 @@ xdr_afsuuid.o: ${RX}/xdr_afsuuid.c # # $ what /opt/langtools/bin/pxdb32 # /opt/langtools/bin/pxdb32: -# HP92453-02 A.10.0A HP-UX SYMBOLIC DEBUGGER (PXDB) $Revision: 1.15.2.4 $ +# HP92453-02 A.10.0A HP-UX SYMBOLIC DEBUGGER (PXDB) $Revision: 1.15.2.5 $ # # The problem occurs when -g and -O are both used when compiling des.c. # The simplest way to work around the problem is to leave out either -g or -O. diff --git a/src/sys/pioctl_nt.c b/src/sys/pioctl_nt.c index c0aab038e..4267b462a 100644 --- a/src/sys/pioctl_nt.c +++ b/src/sys/pioctl_nt.c @@ -11,7 +11,7 @@ #include RCSID - ("$Header: /cvs/openafs/src/sys/pioctl_nt.c,v 1.18.2.10 2005/04/29 19:57:19 jaltman Exp $"); + ("$Header: /cvs/openafs/src/sys/pioctl_nt.c,v 1.18.2.11 2005/09/02 17:28:36 jaltman Exp $"); #include #include @@ -322,14 +322,16 @@ GetIoctlHandle(char *fileNamep, HANDLE * handlep) tbuffer[1] = ':'; strcpy(tbuffer + 2, SMB_IOCTL_FILENAME); } else if (fileNamep[0] == fileNamep[1] && - fileNamep[0] == '\\') + (fileNamep[0] == '\\' || fileNamep[0] == '/')) { int count = 0, i = 0; while (count < 4 && fileNamep[i]) { tbuffer[i] = fileNamep[i]; - if ( tbuffer[i++] == '\\' ) + if ( tbuffer[i] == '\\' || + tbuffer[i] == '/') count++; + i++; } if (fileNamep[i] == 0) tbuffer[i++] = '\\'; @@ -344,14 +346,16 @@ GetIoctlHandle(char *fileNamep, HANDLE * handlep) tbuffer[1] = ':'; strcpy(tbuffer + 2, SMB_IOCTL_FILENAME); } else if (curdir[0] == curdir[1] && - curdir[0] == '\\') + (curdir[0] == '\\' || curdir[0] == '/')) { int count = 0, i = 0; while (count < 4 && curdir[i]) { tbuffer[i] = curdir[i]; - if ( tbuffer[i++] == '\\' ) - count++; + if ( tbuffer[i] == '\\' || + tbuffer[i] == '/') + count++; + i++; } if (tbuffer[i] == 0) tbuffer[i++] = '\\'; @@ -691,6 +695,7 @@ fs_GetFullPath(char *pathp, char *outPathp, long outSize) int pathHasDrive; int doSwitch; char newPath[3]; + char *p; if (pathp[0] != 0 && pathp[1] == ':') { /* there's a drive letter there */ @@ -701,7 +706,8 @@ fs_GetFullPath(char *pathp, char *outPathp, long outSize) pathHasDrive = 0; } - if ( firstp[0] == '\\' && firstp[1] == '\\') { + if ( firstp[0] == '\\' && firstp[1] == '\\' || + firstp[0] == '/' && firstp[1] == '/') { /* UNC path - strip off the server and sharename */ int i, count; for ( i=2,count=2; count < 4 && firstp[i]; i++ ) { @@ -714,10 +720,18 @@ fs_GetFullPath(char *pathp, char *outPathp, long outSize) } else { strcpy(outPathp,&firstp[--i]); } + for (p=outPathp ;*p; p++) { + if (*p == '/') + *p = '\\'; + } return 0; } else if (firstp[0] == '\\' || firstp[0] == '/') { /* already an absolute pathname, just copy it back */ strcpy(outPathp, firstp); + for (p=outPathp ;*p; p++) { + if (*p == '/') + *p = '\\'; + } return 0; } @@ -747,7 +761,8 @@ fs_GetFullPath(char *pathp, char *outPathp, long outSize) GetCurrentDirectory(sizeof(tpath), tpath); if (tpath[1] == ':') strcpy(outPathp, tpath + 2); /* skip drive letter */ - else if ( tpath[0] == '\\' && tpath[1] == '\\') { + else if ( tpath[0] == '\\' && tpath[1] == '\\'|| + tpath[0] == '/' && tpath[1] == '/') { /* UNC path - strip off the server and sharename */ int i, count; for ( i=2,count=2; count < 4 && tpath[i]; i++ ) { @@ -778,6 +793,10 @@ fs_GetFullPath(char *pathp, char *outPathp, long outSize) SetCurrentDirectory(origPath); } + for (p=outPathp ;*p; p++) { + if (*p == '/') + *p = '\\'; + } return 0; } diff --git a/src/volser/volprocs.c b/src/volser/volprocs.c index fddf1bd65..3ad3a3657 100644 --- a/src/volser/volprocs.c +++ b/src/volser/volprocs.c @@ -11,7 +11,7 @@ #include RCSID - ("$Header: /cvs/openafs/src/volser/volprocs.c,v 1.34.2.3 2004/12/13 19:41:13 shadow Exp $"); + ("$Header: /cvs/openafs/src/volser/volprocs.c,v 1.34.2.4 2005/08/31 22:14:59 shadow Exp $"); #include #include @@ -2640,7 +2640,7 @@ SAFSVolSetIdsTypes(struct rx_call *acid, afs_int32 atid, char name[], afs_int32 code = VolSetIdsTypes(acid, atid, name, type, pId, cloneId, backupId); osi_auditU(acid, VS_SetIdTyEvent, code, AUD_LONG, atid, AUD_STR, name, - AUD_STR, type, AUD_LONG, pId, AUD_LONG, cloneId, AUD_LONG, + AUD_LONG, type, AUD_LONG, pId, AUD_LONG, cloneId, AUD_LONG, backupId, AUD_END); return code; } -- 2.39.5