CHROMIUM: fs: fuse: print expired request opcode Print expired request's opcode so that we can have a slightly better understanding of what is hanging. UPSTREAM-TASK=b:450762520 BUG=b:450763888 TEST=compile tested Change-Id: Icccf9318c1f096dd6d7f651a1524869de8f08cbb Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/7706446 Reviewed-by: Tomasz Figa <tfiga@chromium.org> (cherry picked from commit 76091000d6201c434cd2edd84733a213fa3be3c0) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/7714298 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index ddd8d6e..b6d1449 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c
@@ -61,7 +61,12 @@ static bool request_expired(struct fuse_conn *fc, struct list_head *list) req = list_first_entry_or_null(list, struct fuse_req, list); if (!req) return false; - return time_after(jiffies, req->create_time + fuse_watchdog_timeout()); + if (time_after(jiffies, req->create_time + fuse_watchdog_timeout())) { + pr_warn("%s: request (opcode %u, unique: %llu) expired\n", + current->comm, req->in.h.opcode, req->in.h.unique); + return true; + } + return false; } static struct task_struct *fuse_watchdog_detach(struct fuse_conn *fc)