]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/transaction.c
tdb2: move file operations into separate structure
[ccan] / ccan / tdb2 / transaction.c
index a143ee853c67f102407fc461912c6373ec91f79b..3c17bc7dd7cf808c4687880ceaea2feadeedda7f 100644 (file)
@@ -430,7 +430,7 @@ static enum TDB_ERROR transaction_sync(struct tdb_context *tdb,
                return TDB_SUCCESS;
        }
 
-       if (fsync(tdb->fd) != 0) {
+       if (fsync(tdb->file->fd) != 0) {
                return tdb_logerr(tdb, TDB_ERR_IO, TDB_LOG_ERROR,
                                  "tdb_transaction: fsync failed: %s",
                                  strerror(errno));
@@ -495,8 +495,8 @@ static void _tdb_transaction_cancel(struct tdb_context *tdb)
                }
        }
 
-       if (tdb->allrecord_lock.count)
-               tdb_allrecord_unlock(tdb, tdb->allrecord_lock.ltype);
+       if (tdb->file->allrecord_lock.count)
+               tdb_allrecord_unlock(tdb, tdb->file->allrecord_lock.ltype);
 
        /* restore the normal io methods */
        tdb->methods = tdb->transaction->io_methods;
@@ -745,11 +745,12 @@ static void set_recovery_header(struct tdb_recovery_record *rec,
 static enum TDB_ERROR transaction_setup_recovery(struct tdb_context *tdb,
                                                 tdb_off_t *magic_offset)
 {
-       tdb_len_t recovery_size;
+       /* Initialized for GCC's 4.4.5 overzealous uninitialized warnings. */
+       tdb_len_t recovery_size = 0;
+       tdb_off_t recovery_offset = 0, recovery_max_size = 0;
        unsigned char *data, *p;
        const struct tdb_methods *methods = tdb->transaction->io_methods;
        struct tdb_recovery_record *rec;
-       tdb_off_t recovery_offset, recovery_max_size;
        tdb_off_t old_map_size = tdb->transaction->old_map_size;
        uint64_t magic, tailer;
        int i;