forked from rpms/glibc
		
	2.8.90-7
This commit is contained in:
		
							parent
							
								
									1c91d4268d
								
							
						
					
					
						commit
						975cdd1f9d
					
				| @ -1,2 +1,2 @@ | |||||||
| glibc-20080612T1619.tar.bz2 | glibc-20080613T1601.tar.bz2 | ||||||
| glibc-fedora-20080612T1619.tar.bz2 | glibc-fedora-20080613T1601.tar.bz2 | ||||||
|  | |||||||
| @ -2315,3 +2315,79 @@ | |||||||
|   |   | ||||||
|  	cfi_startproc; |  	cfi_startproc; | ||||||
|  PSEUDO_END (BP_SYM (__clone)) |  PSEUDO_END (BP_SYM (__clone)) | ||||||
|  | --- libc/nscd/connections.c	12 Jun 2008 22:39:35 -0000	1.113
 | ||||||
|  | +++ libc/nscd/connections.c	13 Jun 2008 16:30:09 -0000	1.114
 | ||||||
|  | @@ -51,6 +51,7 @@
 | ||||||
|  |  #include "nscd.h" | ||||||
|  |  #include "dbg_log.h" | ||||||
|  |  #include "selinux.h" | ||||||
|  | +#include <resolv/resolv.h>
 | ||||||
|  |  #ifdef HAVE_SENDFILE | ||||||
|  |  # include <kernel-features.h> | ||||||
|  |  #endif | ||||||
|  | @@ -228,6 +229,9 @@ static int sock;
 | ||||||
|  |  #ifdef HAVE_INOTIFY | ||||||
|  |  /* Inotify descriptor.  */ | ||||||
|  |  static int inotify_fd = -1; | ||||||
|  | +
 | ||||||
|  | +/* Watch descriptor for resolver configuration file.  */
 | ||||||
|  | +static int resolv_conf_descr = -1;
 | ||||||
|  |  #endif | ||||||
|  |   | ||||||
|  |  /* Number of times clients had to wait.  */ | ||||||
|  | @@ -824,7 +828,7 @@ cannot set socket to close on exec: %s; 
 | ||||||
|  |  	if (dbs[cnt].check_file) | ||||||
|  |  	  { | ||||||
|  |  #ifdef HAVE_INOTIFY | ||||||
|  | -	    if (inotify_fd == -1
 | ||||||
|  | +	    if (inotify_fd < 0
 | ||||||
|  |  		|| (dbs[cnt].inotify_descr | ||||||
|  |  		    = inotify_add_watch (inotify_fd, dbs[cnt].filename, | ||||||
|  |  					 IN_DELETE_SELF | IN_MODIFY)) < 0) | ||||||
|  | @@ -845,6 +849,14 @@ cannot set socket to close on exec: %s; 
 | ||||||
|  |  		  dbs[cnt].file_mtime = st.st_mtime; | ||||||
|  |  	      } | ||||||
|  |  	  } | ||||||
|  | +
 | ||||||
|  | +#ifdef HAVE_INOTIFY
 | ||||||
|  | +	if (cnt == hstdb && inotify_fd >= -1)
 | ||||||
|  | +	  /* We also monitor the resolver configuration file.  */
 | ||||||
|  | +	  resolv_conf_descr = inotify_add_watch (inotify_fd,
 | ||||||
|  | +						 _PATH_RESCONF,
 | ||||||
|  | +						 IN_DELETE_SELF | IN_MODIFY);
 | ||||||
|  | +#endif
 | ||||||
|  |        } | ||||||
|  |   | ||||||
|  |    /* Create the socket.  */ | ||||||
|  | @@ -1798,6 +1810,7 @@ main_loop_poll (void)
 | ||||||
|  |  	    { | ||||||
|  |  	      if (conns[1].revents != 0) | ||||||
|  |  		{ | ||||||
|  | +		  bool done[lastdb] = { false, };
 | ||||||
|  |  		  union | ||||||
|  |  		  { | ||||||
|  |  		    struct inotify_event i; | ||||||
|  | @@ -1810,12 +1823,21 @@ main_loop_poll (void)
 | ||||||
|  |  		    { | ||||||
|  |  		      /* Check which of the files changed.  */ | ||||||
|  |  		      for (size_t dbcnt = 0; dbcnt < lastdb; ++dbcnt) | ||||||
|  | -			if (inev.i.wd == dbs[dbcnt].inotify_descr)
 | ||||||
|  | +			if (!done[dbcnt]
 | ||||||
|  | +			    && (inev.i.wd == dbs[dbcnt].inotify_descr
 | ||||||
|  | +				|| (dbcnt == hstdb
 | ||||||
|  | +				    && inev.i.wd == resolv_conf_descr)))
 | ||||||
|  |  			  { | ||||||
|  | -			    pthread_mutex_trylock (&dbs[dbcnt].prune_lock);
 | ||||||
|  | +			    if (dbcnt == hstdb
 | ||||||
|  | +				&& inev.i.wd == resolv_conf_descr)
 | ||||||
|  | +			      res_init ();
 | ||||||
|  | +
 | ||||||
|  | +			    pthread_mutex_lock (&dbs[dbcnt].prune_lock);
 | ||||||
|  |  			    dbs[dbcnt].clear_cache = 1; | ||||||
|  |  			    pthread_mutex_unlock (&dbs[dbcnt].prune_lock); | ||||||
|  |  			    pthread_cond_signal (&dbs[dbcnt].prune_cond); | ||||||
|  | +
 | ||||||
|  | +			    done[dbcnt] = true;
 | ||||||
|  |  			    break; | ||||||
|  |  			  } | ||||||
|  |  		    } | ||||||
|  | |||||||
							
								
								
									
										12
									
								
								glibc.spec
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								glibc.spec
									
									
									
									
									
								
							| @ -1,6 +1,6 @@ | |||||||
| %define glibcdate 20080612T1619 | %define glibcdate 20080613T1601 | ||||||
| %define glibcname glibc | %define glibcname glibc | ||||||
| %define glibcsrcdir glibc-20080612T1619 | %define glibcsrcdir glibc-20080613T1601 | ||||||
| %define glibc_release_tarballs 0 | %define glibc_release_tarballs 0 | ||||||
| %define run_glibc_tests 1 | %define run_glibc_tests 1 | ||||||
| %define auxarches i586 i686 athlon sparcv9v sparc64v alphaev6 | %define auxarches i586 i686 athlon sparcv9v sparc64v alphaev6 | ||||||
| @ -23,7 +23,7 @@ | |||||||
| Summary: The GNU libc libraries | Summary: The GNU libc libraries | ||||||
| Name: glibc | Name: glibc | ||||||
| Version: 2.8.90 | Version: 2.8.90 | ||||||
| Release: 6 | Release: 7 | ||||||
| # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries. | # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries. | ||||||
| # Things that are linked directly into dynamically linked programs | # Things that are linked directly into dynamically linked programs | ||||||
| # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional | # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional | ||||||
| @ -980,6 +980,12 @@ rm -f *.filelist* | |||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Fri Jun 13 2008 Jakub Jelinek <jakub@redhat.com> 2.8.90-7 | ||||||
|  | - update from trunk | ||||||
|  |   - avoid *lround* on ppc* clobbering cr3/cr4 registers (#450790) | ||||||
|  |   - further nscd fixes (#450704) | ||||||
|  |   - use inotify in nscd to watch files | ||||||
|  | 
 | ||||||
| * Thu Jun 12 2008 Jakub Jelinek <jakub@redhat.com> 2.8.90-6 | * Thu Jun 12 2008 Jakub Jelinek <jakub@redhat.com> 2.8.90-6 | ||||||
| - update from trunk | - update from trunk | ||||||
|   - nscd fixes (#450704) |   - nscd fixes (#450704) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user