Whamcloud - gitweb
LU-11114 llite: Update mdc and lite stats on open|creat
[fs/lustre-release.git] / lustre / llite / namei.c
index 43265ab..31c8d28 100644 (file)
@@ -613,7 +613,8 @@ struct dentry *ll_splice_alias(struct inode *inode, struct dentry *de)
 static int ll_lookup_it_finish(struct ptlrpc_request *request,
                               struct lookup_intent *it,
                               struct inode *parent, struct dentry **de,
-                              void *secctx, __u32 secctxlen)
+                              void *secctx, __u32 secctxlen,
+                              ktime_t kstart)
 {
        struct inode             *inode = NULL;
        __u64                     bits = 0;
@@ -718,6 +719,11 @@ static int ll_lookup_it_finish(struct ptlrpc_request *request,
                }
        }
 
+       if (it_disposition(it, DISP_OPEN_CREATE)) {
+               ll_stats_ops_tally(ll_i2sbi(parent), LPROC_LL_MKNOD,
+                                  ktime_us_delta(ktime_get(), kstart));
+       }
+
        GOTO(out, rc = 0);
 
 out:
@@ -734,6 +740,7 @@ static struct dentry *ll_lookup_it(struct inode *parent, struct dentry *dentry,
                                   void **secctx, __u32 *secctxlen,
                                   struct pcc_create_attach *pca)
 {
+       ktime_t kstart = ktime_get();
        struct lookup_intent lookup_it = { .it_op = IT_LOOKUP };
        struct dentry *save = dentry, *retval;
        struct ptlrpc_request *req = NULL;
@@ -880,7 +887,8 @@ static struct dentry *ll_lookup_it(struct inode *parent, struct dentry *dentry,
        ll_unlock_md_op_lsm(op_data);
        rc = ll_lookup_it_finish(req, it, parent, &dentry,
                                 secctx != NULL ? *secctx : NULL,
-                                secctxlen != NULL ? *secctxlen : 0);
+                                secctxlen != NULL ? *secctxlen : 0,
+                               kstart);
         if (rc != 0) {
                 ll_intent_release(it);
                 GOTO(out, retval = ERR_PTR(rc));