]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
blk/kernel: use uint64_t for bdev_flock_retry
authorKefu Chai <kchai@redhat.com>
Mon, 21 Sep 2020 12:01:25 +0000 (20:01 +0800)
committerNathan Cutler <ncutler@suse.com>
Tue, 27 Oct 2020 10:29:30 +0000 (11:29 +0100)
also drop bdev_flock_retry and bdev_flock_retry_interval from
legacy_config_opts.h, as `KernelDevice::_lock()` is not in the critical
path, there is no need to access these settings via member variables --
get_val<> would just suffice.

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 8fb80db9ff32a85fcdf91e38075c42165805e37f)

Conflicts:
src/blk/kernel/KernelDevice.cc
- file does not exist in nautilus; changes applied without conflicts to
  src/os/bluestore/KernelDevice.cc

src/common/legacy_config_opts.h
src/common/options.cc
src/os/bluestore/KernelDevice.cc

index 208da3f99fc2ea345a98c109b33970bda2d3e27a..586b3f6d8e161a4859435ab768a405824ee65474 100644 (file)
@@ -936,8 +936,6 @@ OPTION(bdev_nvme_unbind_from_kernel, OPT_BOOL)
 OPTION(bdev_nvme_retry_count, OPT_INT) // -1 means by default which is 4
 OPTION(bdev_enable_discard, OPT_BOOL)
 OPTION(bdev_async_discard, OPT_BOOL)
-OPTION(bdev_flock_retry_interval, OPT_FLOAT)
-OPTION(bdev_flock_retry, OPT_INT)
 
 OPTION(objectstore_blackhole, OPT_BOOL)
 
index 041a27d921038a1728f6e815801cb389d47524ec..cd2aae894b228380ad917b2ebb5b4be7e2dda19d 100644 (file)
@@ -4337,7 +4337,7 @@ std::vector<Option> get_global_options() {
     .set_default(0.1)
     .set_description("interval to retry the flock"),
     
-    Option("bdev_flock_retry", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+    Option("bdev_flock_retry", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
     .set_default(3)
     .set_description("times to retry the flock"),
 
index 4aca6dbf3f6ff29e5d6cf10d91cb69d7b8e5ddf4..9e8843728088ff20279c61582a9aad41e7e03b62 100644 (file)
@@ -60,11 +60,11 @@ int KernelDevice::_lock()
 {
   dout(10) << __func__ << " " << fd_directs[WRITE_LIFE_NOT_SET] << dendl;
   double retry_interval = cct->_conf.get_val<double>("bdev_flock_retry_interval");
-
+  uint64_t max_retry = cct->_conf.get_val<uint64_t>("bdev_flock_retry");
   // When the block changes, systemd-udevd will open the block,
   // read some information and close it. Then a failure occurs here.
   // So we need to try again here.
-  for (int i = 0; i < cct->_conf->bdev_flock_retry + 1; i++) {
+  for (uint64_t i = 0; i < max_retry + 1; i++) {
     int r = ::flock(fd_directs[WRITE_LIFE_NOT_SET], LOCK_EX | LOCK_NB);
     if (r < 0 && errno == EAGAIN) {
       dout(1) << __func__ << " flock busy on " << path << dendl;