mirror of
https://github.com/isar/libmdbx.git
synced 2025-05-14 17:07:50 +08:00
mdbx: minor fix mdbx_mresize()
to preserve result code for read-only cases.
This commit is contained in:
parent
1740043678
commit
728e7f92b2
14
src/osal.c
14
src/osal.c
@ -1777,19 +1777,19 @@ retry_mapview:;
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (limit == map->limit)
|
if (limit == map->limit)
|
||||||
return MDBX_SUCCESS;
|
return rc;
|
||||||
|
|
||||||
if (limit < map->limit) {
|
if (limit < map->limit) {
|
||||||
/* unmap an excess at end of mapping. */
|
/* unmap an excess at end of mapping. */
|
||||||
if (unlikely(munmap(map->dxb + limit, map->limit - limit)))
|
if (unlikely(munmap(map->dxb + limit, map->limit - limit)))
|
||||||
return errno;
|
return errno;
|
||||||
map->limit = limit;
|
map->limit = limit;
|
||||||
return MDBX_SUCCESS;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = check_mmap_limit(limit);
|
int err = check_mmap_limit(limit);
|
||||||
if (unlikely(rc != MDBX_SUCCESS))
|
if (unlikely(err != MDBX_SUCCESS))
|
||||||
return rc;
|
return err;
|
||||||
|
|
||||||
assert(limit > map->limit);
|
assert(limit > map->limit);
|
||||||
uint8_t *ptr = MAP_FAILED;
|
uint8_t *ptr = MAP_FAILED;
|
||||||
@ -1798,7 +1798,7 @@ retry_mapview:;
|
|||||||
ptr = mremap(map->address, map->limit, limit,
|
ptr = mremap(map->address, map->limit, limit,
|
||||||
(flags & MDBX_MRESIZE_MAY_MOVE) ? MREMAP_MAYMOVE : 0);
|
(flags & MDBX_MRESIZE_MAY_MOVE) ? MREMAP_MAYMOVE : 0);
|
||||||
if (ptr == MAP_FAILED) {
|
if (ptr == MAP_FAILED) {
|
||||||
const int err = errno;
|
err = errno;
|
||||||
switch (err) {
|
switch (err) {
|
||||||
default:
|
default:
|
||||||
return err;
|
return err;
|
||||||
@ -1829,7 +1829,7 @@ retry_mapview:;
|
|||||||
return errno;
|
return errno;
|
||||||
ptr = MAP_FAILED;
|
ptr = MAP_FAILED;
|
||||||
} else {
|
} else {
|
||||||
const int err = errno;
|
err = errno;
|
||||||
switch (err) {
|
switch (err) {
|
||||||
default:
|
default:
|
||||||
return err;
|
return err;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user