Annotation of /trunk/glibc/patches/glibc-2.15-negative-result-cache.patch
Parent Directory | Revision Log
Revision 1806 -
(hide annotations)
(download)
Tue Jun 12 12:33:27 2012 UTC (12 years, 3 months ago) by niro
File size: 5653 byte(s)
Tue Jun 12 12:33:27 2012 UTC (12 years, 3 months ago) by niro
File size: 5653 byte(s)
-added patches for 2.15-r1
1 | niro | 1806 | diff --git a/nscd/aicache.c b/nscd/aicache.c |
2 | index aaaf80d..e1f1244 100644 | ||
3 | --- a/nscd/aicache.c | ||
4 | +++ b/nscd/aicache.c | ||
5 | @@ -1,5 +1,5 @@ | ||
6 | /* Cache handling for host lookup. | ||
7 | - Copyright (C) 2004-2008, 2009, 2010, 2011 Free Software Foundation, Inc. | ||
8 | + Copyright (C) 2004-2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. | ||
9 | This file is part of the GNU C Library. | ||
10 | Contributed by Ulrich Drepper <drepper@redhat.com>, 2004. | ||
11 | |||
12 | @@ -514,8 +514,9 @@ next_nip: | ||
13 | if (fd != -1) | ||
14 | TEMP_FAILURE_RETRY (send (fd, ¬found, total, MSG_NOSIGNAL)); | ||
15 | |||
16 | - /* If we cannot permanently store the result, so be it. */ | ||
17 | - if (__builtin_expect (db->negtimeout == 0, 0)) | ||
18 | + /* If we have a transient error or cannot permanently store the | ||
19 | + result, so be it. */ | ||
20 | + if (rc4 == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) | ||
21 | { | ||
22 | /* Mark the old entry as obsolete. */ | ||
23 | if (dh != NULL) | ||
24 | diff --git a/nscd/grpcache.c b/nscd/grpcache.c | ||
25 | index e9607c6..a698f36 100644 | ||
26 | --- a/nscd/grpcache.c | ||
27 | +++ b/nscd/grpcache.c | ||
28 | @@ -1,5 +1,5 @@ | ||
29 | /* Cache handling for group lookup. | ||
30 | - Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc. | ||
31 | + Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc. | ||
32 | This file is part of the GNU C Library. | ||
33 | Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. | ||
34 | |||
35 | @@ -120,8 +120,9 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req, | ||
36 | else | ||
37 | written = total; | ||
38 | |||
39 | - /* If we cannot permanently store the result, so be it. */ | ||
40 | - if (db->negtimeout == 0) | ||
41 | + /* If we have a transient error or cannot permanently store | ||
42 | + the result, so be it. */ | ||
43 | + if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) | ||
44 | { | ||
45 | /* Mark the old entry as obsolete. */ | ||
46 | if (dh != NULL) | ||
47 | diff --git a/nscd/hstcache.c b/nscd/hstcache.c | ||
48 | index 4d68ade..c72feaa 100644 | ||
49 | --- a/nscd/hstcache.c | ||
50 | +++ b/nscd/hstcache.c | ||
51 | @@ -1,5 +1,5 @@ | ||
52 | /* Cache handling for host lookup. | ||
53 | - Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc. | ||
54 | + Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc. | ||
55 | This file is part of the GNU C Library. | ||
56 | Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. | ||
57 | |||
58 | @@ -141,8 +141,9 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req, | ||
59 | MSG_NOSIGNAL)) != total) | ||
60 | all_written = false; | ||
61 | |||
62 | - /* If we cannot permanently store the result, so be it. */ | ||
63 | - if (__builtin_expect (db->negtimeout == 0, 0)) | ||
64 | + /* If we have a transient error or cannot permanently store | ||
65 | + the result, so be it. */ | ||
66 | + if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) | ||
67 | { | ||
68 | /* Mark the old entry as obsolete. */ | ||
69 | if (dh != NULL) | ||
70 | diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c | ||
71 | index 4ac9942..2019991 100644 | ||
72 | --- a/nscd/initgrcache.c | ||
73 | +++ b/nscd/initgrcache.c | ||
74 | @@ -1,5 +1,5 @@ | ||
75 | /* Cache handling for host lookup. | ||
76 | - Copyright (C) 2004-2006, 2008, 2009, 2011 Free Software Foundation, Inc. | ||
77 | + Copyright (C) 2004-2006, 2008, 2009, 2011, 2012 Free Software Foundation, Inc. | ||
78 | This file is part of the GNU C Library. | ||
79 | Contributed by Ulrich Drepper <drepper@redhat.com>, 2004. | ||
80 | |||
81 | @@ -202,8 +202,9 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req, | ||
82 | written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, | ||
83 | MSG_NOSIGNAL)); | ||
84 | |||
85 | - /* If we cannot permanently store the result, so be it. */ | ||
86 | - if (__builtin_expect (db->negtimeout == 0, 0)) | ||
87 | + /* If we have a transient error or cannot permanently store | ||
88 | + the result, so be it. */ | ||
89 | + if (all_tryagain || __builtin_expect (db->negtimeout == 0, 0)) | ||
90 | { | ||
91 | /* Mark the old entry as obsolete. */ | ||
92 | if (dh != NULL) | ||
93 | diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c | ||
94 | index 49e130c..e2ba09d 100644 | ||
95 | --- a/nscd/pwdcache.c | ||
96 | +++ b/nscd/pwdcache.c | ||
97 | @@ -1,5 +1,5 @@ | ||
98 | /* Cache handling for passwd lookup. | ||
99 | - Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc. | ||
100 | + Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc. | ||
101 | This file is part of the GNU C Library. | ||
102 | Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. | ||
103 | |||
104 | @@ -124,8 +124,9 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req, | ||
105 | written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, | ||
106 | MSG_NOSIGNAL)); | ||
107 | |||
108 | - /* If we cannot permanently store the result, so be it. */ | ||
109 | - if (__builtin_expect (db->negtimeout == 0, 0)) | ||
110 | + /* If we have a transient error or cannot permanently store | ||
111 | + the result, so be it. */ | ||
112 | + if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) | ||
113 | { | ||
114 | /* Mark the old entry as obsolete. */ | ||
115 | if (dh != NULL) | ||
116 | diff --git a/nscd/servicescache.c b/nscd/servicescache.c | ||
117 | index d3d5dce..a6337e3 100644 | ||
118 | --- a/nscd/servicescache.c | ||
119 | +++ b/nscd/servicescache.c | ||
120 | @@ -1,5 +1,5 @@ | ||
121 | /* Cache handling for services lookup. | ||
122 | - Copyright (C) 2007, 2008, 2009, 2011 Free Software Foundation, Inc. | ||
123 | + Copyright (C) 2007, 2008, 2009, 2011, 2012 Free Software Foundation, Inc. | ||
124 | This file is part of the GNU C Library. | ||
125 | Contributed by Ulrich Drepper <drepper@drepper.com>, 2007. | ||
126 | |||
127 | @@ -108,8 +108,9 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req, | ||
128 | written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, | ||
129 | MSG_NOSIGNAL)); | ||
130 | |||
131 | - /* If we cannot permanently store the result, so be it. */ | ||
132 | - if (__builtin_expect (db->negtimeout == 0, 0)) | ||
133 | + /* If we have a transient error or cannot permanently store | ||
134 | + the result, so be it. */ | ||
135 | + if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) | ||
136 | { | ||
137 | /* Mark the old entry as obsolete. */ | ||
138 | if (dh != NULL) |