diff options
-rw-r--r-- | libfshelp/ChangeLog | 6 | ||||
-rw-r--r-- | libfshelp/lock-acquire.c | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/libfshelp/ChangeLog b/libfshelp/ChangeLog index be35c65b..81323fe7 100644 --- a/libfshelp/ChangeLog +++ b/libfshelp/ChangeLog @@ -1,3 +1,9 @@ +2002-06-26 Marcus Brinkmann <marcus@gnu.org> + + * lock-acquire.c (fshelp_acquire_lock): Also wait for exclusive + locks which might have been acquired while we were waiting for + shared locks to finish. + 2002-06-07 Roland McGrath <roland@frob.com> * fshelp.h: Use io_statbuf_t in place of struct stat throughout. diff --git a/libfshelp/lock-acquire.c b/libfshelp/lock-acquire.c index 3d8df550..bad1114d 100644 --- a/libfshelp/lock-acquire.c +++ b/libfshelp/lock-acquire.c @@ -111,8 +111,8 @@ fshelp_acquire_lock (struct lock_box *box, int *user, struct mutex *mut, } else if (flags & LOCK_EX) { - /* Wait for any shared locks to finish. */ - while (box->type == LOCK_SH) + /* Wait for any shared (and exclusive) locks to finish. */ + while (box->type != LOCK_UN) { if (flags & LOCK_NB) return EWOULDBLOCK; |