}
#if !defined(__MACOSX__) && !(defined(__APPLE__) && defined(__MACH__))
- auto_free char *mdb_datafile = kr_strcatdup(2, path, "/data.mdb");
- int fd = open(mdb_datafile, O_RDWR);
- if (fd == -1) {
+ mdb_filehandle_t fd = -1;
+ ret = mdb_env_get_fd(env->env, &fd);
+ if (ret != MDB_SUCCESS) {
mdb_txn_abort(txn);
stats->close++;
mdb_env_close(env->env);
- return kr_error(errno);
+ return lmdb_error(ret);
}
ret = posix_fallocate(fd, 0, mapsize);
mdb_txn_abort(txn);
stats->close++;
mdb_env_close(env->env);
- close(fd);
return kr_error(ret);
}
- close(fd);
#endif
stats->commit++;