From: Anirudha Bose Date: Sat, 18 Jun 2016 22:35:42 +0000 (+0530) Subject: ceph-disk: Fix bug in FileLock X-Git-Tag: v10.2.4~16^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=26cb5b6bfbd6eee46bfa3cf005b1cd9f06b0e262;p=ceph.git ceph-disk: Fix bug in FileLock Python fcntl.lockf() accepts a file descriptor, not a file object Signed-off-by: Anirudha Bose (cherry picked from commit df9cc2ce938a969f4044b63fd80030d00f64f060) --- diff --git a/src/ceph-disk/ceph_disk/main.py b/src/ceph-disk/ceph_disk/main.py index 17d8ca433ec..70077620c3b 100755 --- a/src/ceph-disk/ceph_disk/main.py +++ b/src/ceph-disk/ceph_disk/main.py @@ -244,19 +244,20 @@ CEPH_PREF_USER = None CEPH_PREF_GROUP = None -class filelock(object): +class FileLock(object): def __init__(self, fn): self.fn = fn self.fd = None def acquire(self): assert not self.fd - self.fd = open(self.fn, 'w') + self.fd = os.open(self.fn, os.O_WRONLY | os.O_CREAT) fcntl.lockf(self.fd, fcntl.LOCK_EX) def release(self): assert self.fd fcntl.lockf(self.fd, fcntl.LOCK_UN) + os.close(self.fd) self.fd = None @@ -4433,10 +4434,10 @@ def setup_statedir(dir): os.mkdir(STATEDIR + "/tmp") global prepare_lock - prepare_lock = filelock(STATEDIR + '/tmp/ceph-disk.prepare.lock') + prepare_lock = FileLock(STATEDIR + '/tmp/ceph-disk.prepare.lock') global activate_lock - activate_lock = filelock(STATEDIR + '/tmp/ceph-disk.activate.lock') + activate_lock = FileLock(STATEDIR + '/tmp/ceph-disk.activate.lock') global SUPPRESS_PREFIX SUPPRESS_PREFIX = STATEDIR + '/tmp/suppress-activate.'