From: Patrick Donnelly Date: Sat, 7 Mar 2020 03:09:50 +0000 (-0800) Subject: mds: do string equality comparison X-Git-Tag: wip-pdonnell-testing-20200918.022351~870^2~11 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=21872bdb118c5eef4c2cfdadcc62737bb9471022;p=ceph-ci.git mds: do string equality comparison 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 --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index a7d6607cccf..3d0e64f5018 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -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;