|
|
@ -2206,14 +2206,14 @@ mdb_page_flush(MDB_txn *txn) |
|
|
|
MDB_ID2L dl = txn->mt_u.dirty_list; |
|
|
|
MDB_ID2L dl = txn->mt_u.dirty_list; |
|
|
|
unsigned psize = env->me_psize; |
|
|
|
unsigned psize = env->me_psize; |
|
|
|
int i, pagecount = dl[0].mid, rc; |
|
|
|
int i, pagecount = dl[0].mid, rc; |
|
|
|
size_t size, pos = 0; |
|
|
|
size_t size = 0, pos = 0; |
|
|
|
pgno_t pgno; |
|
|
|
pgno_t pgno; |
|
|
|
MDB_page *dp; |
|
|
|
MDB_page *dp = NULL; |
|
|
|
#ifdef _WIN32 |
|
|
|
#ifdef _WIN32 |
|
|
|
OVERLAPPED ov; |
|
|
|
OVERLAPPED ov; |
|
|
|
#else |
|
|
|
#else |
|
|
|
struct iovec iov[MDB_COMMIT_PAGES]; |
|
|
|
struct iovec iov[MDB_COMMIT_PAGES]; |
|
|
|
ssize_t wpos, wsize, wres; |
|
|
|
ssize_t wpos, wsize = 0, wres; |
|
|
|
size_t next_pos = 1; /* impossible pos, so pos != next_pos */ |
|
|
|
size_t next_pos = 1; /* impossible pos, so pos != next_pos */ |
|
|
|
int n = 0; |
|
|
|
int n = 0; |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -2269,7 +2269,7 @@ mdb_page_flush(MDB_txn *txn) |
|
|
|
if (n == 1) { |
|
|
|
if (n == 1) { |
|
|
|
wres = pwrite(env->me_fd, iov[0].iov_base, wsize, wpos); |
|
|
|
wres = pwrite(env->me_fd, iov[0].iov_base, wsize, wpos); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
if (lseek(env->me_fd, wpos, SEEK_SET) < 0) { |
|
|
|
if (lseek(env->me_fd, wpos, SEEK_SET) == -1) { |
|
|
|
rc = ErrCode(); |
|
|
|
rc = ErrCode(); |
|
|
|
DPRINTF("lseek: %s", strerror(rc)); |
|
|
|
DPRINTF("lseek: %s", strerror(rc)); |
|
|
|
return rc; |
|
|
|
return rc; |
|
|
|