From: Anirudha Bose Date: Sat, 18 Jun 2016 22:35:42 +0000 (+0530) Subject: ceph-disk: Fix bug in FileLock X-Git-Tag: v11.0.1~300^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=df9cc2ce938a969f4044b63fd80030d00f64f060;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 --- diff --git a/src/ceph-disk/ceph_disk/main.py b/src/ceph-disk/ceph_disk/main.py index daa5a1e2fc2f..e65a24a8b82c 100755 --- a/src/ceph-disk/ceph_disk/main.py +++ b/src/ceph-disk/ceph_disk/main.py @@ -245,19 +245,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 @@ -4426,10 +4427,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.'