From a3691edaff553b5130c97ff912ecaa96f08a6643 Mon Sep 17 00:00:00 2001 From: marha Date: Mon, 18 Jun 2012 08:29:53 +0200 Subject: fontconfig mesa pixman git update 18 Jun 2012 --- fontconfig/src/fcatomic.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'fontconfig') diff --git a/fontconfig/src/fcatomic.c b/fontconfig/src/fcatomic.c index bc7b07bd4..350744abb 100644 --- a/fontconfig/src/fcatomic.c +++ b/fontconfig/src/fcatomic.c @@ -105,6 +105,7 @@ FcAtomicLock (FcAtomic *atomic) #ifdef HAVE_LINK int fd = -1; FILE *f = 0; + FcBool no_link = FcFalse; strcpy ((char *) atomic->tmp, (char *) atomic->file); strcat ((char *) atomic->tmp, TMP_NAME); @@ -137,6 +138,7 @@ FcAtomicLock (FcAtomic *atomic) * the hard link. so better try to fallback */ ret = mkdir ((char *) atomic->lck, 0600); + no_link = FcTrue; } (void) unlink ((char *) atomic->tmp); #else @@ -156,8 +158,16 @@ FcAtomicLock (FcAtomic *atomic) if ((long int) (now - lck_stat.st_mtime) > 10 * 60) { #ifdef HAVE_LINK - if (unlink ((char *) atomic->lck) == 0) - return FcAtomicLock (atomic); + if (no_link) + { + if (rmdir ((char *) atomic->lck) == 0) + return FcAtomicLock (atomic); + } + else + { + if (unlink ((char *) atomic->lck) == 0) + return FcAtomicLock (atomic); + } #else if (rmdir ((char *) atomic->lck) == 0) return FcAtomicLock (atomic); -- cgit v1.2.3