aboutsummaryrefslogtreecommitdiff
path: root/src/gdbmstore.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gdbmstore.c')
-rw-r--r--src/gdbmstore.c10
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));

Return to:

Send suggestions and report system problems to the System administrator.