comparison src/os/unix/ngx_files.c @ 3157:a2c1b4f74ea7

log file name for read/write errors
author Igor Sysoev <igor@sysoev.ru>
date Thu, 24 Sep 2009 20:04:10 +0000
parents ceef364208c8
children 34cbd6e86218
comparison
equal deleted inserted replaced
3156:55f006d944ba 3157:a2c1b4f74ea7
20 20
21 n = pread(file->fd, buf, size, offset); 21 n = pread(file->fd, buf, size, offset);
22 22
23 if (n == -1) { 23 if (n == -1) {
24 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, 24 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno,
25 "pread() failed, file \"%s\"", file->name.data); 25 "pread() \"%s\" failed", file->name.data);
26 return NGX_ERROR; 26 return NGX_ERROR;
27 } 27 }
28 28
29 #else 29 #else
30 30
31 if (file->sys_offset != offset) { 31 if (file->sys_offset != offset) {
32 if (lseek(file->fd, offset, SEEK_SET) == -1) { 32 if (lseek(file->fd, offset, SEEK_SET) == -1) {
33 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "lseek() failed"); 33 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno,
34 "lseek() \"%s\" failed", file->name.data);
34 return NGX_ERROR; 35 return NGX_ERROR;
35 } 36 }
36 37
37 file->sys_offset = offset; 38 file->sys_offset = offset;
38 } 39 }
39 40
40 n = read(file->fd, buf, size); 41 n = read(file->fd, buf, size);
41 42
42 if (n == -1) { 43 if (n == -1) {
43 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "read() failed"); 44 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno,
45 "read() \"%s\" failed", file->name.data);
44 return NGX_ERROR; 46 return NGX_ERROR;
45 } 47 }
46 48
47 file->sys_offset += n; 49 file->sys_offset += n;
48 50
65 #if (NGX_HAVE_PWRITE) 67 #if (NGX_HAVE_PWRITE)
66 68
67 n = pwrite(file->fd, buf, size, offset); 69 n = pwrite(file->fd, buf, size, offset);
68 70
69 if (n == -1) { 71 if (n == -1) {
70 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "pwrite() failed"); 72 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno,
73 "pwrite() \"%s\" failed", file->name.data);
71 return NGX_ERROR; 74 return NGX_ERROR;
72 } 75 }
73 76
74 if ((size_t) n != size) { 77 if ((size_t) n != size) {
75 ngx_log_error(NGX_LOG_CRIT, file->log, 0, 78 ngx_log_error(NGX_LOG_CRIT, file->log, 0,
76 "pwrite() has written only %z of %uz", n, size); 79 "pwrite() \"%s\" has written only %z of %uz",
80 file->name.data, n, size);
77 return NGX_ERROR; 81 return NGX_ERROR;
78 } 82 }
79 83
80 #else 84 #else
81 85
82 if (file->sys_offset != offset) { 86 if (file->sys_offset != offset) {
83 if (lseek(file->fd, offset, SEEK_SET) == -1) { 87 if (lseek(file->fd, offset, SEEK_SET) == -1) {
84 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "lseek() failed"); 88 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno,
89 "lseek() \"%s\" failed", file->name.data);
85 return NGX_ERROR; 90 return NGX_ERROR;
86 } 91 }
87 92
88 file->sys_offset = offset; 93 file->sys_offset = offset;
89 } 94 }
90 95
91 n = write(file->fd, buf, size); 96 n = write(file->fd, buf, size);
92 97
93 if (n == -1) { 98 if (n == -1) {
94 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "write() failed"); 99 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno,
100 "write() \"%s\" failed", file->name.data);
95 return NGX_ERROR; 101 return NGX_ERROR;
96 } 102 }
97 103
98 if ((size_t) n != size) { 104 if ((size_t) n != size) {
99 ngx_log_error(NGX_LOG_CRIT, file->log, 0, 105 ngx_log_error(NGX_LOG_CRIT, file->log, 0,
100 "write() has written only %z of %uz", n, size); 106 "write() \"%s\" has written only %z of %uz",
107 file->name.data, n, size);
101 return NGX_ERROR; 108 return NGX_ERROR;
102 } 109 }
103 110
104 file->sys_offset += n; 111 file->sys_offset += n;
105 112
189 } 196 }
190 197
191 if (file->sys_offset != offset) { 198 if (file->sys_offset != offset) {
192 if (lseek(file->fd, offset, SEEK_SET) == -1) { 199 if (lseek(file->fd, offset, SEEK_SET) == -1) {
193 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, 200 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno,
194 "lseek() failed"); 201 "lseek() \"%s\" failed", file->name.data);
195 return NGX_ERROR; 202 return NGX_ERROR;
196 } 203 }
197 204
198 file->sys_offset = offset; 205 file->sys_offset = offset;
199 } 206 }
200 207
201 n = writev(file->fd, vec.elts, vec.nelts); 208 n = writev(file->fd, vec.elts, vec.nelts);
202 209
203 if (n == -1) { 210 if (n == -1) {
204 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, 211 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno,
205 "writev() failed"); 212 "writev() \"%s\" failed", file->name.data);
206 return NGX_ERROR; 213 return NGX_ERROR;
207 } 214 }
208 215
209 if ((size_t) n != size) { 216 if ((size_t) n != size) {
210 ngx_log_error(NGX_LOG_CRIT, file->log, 0, 217 ngx_log_error(NGX_LOG_CRIT, file->log, 0,
211 "writev() has written only %z of %uz", n, size); 218 "writev() \"%s\" has written only %z of %uz",
219 file->name.data, n, size);
212 return NGX_ERROR; 220 return NGX_ERROR;
213 } 221 }
214 222
215 file->sys_offset += n; 223 file->sys_offset += n;
216 file->offset += n; 224 file->offset += n;