rpms/autofs/F-7 autofs-5.0.1-hi-res-time.patch, NONE, 1.1 autofs.spec, 1.208, 1.209

Ian Kent (iankent) fedora-extras-commits at redhat.com
Wed Jul 18 11:54:56 UTC 2007


Author: iankent

Update of /cvs/pkgs/rpms/autofs/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv27577

Modified Files:
	autofs.spec 
Added Files:
	autofs-5.0.1-hi-res-time.patch 
Log Message:
* Wed Jul 18 2007 Ian Kent <ikent at redhat.com> - 5.0.1-19
- fix wait time resolution in alarm and state queue handlers (bz 247711).


autofs-5.0.1-hi-res-time.patch:

--- NEW FILE autofs-5.0.1-hi-res-time.patch ---
--- autofs-5.0.1/daemon/state.c.hi-res-time	2007-07-17 22:29:23.000000000 +0800
+++ autofs-5.0.1/daemon/state.c	2007-07-17 22:29:59.000000000 +0800
@@ -894,6 +894,7 @@ static void *st_queue_handler(void *arg)
 	struct list_head *head;
 	struct list_head *p;
 	struct timespec wait;
+	struct timeval now;
 	int status, ret;
 
 	st_mutex_lock();
@@ -904,8 +905,9 @@ static void *st_queue_handler(void *arg)
 		 * entry is added.
 		 */
 		head = &state_queue;
-		wait.tv_sec = time(NULL) + 1;
-		wait.tv_nsec = 0;
+		gettimeofday(&now, NULL);
+		wait.tv_sec = now.tv_sec + 1;
+		wait.tv_nsec = now.tv_usec * 1000;
 
 		while (list_empty(head)) {
 			status = pthread_cond_timedwait(&cond, &mutex, &wait);
@@ -939,8 +941,9 @@ static void *st_queue_handler(void *arg)
 		}
 
 		while (1) {
-			wait.tv_sec = time(NULL) + 1;
-			wait.tv_nsec = 0;
+			gettimeofday(&now, NULL);
+			wait.tv_sec = now.tv_sec + 1;
+			wait.tv_nsec = now.tv_usec * 1000;
 
 			signaled = 0;
 			while (!signaled) {
--- autofs-5.0.1/lib/alarm.c.hi-res-time	2007-07-17 22:29:23.000000000 +0800
+++ autofs-5.0.1/lib/alarm.c	2007-07-17 22:32:06.000000000 +0800
@@ -178,6 +178,7 @@ static void *alarm_handler(void *arg)
 
 	while (1) {
 		struct alarm *current;
+		struct timeval usecs;
 
 		/*
 		 * If the alarm list is empty, wait until an alarm is
@@ -215,8 +216,9 @@ static void *alarm_handler(void *arg)
 			continue;
 		}
 
+		gettimeofday(&usecs, NULL);
 		expire.tv_sec = current->time;
-		expire.tv_nsec = 0;
+		expire.tv_nsec = usecs.tv_usec * 1000;
 
 		while (1) {
 			struct autofs_point *ap;


Index: autofs.spec
===================================================================
RCS file: /cvs/pkgs/rpms/autofs/F-7/autofs.spec,v
retrieving revision 1.208
retrieving revision 1.209
diff -u -r1.208 -r1.209
--- autofs.spec	16 Jul 2007 12:42:16 -0000	1.208
+++ autofs.spec	18 Jul 2007 11:54:23 -0000	1.209
@@ -4,7 +4,7 @@
 Summary: A tool for automatically mounting and unmounting filesystems
 Name: autofs
 Version: 5.0.1
-Release: 18
+Release: 19
 Epoch: 1
 License: GPL
 Group: System Environment/Daemons
@@ -32,6 +32,7 @@
 Patch20: autofs-5.0.1-alarm-deadlock.patch
 Patch21: autofs-5.0.1-fix-offset-dir-create.patch
 Patch22: autofs-5.0.2-quote-exports.patch
+Patch23: autofs-5.0.1-hi-res-time.patch
 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: autoconf, hesiod-devel, openldap-devel, bison, flex, libxml2-devel, cyrus-sasl-devel, openssl-devel
 Conflicts: kernel < 2.6.17
@@ -95,6 +96,7 @@
 %patch20 -p1
 %patch21 -p1
 %patch22 -p1
+%patch23 -p1
 
 %build
 #CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=/usr --libdir=%{_libdir}
@@ -147,6 +149,9 @@
 %{_libdir}/autofs/
 
 %changelog
+* Wed Jul 18 2007 Ian Kent <ikent at redhat.com> - 5.0.1-19
+- fix wait time resolution in alarm and state queue handlers (bz 247711).
+
 * Mon Jul 16 2007 Ian Kent <ikent at redhat.com> - 5.0.1-18
 - correct man page of patch which added mount options append control.
 




More information about the scm-commits mailing list