diff options
Diffstat (limited to 'src/gdbmstore.c')
-rw-r--r-- | src/gdbmstore.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/gdbmstore.c b/src/gdbmstore.c index 2ed1616..6b498b2 100644 --- a/src/gdbmstore.c +++ b/src/gdbmstore.c | |||
@@ -157,37 +157,33 @@ gdbm_store (GDBM_FILE dbf, datum key, datum content, int flags) | |||
157 | /* Update current bucket data pointer and sizes. */ | 157 | /* Update current bucket data pointer and sizes. */ |
158 | dbf->bucket->h_table[elem_loc].data_pointer = file_adr; | 158 | dbf->bucket->h_table[elem_loc].data_pointer = file_adr; |
159 | dbf->bucket->h_table[elem_loc].key_size = key.dsize; | 159 | dbf->bucket->h_table[elem_loc].key_size = key.dsize; |
160 | dbf->bucket->h_table[elem_loc].data_size = content.dsize; | 160 | dbf->bucket->h_table[elem_loc].data_size = content.dsize; |
161 | 161 | ||
162 | /* Write the data to the file. */ | 162 | /* Write the data to the file. */ |
163 | file_pos = GDBM_DEBUG_OVERRIDE ("gdbm_store:seek-failure", | 163 | file_pos = __lseek (dbf, file_adr, SEEK_SET); |
164 | __lseek (dbf, file_adr, SEEK_SET)); | ||
165 | if (file_pos != file_adr) | 164 | if (file_pos != file_adr) |
166 | { | 165 | { |
167 | GDBM_DEBUG (GDBM_DEBUG_STORE|GDBM_DEBUG_ERR, | 166 | GDBM_DEBUG (GDBM_DEBUG_STORE|GDBM_DEBUG_ERR, |
168 | "%s: lseek: %s", dbf->name, strerror (errno)); | 167 | "%s: lseek: %s", dbf->name, strerror (errno)); |
169 | GDBM_SET_ERRNO2 (dbf, GDBM_FILE_SEEK_ERROR, TRUE, GDBM_DEBUG_STORE); | 168 | GDBM_SET_ERRNO2 (dbf, GDBM_FILE_SEEK_ERROR, TRUE, GDBM_DEBUG_STORE); |
170 | _gdbm_fatal (dbf, _("lseek error")); | 169 | _gdbm_fatal (dbf, _("lseek error")); |
171 | return -1; | 170 | return -1; |
172 | } | 171 | } |
173 | 172 | ||
174 | rc = GDBM_DEBUG_OVERRIDE ("gdbm_store:write-1-failure", | 173 | rc = _gdbm_full_write (dbf, key.dptr, key.dsize); |
175 | _gdbm_full_write (dbf, key.dptr, key.dsize)); | ||
176 | if (rc) | 174 | if (rc) |
177 | { | 175 | { |
178 | GDBM_DEBUG (GDBM_DEBUG_STORE|GDBM_DEBUG_ERR, | 176 | GDBM_DEBUG (GDBM_DEBUG_STORE|GDBM_DEBUG_ERR, |
179 | "%s: error writing key: %s", | 177 | "%s: error writing key: %s", |
180 | dbf->name, gdbm_db_strerror (dbf)); | 178 | dbf->name, gdbm_db_strerror (dbf)); |
181 | _gdbm_fatal (dbf, gdbm_db_strerror (dbf)); | 179 | _gdbm_fatal (dbf, gdbm_db_strerror (dbf)); |
182 | return -1; | 180 | return -1; |
183 | } | 181 | } |
184 | 182 | ||
185 | rc = GDBM_DEBUG_OVERRIDE ("gdbm_store:write-2-failure", | 183 | rc = _gdbm_full_write (dbf, content.dptr, content.dsize); |
186 | _gdbm_full_write (dbf, | ||
187 | content.dptr, content.dsize)); | ||
188 | if (rc) | 184 | if (rc) |
189 | { | 185 | { |
190 | GDBM_DEBUG (GDBM_DEBUG_STORE|GDBM_DEBUG_ERR, | 186 | GDBM_DEBUG (GDBM_DEBUG_STORE|GDBM_DEBUG_ERR, |
191 | "%s: error writing content: %s", | 187 | "%s: error writing content: %s", |
192 | dbf->name, gdbm_db_strerror (dbf)); | 188 | dbf->name, gdbm_db_strerror (dbf)); |
193 | _gdbm_fatal (dbf, gdbm_db_strerror (dbf)); | 189 | _gdbm_fatal (dbf, gdbm_db_strerror (dbf)); |