From: Maxim Cournoyer Date: Thu, 4 Jun 2020 20:14:26 +0000 (-0400) Subject: packages/pkg-download.mk: fix file locking over NFS X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2e9d6565fcc10268b7db6d44d74f9b48d2c2354c;p=buildroot.git packages/pkg-download.mk: fix file locking over NFS BSD style locks such as implemented by flock are translated to POSIX advisory file locks (implemented by the fcntl system call on Linux). It is not possible to lock a directory using POSIX advisory file locks. Hence, the lock strategy used by Buildroot doesn't work when used over NFS. Using flock on a simple file works correctly though, so use a '.lock' file inside the download directory instead. If the lockfile does not exist, flock will create it (in a race-free fashion). Tested using NFS v4.2 and Linux 5.4.43. Signed-off-by: Maxim Cournoyer [yann.morin.1998@free.fr: - slightly expand commit log about creation of the lockfile ] Signed-off-by: Yann E. MORIN --- diff --git a/package/pkg-download.mk b/package/pkg-download.mk index de619ba90a..951d2fb554 100644 --- a/package/pkg-download.mk +++ b/package/pkg-download.mk @@ -99,7 +99,7 @@ endif define DOWNLOAD $(Q)mkdir -p $($(2)_DL_DIR) - $(Q)$(EXTRA_ENV) flock $($(2)_DL_DIR)/ $(DL_WRAPPER) \ + $(Q)$(EXTRA_ENV) flock $($(2)_DL_DIR)/.lock $(DL_WRAPPER) \ -c '$($(2)_DL_VERSION)' \ -d '$($(2)_DL_DIR)' \ -D '$(DL_DIR)' \