From: Rusty Russell Date: Wed, 19 Aug 2009 01:19:29 +0000 (+0930) Subject: tdb: fix ecode setting on nonblocking brlock X-Git-Url: http://git.ozlabs.org/?p=ccan;a=commitdiff_plain;h=e9cc05b230fca341c6a27ea0efd6d749d95b5da7 tdb: fix ecode setting on nonblocking brlock This bug was introduced in "Wean off TDB_ERRCODE.". --- diff --git a/ccan/tdb/lock.c b/ccan/tdb/lock.c index 41c38382..66408193 100644 --- a/ccan/tdb/lock.c +++ b/ccan/tdb/lock.c @@ -158,12 +158,11 @@ int tdb_brlock(struct tdb_context *tdb, } while (ret == -1 && errno == EINTR); if (ret == -1) { + tdb->ecode = TDB_ERR_LOCK; /* Generic lock error. errno set by fcntl. * EAGAIN is an expected return from non-blocking * locks. */ if (!(flags & TDB_LOCK_PROBE) && errno != EAGAIN) { - /* Ensure error code is set for log fun to examine. */ - tdb->ecode = TDB_ERR_LOCK; TDB_LOG((tdb, TDB_DEBUG_TRACE,"tdb_brlock failed (fd=%d) at offset %d rw_type=%d flags=%d len=%d\n", tdb->fd, offset, rw_type, flags, (int)len)); }