X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftdb%2Fopen.c;fp=ccan%2Ftdb%2Fopen.c;h=54a8fe57ad11a460471785dbf370f7ae1f4a9b93;hb=e9989ef0758b3b660abf444d014c5b51a3a7c1b4;hp=b7aa6e745e0aa388b6162b63952137be3a047b2f;hpb=99e576ac94fd86fcba188fb72ced9e8087ac1680;p=ccan diff --git a/ccan/tdb/open.c b/ccan/tdb/open.c index b7aa6e74..54a8fe57 100644 --- a/ccan/tdb/open.c +++ b/ccan/tdb/open.c @@ -240,7 +240,7 @@ struct tdb_context *tdb_open_ex(const char *name, int hash_size, int tdb_flags, fcntl(tdb->fd, F_SETFD, v | FD_CLOEXEC); /* ensure there is only one process initialising at once */ - if (tdb->methods->brlock(tdb, F_WRLCK, OPEN_LOCK, 1, TDB_LOCK_WAIT) == -1) { + if (tdb_nest_lock(tdb, OPEN_LOCK, F_WRLCK, TDB_LOCK_WAIT) == -1) { TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_open_ex: failed to get open lock on %s: %s\n", name, strerror(errno))); goto fail; /* errno set by tdb_brlock */ @@ -356,8 +356,9 @@ struct tdb_context *tdb_open_ex(const char *name, int hash_size, int tdb_flags, /* Internal (memory-only) databases skip all the code above to * do with disk files, and resume here by releasing their * open lock and hooking into the active list. */ - if (tdb->methods->brunlock(tdb, F_WRLCK, OPEN_LOCK, 1) == -1) + if (tdb_nest_unlock(tdb, OPEN_LOCK, F_WRLCK, false) == -1) { goto fail; + } tdb->next = tdbs; tdbs = tdb; return tdb;