From: Karel Zak Date: Tue, 8 Feb 2011 15:32:53 +0000 (+0100) Subject: libmount: more robust flock() usage X-Git-Tag: v2.19~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b67533baa5f5f75ee1d1d3c61f42d38a4b4f219;p=thirdparty%2Futil-linux.git libmount: more robust flock() usage Signed-off-by: Karel Zak --- diff --git a/shlibs/mount/src/tab_update.c b/shlibs/mount/src/tab_update.c index d66b64f940..2084b5861c 100644 --- a/shlibs/mount/src/tab_update.c +++ b/shlibs/mount/src/tab_update.c @@ -616,8 +616,12 @@ static int utab_lock(const char *filename) if (fd < 0) return -errno; - if (flock(fd, LOCK_EX)) { - int errsv = errno; + + while (flock(fd, LOCK_EX) < 0) { + int errsv; + if ((errno == EAGAIN) || (errno == EINTR)) + continue; + errsv = errno; close(fd); return -errsv; }