diff options
-rw-r--r-- | lib/bb/utils.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/bb/utils.py b/lib/bb/utils.py index 210e535f0..826024661 100644 --- a/lib/bb/utils.py +++ b/lib/bb/utils.py @@ -461,13 +461,16 @@ def lockfile(name, shared=False, retry=True, block=False): consider the possibility of sending a signal to the process to break out - at which point you want block=True rather than retry=True. """ - if len(name) > 255: - root, ext = os.path.splitext(name) - name = root[:255 - len(ext)] + ext + basename = os.path.basename(name) + if len(basename) > 255: + root, ext = os.path.splitext(basename) + basename = root[:255 - len(ext)] + ext dirname = os.path.dirname(name) mkdirhier(dirname) + name = os.path.join(dirname, basename) + if not os.access(dirname, os.W_OK): logger.error("Unable to acquire lock '%s', directory is not writable", name) |