]> git.sur5r.net Git - openldap/commitdiff
Fix db_stat stuff
authorHoward Chu <hyc@symas.com>
Fri, 1 Jul 2011 13:25:36 +0000 (06:25 -0700)
committerHoward Chu <hyc@symas.com>
Thu, 1 Sep 2011 22:53:33 +0000 (15:53 -0700)
libraries/libmdb/mdb.c

index 21bcbaba1e5d9b7be4555ce31a4016a29e634b8b..147274f3879ed65ca406e0fcaebef188ac4210bc 100644 (file)
@@ -221,15 +221,6 @@ struct MDB_txn {
        unsigned int             mt_flags;
 };
 
-/* Must be same as MDB_db, minus md_root/md_stat */
-typedef struct MDB_db0 {
-       unsigned int    md_flags;
-       MDB_cmp_func    *md_cmp;                /* user compare function */
-       MDB_rel_func    *md_rel;                /* user relocate function */
-       MDB_db                  *md_parent;             /* parent tree */
-       MDB_env                 *md_env;
-} MDB_db0;
-
 struct MDB_db {
        unsigned int    md_flags;
        MDB_cmp_func    *md_cmp;                /* user compare function */
@@ -249,7 +240,7 @@ struct MDB_env {
        char            *me_path;
        char *me_map;
        MDB_txninfo     *me_txns;
-       MDB_db0         me_db;          /* first DB, overlaps with meta */
+       MDB_db          me_db;          /* first DB */
        MDB_meta        me_meta;
        MDB_txn *me_txn;                /* current write transaction */
        size_t          me_mapsize;
@@ -2457,6 +2448,9 @@ int mdb_stat(MDB_db *db, MDB_stat **arg)
        if (db == NULL || arg == NULL)
                return EINVAL;
 
+       if (!db->md_parent)
+               bcopy(&db->md_env->me_meta.mm_stat, &db->md_stat, sizeof(db->md_stat));
+
        *arg = &db->md_stat;
 
        return MDB_SUCCESS;