]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mds: do string equality comparison
authorPatrick Donnelly <pdonnell@redhat.com>
Sat, 7 Mar 2020 03:09:50 +0000 (19:09 -0800)
committerPatrick Donnelly <pdonnell@redhat.com>
Wed, 24 Jun 2020 22:43:31 +0000 (15:43 -0700)
The string::find method would return true for ceph.dir.pin even for the
other ephemeral pin xattr names. For this reason, it was never possible
to actually turn ephemeral pins on!

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/mds/Server.cc

index a7d6607cccf8f31b3f8fb63c3395b2f8fed563a3..3d0e64f50185f49497b16fbf23befffbb1bbdf9c 100644 (file)
@@ -5638,7 +5638,7 @@ void Server::handle_set_vxattr(MDRequestRef& mdr, CInode *cur)
 
     client_t exclude_ct = mdr->get_client();
     mdcache->broadcast_quota_to_client(cur, exclude_ct, true);
-  } else if (name.find("ceph.dir.pin") == 0) {
+  } else if (name == "ceph.dir.pin"sv) {
     if (!cur->is_dir() || cur->is_root()) {
       respond_to_request(mdr, -EINVAL);
       return;
@@ -5660,7 +5660,7 @@ void Server::handle_set_vxattr(MDRequestRef& mdr, CInode *cur)
     auto &pi = cur->project_inode();
     cur->set_export_pin(rank);
     pip = &pi.inode;
-  }  else if (name.find("ceph.dir.pin.random") == 0) {
+  } else if (name == "ceph.dir.pin.random"sv) {
     if (!cur->is_dir() || cur->is_root()) {
       respond_to_request(mdr, -EINVAL);
       return;
@@ -5681,7 +5681,7 @@ void Server::handle_set_vxattr(MDRequestRef& mdr, CInode *cur)
     auto &pi = cur->project_inode();
     cur->set_export_ephemeral_random_pin(val);
     pip = &pi.inode;
-  } else if (name.find("ceph.dir.pin.distributed") == 0) {
+  } else if (name == "ceph.dir.pin.distributed"sv) {
     if (!cur->is_dir() || cur->is_root()) {
       respond_to_request(mdr, -EINVAL);
       return;