]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: ignore unknown client op when tracking op latency 44975/head
authorVenky Shankar <vshankar@redhat.com>
Mon, 13 Dec 2021 06:15:19 +0000 (01:15 -0500)
committerVenky Shankar <vshankar@redhat.com>
Thu, 10 Feb 2022 12:43:55 +0000 (18:13 +0530)
Server::handle_client_request() ignores unknown client operation
by returning -ENOTSUPP, however, Server::perf_gather_op_latency()
aborts on unknown client op, thereby causing -ENOTSUPP to never
reach the client. ceph_abort() seems unnecessary here.

Note, we could have invoked Server::perf_gather_op_latency()
when the return value to client is not -ENOTSUPP, however,
a valid client operation *might* just return -ENOTSUPP in
some cases.

@mchangir ran into this with his getvxattr op changes (PR #42001).

Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit 2f4060b8c41004d10d9a64676ccd847f6e1304dd)

src/mds/Server.cc

index 5715ed55a4696e7b4879a3ce5badbfe15f7567a2..aa80a03b4af2d2b5099e76f6d08b17250c939adb 100644 (file)
@@ -2055,7 +2055,9 @@ void Server::perf_gather_op_latency(const cref_t<MClientRequest> &req, utime_t l
   case CEPH_MDS_OP_RENAMESNAP:
     code = l_mdss_req_renamesnap_latency;
     break;
-  default: ceph_abort();
+  default:
+    dout(1) << ": unknown client op" << dendl;
+    return;
   }
   logger->tinc(code, lat);   
 }