list_move_tail(&req->list, &fpq->processing[hash]);
__fuse_get_request(req);
set_bit(FR_SENT, &req->flags);
+ trace_fuse_request_sent(req);
spin_unlock(&fpq->lock);
/* matches barrier in request_wait_answer() */
smp_mb__after_atomic();
err = fuse_uring_copy_to_ring(ent, req);
if (!err) {
set_bit(FR_SENT, &req->flags);
+ trace_fuse_request_sent(req);
} else {
/*
* Copying the request failed. Remove the entry from the
__print_symbolic(__entry->opcode, OPCODES), __entry->len)
);
+TRACE_EVENT(fuse_request_sent,
+ TP_PROTO(const struct fuse_req *req),
+
+ TP_ARGS(req),
+
+ TP_STRUCT__entry(
+ __field(dev_t, connection)
+ __field(uint64_t, unique)
+ __field(enum fuse_opcode, opcode)
+ ),
+
+ TP_fast_assign(
+ __entry->connection = req->chan->conn->dev;
+ __entry->unique = req->in.h.unique;
+ __entry->opcode = req->in.h.opcode;
+ ),
+
+ TP_printk("connection %u req %llu opcode %u (%s)",
+ __entry->connection, __entry->unique, __entry->opcode,
+ __print_symbolic(__entry->opcode, OPCODES))
+);
+
TRACE_EVENT(fuse_request_end,
TP_PROTO(const struct fuse_req *req),