X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftdb2%2Fio.c;h=dffd088510c186377d433b292b63f7fca7e117d8;hb=850c5cfed46cd4f38df79783791969c7b30ad9da;hp=3c24be6774a3f0a4b841809e5a20a9cfe7f417da;hpb=587982955ca9c61363d6e3004622ee97eda80e4b;p=ccan diff --git a/ccan/tdb2/io.c b/ccan/tdb2/io.c index 3c24be67..dffd0885 100644 --- a/ccan/tdb2/io.c +++ b/ccan/tdb2/io.c @@ -70,6 +70,7 @@ void tdb_mmap(struct tdb_context *tdb) static int tdb_oob(struct tdb_context *tdb, tdb_off_t len, bool probe) { struct stat st; + enum TDB_ERROR ecode; /* We can't hold pointers during this: we could unmap! */ assert(!tdb->direct_access @@ -89,8 +90,11 @@ static int tdb_oob(struct tdb_context *tdb, tdb_off_t len, bool probe) return -1; } - if (tdb_lock_expand(tdb, F_RDLCK) != 0) + ecode = tdb_lock_expand(tdb, F_RDLCK); + if (ecode != TDB_SUCCESS) { + tdb->ecode = ecode; return -1; + } if (fstat(tdb->fd, &st) != 0) { tdb_logerr(tdb, TDB_ERR_IO, TDB_LOG_ERROR,