]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: ignore unknown client op when tracking op latency 44976/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:45:18 +0000 (18:15 +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 4100043164036d89ed5ed2a35d8d026504a5ad90..bee70ea44bde5ba7ba28910daf2f0aa39e6d13ed 100644 (file)
@@ -2009,7 +2009,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);   
 }