Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp2031389pxb; Fri, 22 Oct 2021 12:23:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyNjcBzmsCwzdsIONTVLbzo1Wn3HiWD9w8j51Ve7JxYO/MibiMaCVSdTT7YkLGuHSIKqYif X-Received: by 2002:a17:90a:1a4c:: with SMTP id 12mr17064442pjl.89.1634930581485; Fri, 22 Oct 2021 12:23:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634930581; cv=none; d=google.com; s=arc-20160816; b=YbiQpOKaWeWHeCf2BVta/o52rvi7A5NHmSV+6h6j1JVwWEFwJHBK8U/TOi/7oi+Htl Synro9d58bTeDzbVEjBUPst+AjFNwsH3gkQ5Cx/TtspSUeH9hWof3IKcPwG/jQzTVF1k aiNor2o29iaFY5oSTwE0ioemn9MBM6ddllGhTS9NK9Q5RVZvWjFaz8ZkmIp0xwwzHXvu WyEEaEQjl5KQMrZDbWxuRQ0GlWrUeeNweYVjxRG5DHfqGd9inWIyfwlWmMgKYWD5w7Cp 8XMU+RtCNMMfcWsyc7dAwp1UaZvFqJZs32tJMTYRqdL/i6IUymLWboseiZXkpdq+5hwm uU2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=WxOLta7t00dTJDGfjXTG243y6aVH6BHl1/own86ATiE=; b=XOfM9jf44l6SreybowxKGlhCfQEhE4/QNrX+cwPENMWYiTRGjW9hcm1mVklnkCSXTU jw1HM7ekjBpyZ18i3SvAl+ljlCOuT2rju8wiTTQZRQxNh3wVHrJ/yHpHcPFvk3YQJudU C4lyrWft4yxaasIHNVP9saAvBiDkotGEEXtYr8MAZ+1Kj6PpXs1CPszMFJE6Q9M7pHyk JU7Q0pS0PoOPNLcumdouDTOHT+nI/1zh5U8Cj/BlXWopknF8WD4dAYkBUz4orx+T4JvU hleO+f0QSPSgfiK3lgMQVPOU75bEPEOX17Sv5FdXOksDxV70odVNYzwmHs96YwX5fT1S XWzQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@umich.edu header.s=google-2016-06-03 header.b=SM5kwFmi; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=umich.edu Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ng18si15399100pjb.58.2021.10.22.12.22.48; Fri, 22 Oct 2021 12:23:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@umich.edu header.s=google-2016-06-03 header.b=SM5kwFmi; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=umich.edu Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233931AbhJVTZE (ORCPT + 99 others); Fri, 22 Oct 2021 15:25:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36500 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233748AbhJVTZD (ORCPT ); Fri, 22 Oct 2021 15:25:03 -0400 Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 881C3C061764 for ; Fri, 22 Oct 2021 12:22:45 -0700 (PDT) Received: by mail-ed1-x530.google.com with SMTP id z20so5980248edc.13 for ; Fri, 22 Oct 2021 12:22:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=umich.edu; s=google-2016-06-03; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=WxOLta7t00dTJDGfjXTG243y6aVH6BHl1/own86ATiE=; b=SM5kwFmiz+abWPqNtiJ+OpWjFrLXHDrVupbibqj6sf4TEDg9KRxp5mESl4hhuKeBY9 BZCHGusQmqg/AXlV+OYzkPj79HnGn+7cbgZlx3GGWtsofkdFZELPgHmeF4MJ1BHL+PTI 16jS1oxXytXCcjwEdYyY+MPuIPBfRNhNkp4gFlDSS0n2WZIQowOFkGUMyj7n4QR5SnDF /9aTycdEeiqKJLjMOzV6Bt3ZFdcceMX//RuENxdthG6nH2Im8vwI1jXfvLv6Wf8cvcpW cAhUTBpqhrr6haf2Md+XBy/hIaQ/4ed1klDyfbP3qk2xp69z+9OwFhcEn2rkW2P6Ld8W ADcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=WxOLta7t00dTJDGfjXTG243y6aVH6BHl1/own86ATiE=; b=yyMtIlNRGcl1b/6nzK4SrUIf/i7z99kwS4Ewm9vXbNzf1t7133LPFG+h9kw7sl2UXr OjFh0Ywkn9DKKTP7wRvWADnjF6PQTQSInv19R23olTWr1wsqtI07tBU4Azdo3dWgD6SV x7UtvLq+NHU6A9sfdqVbGhDR1ngT+2juAp1s8rmK6aCsFOojKu0Xki42kNrkw8sT9tGl cCAEn9PydE/S25PyrVRP9Znhplu9kIOq6Ru1cPzPevBhfL3fT/71gCdxiUlycblQRCew skjhR/S73XXYPtD5pmao0uawUcC9xCGFluNJkd+Tehc3p6uw3V06cqyfQ+2xVrqOHYUx 01OQ== X-Gm-Message-State: AOAM533nPkEjxo1aNZFe9FT3GcY8UtvHFjOvlOdf908xQUQzVVEw8lQt 7IPhmZGFC4zCYfYp1OZkbiNNP/y70SkfvZs9ypA= X-Received: by 2002:a17:907:8a07:: with SMTP id sc7mr1857884ejc.38.1634930563887; Fri, 22 Oct 2021 12:22:43 -0700 (PDT) MIME-Version: 1.0 References: <163466195619.4493.18063027404688028587.stgit@klimt.1015granger.net> In-Reply-To: From: Olga Kornievskaia Date: Fri, 22 Oct 2021 15:22:32 -0400 Message-ID: Subject: Re: [PATCH v1 1/2] NFS: Move generic FS show macros to global header To: Chuck Lever III Cc: Olga Kornievskaia , Linux NFS Mailing List Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org On Fri, Oct 22, 2021 at 3:16 PM Chuck Lever III wrote: > > > > > On Oct 22, 2021, at 3:14 PM, Olga Kornievskaia wrote: > > > > On Tue, Oct 19, 2021 at 12:46 PM Chuck Lever wrote: > >> > >> Refactor: Surface useful show_ macros for use by other trace > >> subsystems. > > > > This doesn't apply on top of Trond's origin/testing. Are there some > > other dependencies I'm missing? > > The patch applies on top of v5.15-rc6. What fails to apply? checking file fs/nfs/nfs4trace.h Hunk #1 succeeded at 11 with fuzz 2 (offset 1 line). Hunk #2 succeeded at 316 (offset 1 line). Hunk #3 succeeded at 783 (offset 1 line). Hunk #4 succeeded at 802 (offset 1 line). Hunk #5 succeeded at 832 (offset 1 line). Hunk #6 succeeded at 894 (offset 1 line). Hunk #7 succeeded at 942 (offset 1 line). Hunk #8 succeeded at 951 (offset 1 line). Hunk #9 succeeded at 963 (offset 1 line). Hunk #10 succeeded at 997 (offset 1 line). Hunk #11 succeeded at 1033 (offset 1 line). Hunk #12 succeeded at 1073 (offset 1 line). Hunk #13 succeeded at 1191 (offset 1 line). (Stripping trailing CRs from patch; use --binary to disable.) checking file fs/nfs/nfstrace.h Hunk #1 FAILED at 11. Hunk #2 succeeded at 131 (offset -37 lines). Hunk #3 succeeded at 222 (offset -37 lines). Hunk #4 FAILED at 270. Hunk #7 FAILED at 392. Hunk #8 succeeded at 427 (offset -16 lines). Hunk #9 succeeded at 437 (offset -16 lines). Hunk #10 succeeded at 465 (offset -16 lines). Hunk #11 succeeded at 476 (offset -16 lines). Hunk #12 succeeded at 485 (offset -16 lines). Hunk #13 succeeded at 519 (offset -16 lines). Hunk #14 succeeded at 556 (offset -16 lines). 3 out of 14 hunks FAILED The next patch would create the file include/trace/events/fs.h, > > > >> Signed-off-by: Chuck Lever > >> --- > >> fs/nfs/nfs4trace.h | 67 ++++++--------------- > >> fs/nfs/nfstrace.h | 118 +++++------------------------------- > >> include/trace/events/fs.h | 146 +++++++++++++++++++++++++++++++++++++++++++++ > >> 3 files changed, 180 insertions(+), 151 deletions(-) > >> create mode 100644 include/trace/events/fs.h > >> > >> diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h > >> index 7a2567aa2b86..b2f45c825f37 100644 > >> --- a/fs/nfs/nfs4trace.h > >> +++ b/fs/nfs/nfs4trace.h > >> @@ -10,6 +10,8 @@ > >> > >> #include > >> > >> +#include > >> + > >> TRACE_DEFINE_ENUM(EPERM); > >> TRACE_DEFINE_ENUM(ENOENT); > >> TRACE_DEFINE_ENUM(EIO); > >> @@ -313,19 +315,6 @@ TRACE_DEFINE_ENUM(NFS4ERR_RESET_TO_PNFS); > >> { NFS4ERR_RESET_TO_MDS, "RESET_TO_MDS" }, \ > >> { NFS4ERR_RESET_TO_PNFS, "RESET_TO_PNFS" }) > >> > >> -#define show_open_flags(flags) \ > >> - __print_flags(flags, "|", \ > >> - { O_CREAT, "O_CREAT" }, \ > >> - { O_EXCL, "O_EXCL" }, \ > >> - { O_TRUNC, "O_TRUNC" }, \ > >> - { O_DIRECT, "O_DIRECT" }) > >> - > >> -#define show_fmode_flags(mode) \ > >> - __print_flags(mode, "|", \ > >> - { ((__force unsigned long)FMODE_READ), "READ" }, \ > >> - { ((__force unsigned long)FMODE_WRITE), "WRITE" }, \ > >> - { ((__force unsigned long)FMODE_EXEC), "EXEC" }) > >> - > >> #define show_nfs_fattr_flags(valid) \ > >> __print_flags((unsigned long)valid, "|", \ > >> { NFS_ATTR_FATTR_TYPE, "TYPE" }, \ > >> @@ -793,8 +782,8 @@ DECLARE_EVENT_CLASS(nfs4_open_event, > >> > >> TP_STRUCT__entry( > >> __field(unsigned long, error) > >> - __field(unsigned int, flags) > >> - __field(unsigned int, fmode) > >> + __field(unsigned long, flags) > >> + __field(unsigned long, fmode) > >> __field(dev_t, dev) > >> __field(u32, fhandle) > >> __field(u64, fileid) > >> @@ -812,7 +801,7 @@ DECLARE_EVENT_CLASS(nfs4_open_event, > >> > >> __entry->error = -error; > >> __entry->flags = flags; > >> - __entry->fmode = (__force unsigned int)ctx->mode; > >> + __entry->fmode = (__force unsigned long)ctx->mode; > >> __entry->dev = ctx->dentry->d_sb->s_dev; > >> if (!IS_ERR_OR_NULL(state)) { > >> inode = state->inode; > >> @@ -842,15 +831,15 @@ DECLARE_EVENT_CLASS(nfs4_open_event, > >> ), > >> > >> TP_printk( > >> - "error=%ld (%s) flags=%d (%s) fmode=%s " > >> + "error=%ld (%s) flags=%lu (%s) fmode=%s " > >> "fileid=%02x:%02x:%llu fhandle=0x%08x " > >> "name=%02x:%02x:%llu/%s stateid=%d:0x%08x " > >> "openstateid=%d:0x%08x", > >> -__entry->error, > >> show_nfsv4_errors(__entry->error), > >> __entry->flags, > >> - show_open_flags(__entry->flags), > >> - show_fmode_flags(__entry->fmode), > >> + show_fs_fcntl_open_flags(__entry->flags), > >> + show_fs_fmode_flags(__entry->fmode), > >> MAJOR(__entry->dev), MINOR(__entry->dev), > >> (unsigned long long)__entry->fileid, > >> __entry->fhandle, > >> @@ -904,7 +893,7 @@ TRACE_EVENT(nfs4_cached_open, > >> TP_printk( > >> "fmode=%s fileid=%02x:%02x:%llu " > >> "fhandle=0x%08x stateid=%d:0x%08x", > >> - __entry->fmode ? show_fmode_flags(__entry->fmode) : > >> + __entry->fmode ? show_fs_fmode_flags(__entry->fmode) : > >> "closed", > >> MAJOR(__entry->dev), MINOR(__entry->dev), > >> (unsigned long long)__entry->fileid, > >> @@ -952,7 +941,7 @@ TRACE_EVENT(nfs4_close, > >> "fhandle=0x%08x openstateid=%d:0x%08x", > >> -__entry->error, > >> show_nfsv4_errors(__entry->error), > >> - __entry->fmode ? show_fmode_flags(__entry->fmode) : > >> + __entry->fmode ? show_fs_fmode_flags(__entry->fmode) : > >> "closed", > >> MAJOR(__entry->dev), MINOR(__entry->dev), > >> (unsigned long long)__entry->fileid, > >> @@ -961,24 +950,6 @@ TRACE_EVENT(nfs4_close, > >> ) > >> ); > >> > >> -TRACE_DEFINE_ENUM(F_GETLK); > >> -TRACE_DEFINE_ENUM(F_SETLK); > >> -TRACE_DEFINE_ENUM(F_SETLKW); > >> -TRACE_DEFINE_ENUM(F_RDLCK); > >> -TRACE_DEFINE_ENUM(F_WRLCK); > >> -TRACE_DEFINE_ENUM(F_UNLCK); > >> - > >> -#define show_lock_cmd(type) \ > >> - __print_symbolic((int)type, \ > >> - { F_GETLK, "GETLK" }, \ > >> - { F_SETLK, "SETLK" }, \ > >> - { F_SETLKW, "SETLKW" }) > >> -#define show_lock_type(type) \ > >> - __print_symbolic((int)type, \ > >> - { F_RDLCK, "RDLCK" }, \ > >> - { F_WRLCK, "WRLCK" }, \ > >> - { F_UNLCK, "UNLCK" }) > >> - > >> DECLARE_EVENT_CLASS(nfs4_lock_event, > >> TP_PROTO( > >> const struct file_lock *request, > >> @@ -991,8 +962,8 @@ DECLARE_EVENT_CLASS(nfs4_lock_event, > >> > >> TP_STRUCT__entry( > >> __field(unsigned long, error) > >> - __field(int, cmd) > >> - __field(char, type) > >> + __field(unsigned long, cmd) > >> + __field(unsigned long, type) > >> __field(loff_t, start) > >> __field(loff_t, end) > >> __field(dev_t, dev) > >> @@ -1025,8 +996,8 @@ DECLARE_EVENT_CLASS(nfs4_lock_event, > >> "stateid=%d:0x%08x", > >> -__entry->error, > >> show_nfsv4_errors(__entry->error), > >> - show_lock_cmd(__entry->cmd), > >> - show_lock_type(__entry->type), > >> + show_fs_fcntl_cmd(__entry->cmd), > >> + show_fs_fcntl_lock_type(__entry->type), > >> (long long)__entry->start, > >> (long long)__entry->end, > >> MAJOR(__entry->dev), MINOR(__entry->dev), > >> @@ -1061,8 +1032,8 @@ TRACE_EVENT(nfs4_set_lock, > >> > >> TP_STRUCT__entry( > >> __field(unsigned long, error) > >> - __field(int, cmd) > >> - __field(char, type) > >> + __field(unsigned long, cmd) > >> + __field(unsigned long, type) > >> __field(loff_t, start) > >> __field(loff_t, end) > >> __field(dev_t, dev) > >> @@ -1101,8 +1072,8 @@ TRACE_EVENT(nfs4_set_lock, > >> "stateid=%d:0x%08x lockstateid=%d:0x%08x", > >> -__entry->error, > >> show_nfsv4_errors(__entry->error), > >> - show_lock_cmd(__entry->cmd), > >> - show_lock_type(__entry->type), > >> + show_fs_fcntl_cmd(__entry->cmd), > >> + show_fs_fcntl_lock_type(__entry->type), > >> (long long)__entry->start, > >> (long long)__entry->end, > >> MAJOR(__entry->dev), MINOR(__entry->dev), > >> @@ -1219,7 +1190,7 @@ DECLARE_EVENT_CLASS(nfs4_set_delegation_event, > >> > >> TP_printk( > >> "fmode=%s fileid=%02x:%02x:%llu fhandle=0x%08x", > >> - show_fmode_flags(__entry->fmode), > >> + show_fs_fmode_flags(__entry->fmode), > >> MAJOR(__entry->dev), MINOR(__entry->dev), > >> (unsigned long long)__entry->fileid, > >> __entry->fhandle > >> diff --git a/fs/nfs/nfstrace.h b/fs/nfs/nfstrace.h > >> index 8a224871be74..49d432c00bde 100644 > >> --- a/fs/nfs/nfstrace.h > >> +++ b/fs/nfs/nfstrace.h > >> @@ -11,27 +11,7 @@ > >> #include > >> #include > >> > >> -TRACE_DEFINE_ENUM(DT_UNKNOWN); > >> -TRACE_DEFINE_ENUM(DT_FIFO); > >> -TRACE_DEFINE_ENUM(DT_CHR); > >> -TRACE_DEFINE_ENUM(DT_DIR); > >> -TRACE_DEFINE_ENUM(DT_BLK); > >> -TRACE_DEFINE_ENUM(DT_REG); > >> -TRACE_DEFINE_ENUM(DT_LNK); > >> -TRACE_DEFINE_ENUM(DT_SOCK); > >> -TRACE_DEFINE_ENUM(DT_WHT); > >> - > >> -#define nfs_show_file_type(ftype) \ > >> - __print_symbolic(ftype, \ > >> - { DT_UNKNOWN, "UNKNOWN" }, \ > >> - { DT_FIFO, "FIFO" }, \ > >> - { DT_CHR, "CHR" }, \ > >> - { DT_DIR, "DIR" }, \ > >> - { DT_BLK, "BLK" }, \ > >> - { DT_REG, "REG" }, \ > >> - { DT_LNK, "LNK" }, \ > >> - { DT_SOCK, "SOCK" }, \ > >> - { DT_WHT, "WHT" }) > >> +#include > >> > >> TRACE_DEFINE_ENUM(NFS_INO_INVALID_DATA); > >> TRACE_DEFINE_ENUM(NFS_INO_INVALID_ATIME); > >> @@ -168,7 +148,7 @@ DECLARE_EVENT_CLASS(nfs_inode_event_done, > >> (unsigned long long)__entry->fileid, > >> __entry->fhandle, > >> __entry->type, > >> - nfs_show_file_type(__entry->type), > >> + show_fs_dirent_type(__entry->type), > >> (unsigned long long)__entry->version, > >> (long long)__entry->size, > >> __entry->cache_validity, > >> @@ -259,7 +239,7 @@ TRACE_EVENT(nfs_access_exit, > >> (unsigned long long)__entry->fileid, > >> __entry->fhandle, > >> __entry->type, > >> - nfs_show_file_type(__entry->type), > >> + show_fs_dirent_type(__entry->type), > >> (unsigned long long)__entry->version, > >> (long long)__entry->size, > >> __entry->cache_validity, > >> @@ -270,34 +250,6 @@ TRACE_EVENT(nfs_access_exit, > >> ) > >> ); > >> > >> -TRACE_DEFINE_ENUM(LOOKUP_FOLLOW); > >> -TRACE_DEFINE_ENUM(LOOKUP_DIRECTORY); > >> -TRACE_DEFINE_ENUM(LOOKUP_AUTOMOUNT); > >> -TRACE_DEFINE_ENUM(LOOKUP_PARENT); > >> -TRACE_DEFINE_ENUM(LOOKUP_REVAL); > >> -TRACE_DEFINE_ENUM(LOOKUP_RCU); > >> -TRACE_DEFINE_ENUM(LOOKUP_OPEN); > >> -TRACE_DEFINE_ENUM(LOOKUP_CREATE); > >> -TRACE_DEFINE_ENUM(LOOKUP_EXCL); > >> -TRACE_DEFINE_ENUM(LOOKUP_RENAME_TARGET); > >> -TRACE_DEFINE_ENUM(LOOKUP_EMPTY); > >> -TRACE_DEFINE_ENUM(LOOKUP_DOWN); > >> - > >> -#define show_lookup_flags(flags) \ > >> - __print_flags(flags, "|", \ > >> - { LOOKUP_FOLLOW, "FOLLOW" }, \ > >> - { LOOKUP_DIRECTORY, "DIRECTORY" }, \ > >> - { LOOKUP_AUTOMOUNT, "AUTOMOUNT" }, \ > >> - { LOOKUP_PARENT, "PARENT" }, \ > >> - { LOOKUP_REVAL, "REVAL" }, \ > >> - { LOOKUP_RCU, "RCU" }, \ > >> - { LOOKUP_OPEN, "OPEN" }, \ > >> - { LOOKUP_CREATE, "CREATE" }, \ > >> - { LOOKUP_EXCL, "EXCL" }, \ > >> - { LOOKUP_RENAME_TARGET, "RENAME_TARGET" }, \ > >> - { LOOKUP_EMPTY, "EMPTY" }, \ > >> - { LOOKUP_DOWN, "DOWN" }) > >> - > >> DECLARE_EVENT_CLASS(nfs_lookup_event, > >> TP_PROTO( > >> const struct inode *dir, > >> @@ -324,7 +276,7 @@ DECLARE_EVENT_CLASS(nfs_lookup_event, > >> TP_printk( > >> "flags=0x%lx (%s) name=%02x:%02x:%llu/%s", > >> __entry->flags, > >> - show_lookup_flags(__entry->flags), > >> + show_fs_lookup_flags(__entry->flags), > >> MAJOR(__entry->dev), MINOR(__entry->dev), > >> (unsigned long long)__entry->dir, > >> __get_str(name) > >> @@ -370,7 +322,7 @@ DECLARE_EVENT_CLASS(nfs_lookup_event_done, > >> "error=%ld (%s) flags=0x%lx (%s) name=%02x:%02x:%llu/%s", > >> -__entry->error, nfs_show_status(__entry->error), > >> __entry->flags, > >> - show_lookup_flags(__entry->flags), > >> + show_fs_lookup_flags(__entry->flags), > >> MAJOR(__entry->dev), MINOR(__entry->dev), > >> (unsigned long long)__entry->dir, > >> __get_str(name) > >> @@ -392,46 +344,6 @@ DEFINE_NFS_LOOKUP_EVENT_DONE(nfs_lookup_exit); > >> DEFINE_NFS_LOOKUP_EVENT(nfs_lookup_revalidate_enter); > >> DEFINE_NFS_LOOKUP_EVENT_DONE(nfs_lookup_revalidate_exit); > >> > >> -TRACE_DEFINE_ENUM(O_WRONLY); > >> -TRACE_DEFINE_ENUM(O_RDWR); > >> -TRACE_DEFINE_ENUM(O_CREAT); > >> -TRACE_DEFINE_ENUM(O_EXCL); > >> -TRACE_DEFINE_ENUM(O_NOCTTY); > >> -TRACE_DEFINE_ENUM(O_TRUNC); > >> -TRACE_DEFINE_ENUM(O_APPEND); > >> -TRACE_DEFINE_ENUM(O_NONBLOCK); > >> -TRACE_DEFINE_ENUM(O_DSYNC); > >> -TRACE_DEFINE_ENUM(O_DIRECT); > >> -TRACE_DEFINE_ENUM(O_LARGEFILE); > >> -TRACE_DEFINE_ENUM(O_DIRECTORY); > >> -TRACE_DEFINE_ENUM(O_NOFOLLOW); > >> -TRACE_DEFINE_ENUM(O_NOATIME); > >> -TRACE_DEFINE_ENUM(O_CLOEXEC); > >> - > >> -#define show_open_flags(flags) \ > >> - __print_flags(flags, "|", \ > >> - { O_WRONLY, "O_WRONLY" }, \ > >> - { O_RDWR, "O_RDWR" }, \ > >> - { O_CREAT, "O_CREAT" }, \ > >> - { O_EXCL, "O_EXCL" }, \ > >> - { O_NOCTTY, "O_NOCTTY" }, \ > >> - { O_TRUNC, "O_TRUNC" }, \ > >> - { O_APPEND, "O_APPEND" }, \ > >> - { O_NONBLOCK, "O_NONBLOCK" }, \ > >> - { O_DSYNC, "O_DSYNC" }, \ > >> - { O_DIRECT, "O_DIRECT" }, \ > >> - { O_LARGEFILE, "O_LARGEFILE" }, \ > >> - { O_DIRECTORY, "O_DIRECTORY" }, \ > >> - { O_NOFOLLOW, "O_NOFOLLOW" }, \ > >> - { O_NOATIME, "O_NOATIME" }, \ > >> - { O_CLOEXEC, "O_CLOEXEC" }) > >> - > >> -#define show_fmode_flags(mode) \ > >> - __print_flags(mode, "|", \ > >> - { ((__force unsigned long)FMODE_READ), "READ" }, \ > >> - { ((__force unsigned long)FMODE_WRITE), "WRITE" }, \ > >> - { ((__force unsigned long)FMODE_EXEC), "EXEC" }) > >> - > >> TRACE_EVENT(nfs_atomic_open_enter, > >> TP_PROTO( > >> const struct inode *dir, > >> @@ -443,7 +355,7 @@ TRACE_EVENT(nfs_atomic_open_enter, > >> > >> TP_STRUCT__entry( > >> __field(unsigned long, flags) > >> - __field(unsigned int, fmode) > >> + __field(unsigned long, fmode) > >> __field(dev_t, dev) > >> __field(u64, dir) > >> __string(name, ctx->dentry->d_name.name) > >> @@ -453,15 +365,15 @@ TRACE_EVENT(nfs_atomic_open_enter, > >> __entry->dev = dir->i_sb->s_dev; > >> __entry->dir = NFS_FILEID(dir); > >> __entry->flags = flags; > >> - __entry->fmode = (__force unsigned int)ctx->mode; > >> + __entry->fmode = (__force unsigned long)ctx->mode; > >> __assign_str(name, ctx->dentry->d_name.name); > >> ), > >> > >> TP_printk( > >> "flags=0x%lx (%s) fmode=%s name=%02x:%02x:%llu/%s", > >> __entry->flags, > >> - show_open_flags(__entry->flags), > >> - show_fmode_flags(__entry->fmode), > >> + show_fs_fcntl_open_flags(__entry->flags), > >> + show_fs_fmode_flags(__entry->fmode), > >> MAJOR(__entry->dev), MINOR(__entry->dev), > >> (unsigned long long)__entry->dir, > >> __get_str(name) > >> @@ -481,7 +393,7 @@ TRACE_EVENT(nfs_atomic_open_exit, > >> TP_STRUCT__entry( > >> __field(unsigned long, error) > >> __field(unsigned long, flags) > >> - __field(unsigned int, fmode) > >> + __field(unsigned long, fmode) > >> __field(dev_t, dev) > >> __field(u64, dir) > >> __string(name, ctx->dentry->d_name.name) > >> @@ -492,7 +404,7 @@ TRACE_EVENT(nfs_atomic_open_exit, > >> __entry->dev = dir->i_sb->s_dev; > >> __entry->dir = NFS_FILEID(dir); > >> __entry->flags = flags; > >> - __entry->fmode = (__force unsigned int)ctx->mode; > >> + __entry->fmode = (__force unsigned long)ctx->mode; > >> __assign_str(name, ctx->dentry->d_name.name); > >> ), > >> > >> @@ -501,8 +413,8 @@ TRACE_EVENT(nfs_atomic_open_exit, > >> "name=%02x:%02x:%llu/%s", > >> -__entry->error, nfs_show_status(__entry->error), > >> __entry->flags, > >> - show_open_flags(__entry->flags), > >> - show_fmode_flags(__entry->fmode), > >> + show_fs_fcntl_open_flags(__entry->flags), > >> + show_fs_fmode_flags(__entry->fmode), > >> MAJOR(__entry->dev), MINOR(__entry->dev), > >> (unsigned long long)__entry->dir, > >> __get_str(name) > >> @@ -535,7 +447,7 @@ TRACE_EVENT(nfs_create_enter, > >> TP_printk( > >> "flags=0x%lx (%s) name=%02x:%02x:%llu/%s", > >> __entry->flags, > >> - show_open_flags(__entry->flags), > >> + show_fs_fcntl_open_flags(__entry->flags), > >> MAJOR(__entry->dev), MINOR(__entry->dev), > >> (unsigned long long)__entry->dir, > >> __get_str(name) > >> @@ -572,7 +484,7 @@ TRACE_EVENT(nfs_create_exit, > >> "error=%ld (%s) flags=0x%lx (%s) name=%02x:%02x:%llu/%s", > >> -__entry->error, nfs_show_status(__entry->error), > >> __entry->flags, > >> - show_open_flags(__entry->flags), > >> + show_fs_fcntl_open_flags(__entry->flags), > >> MAJOR(__entry->dev), MINOR(__entry->dev), > >> (unsigned long long)__entry->dir, > >> __get_str(name) > >> diff --git a/include/trace/events/fs.h b/include/trace/events/fs.h > >> new file mode 100644 > >> index 000000000000..84e20c43d0c3 > >> --- /dev/null > >> +++ b/include/trace/events/fs.h > >> @@ -0,0 +1,146 @@ > >> +/* SPDX-License-Identifier: GPL-2.0 */ > >> +/* > >> + * Display helpers for generic filesystem items > >> + * > >> + * Author: Chuck Lever > >> + * > >> + * Copyright (c) 2020, Oracle and/or its affiliates. > >> + */ > >> + > >> +#include > >> + > >> +#define show_fs_dirent_type(x) \ > >> + __print_symbolic(x, \ > >> + { DT_UNKNOWN, "UNKNOWN" }, \ > >> + { DT_FIFO, "FIFO" }, \ > >> + { DT_CHR, "CHR" }, \ > >> + { DT_DIR, "DIR" }, \ > >> + { DT_BLK, "BLK" }, \ > >> + { DT_REG, "REG" }, \ > >> + { DT_LNK, "LNK" }, \ > >> + { DT_SOCK, "SOCK" }, \ > >> + { DT_WHT, "WHT" }) > >> + > >> +#define show_fs_fcntl_open_flags(x) \ > >> + __print_flags(x, "|", \ > >> + { O_WRONLY, "O_WRONLY" }, \ > >> + { O_RDWR, "O_RDWR" }, \ > >> + { O_CREAT, "O_CREAT" }, \ > >> + { O_EXCL, "O_EXCL" }, \ > >> + { O_NOCTTY, "O_NOCTTY" }, \ > >> + { O_TRUNC, "O_TRUNC" }, \ > >> + { O_APPEND, "O_APPEND" }, \ > >> + { O_NONBLOCK, "O_NONBLOCK" }, \ > >> + { O_DSYNC, "O_DSYNC" }, \ > >> + { O_DIRECT, "O_DIRECT" }, \ > >> + { O_LARGEFILE, "O_LARGEFILE" }, \ > >> + { O_DIRECTORY, "O_DIRECTORY" }, \ > >> + { O_NOFOLLOW, "O_NOFOLLOW" }, \ > >> + { O_NOATIME, "O_NOATIME" }, \ > >> + { O_CLOEXEC, "O_CLOEXEC" }) > >> + > >> +#define __fmode_flag(x) { (__force unsigned long)FMODE_##x, #x } > >> +#define show_fs_fmode_flags(x) \ > >> + __print_flags(x, "|", \ > >> + __fmode_flag(READ), \ > >> + __fmode_flag(WRITE), \ > >> + __fmode_flag(LSEEK), \ > >> + __fmode_flag(PREAD), \ > >> + __fmode_flag(PWRITE), \ > >> + __fmode_flag(EXEC), \ > >> + __fmode_flag(NDELAY), \ > >> + __fmode_flag(EXCL), \ > >> + __fmode_flag(WRITE_IOCTL), \ > >> + __fmode_flag(32BITHASH), \ > >> + __fmode_flag(64BITHASH), \ > >> + __fmode_flag(NOCMTIME), \ > >> + __fmode_flag(RANDOM), \ > >> + __fmode_flag(UNSIGNED_OFFSET), \ > >> + __fmode_flag(PATH), \ > >> + __fmode_flag(ATOMIC_POS), \ > >> + __fmode_flag(WRITER), \ > >> + __fmode_flag(CAN_READ), \ > >> + __fmode_flag(CAN_WRITE), \ > >> + __fmode_flag(OPENED), \ > >> + __fmode_flag(CREATED), \ > >> + __fmode_flag(STREAM), \ > >> + __fmode_flag(NONOTIFY), \ > >> + __fmode_flag(NOWAIT), \ > >> + __fmode_flag(NEED_UNMOUNT), \ > >> + __fmode_flag(NOACCOUNT), \ > >> + __fmode_flag(BUF_RASYNC)) > >> + > >> +#ifdef CONFIG_64BIT > >> +#define show_fs_fcntl_cmd(x) \ > >> + __print_symbolic(x, \ > >> + { F_DUPFD, "DUPFD" }, \ > >> + { F_GETFD, "GETFD" }, \ > >> + { F_SETFD, "SETFD" }, \ > >> + { F_GETFL, "GETFL" }, \ > >> + { F_SETFL, "SETFL" }, \ > >> + { F_GETLK, "GETLK" }, \ > >> + { F_SETLK, "SETLK" }, \ > >> + { F_SETLKW, "SETLKW" }, \ > >> + { F_SETOWN, "SETOWN" }, \ > >> + { F_GETOWN, "GETOWN" }, \ > >> + { F_SETSIG, "SETSIG" }, \ > >> + { F_GETSIG, "GETSIG" }, \ > >> + { F_SETOWN_EX, "SETOWN_EX" }, \ > >> + { F_GETOWN_EX, "GETOWN_EX" }, \ > >> + { F_GETOWNER_UIDS, "GETOWNER_UIDS" }, \ > >> + { F_OFD_GETLK, "OFD_GETLK" }, \ > >> + { F_OFD_SETLK, "OFD_SETLK" }, \ > >> + { F_OFD_SETLKW, "OFD_SETLKW" }) > >> +#else /* CONFIG_64BIT */ > >> +#define show_fs_fcntl_cmd(x) \ > >> + __print_symbolic(x, \ > >> + { F_DUPFD, "DUPFD" }, \ > >> + { F_GETFD, "GETFD" }, \ > >> + { F_SETFD, "SETFD" }, \ > >> + { F_GETFL, "GETFL" }, \ > >> + { F_SETFL, "SETFL" }, \ > >> + { F_GETLK, "GETLK" }, \ > >> + { F_SETLK, "SETLK" }, \ > >> + { F_SETLKW, "SETLKW" }, \ > >> + { F_SETOWN, "SETOWN" }, \ > >> + { F_GETOWN, "GETOWN" }, \ > >> + { F_SETSIG, "SETSIG" }, \ > >> + { F_GETSIG, "GETSIG" }, \ > >> + { F_GETLK64, "GETLK64" }, \ > >> + { F_SETLK64, "SETLK64" }, \ > >> + { F_SETLKW64, "SETLKW64" }, \ > >> + { F_SETOWN_EX, "SETOWN_EX" }, \ > >> + { F_GETOWN_EX, "GETOWN_EX" }, \ > >> + { F_GETOWNER_UIDS, "GETOWNER_UIDS" }, \ > >> + { F_OFD_GETLK, "OFD_GETLK" }, \ > >> + { F_OFD_SETLK, "OFD_SETLK" }, \ > >> + { F_OFD_SETLKW, "OFD_SETLKW" }) > >> +#endif /* CONFIG_64BIT */ > >> + > >> +#define show_fs_fcntl_lock_type(x) \ > >> + __print_symbolic(x, \ > >> + { F_RDLCK, "RDLCK" }, \ > >> + { F_WRLCK, "WRLCK" }, \ > >> + { F_UNLCK, "UNLCK" }) > >> + > >> +#define show_fs_lookup_flags(flags) \ > >> + __print_flags(flags, "|", \ > >> + { LOOKUP_FOLLOW, "FOLLOW" }, \ > >> + { LOOKUP_DIRECTORY, "DIRECTORY" }, \ > >> + { LOOKUP_AUTOMOUNT, "AUTOMOUNT" }, \ > >> + { LOOKUP_EMPTY, "EMPTY" }, \ > >> + { LOOKUP_DOWN, "DOWN" }, \ > >> + { LOOKUP_MOUNTPOINT, "MOUNTPOINT" }, \ > >> + { LOOKUP_REVAL, "REVAL" }, \ > >> + { LOOKUP_RCU, "RCU" }, \ > >> + { LOOKUP_OPEN, "OPEN" }, \ > >> + { LOOKUP_CREATE, "CREATE" }, \ > >> + { LOOKUP_EXCL, "EXCL" }, \ > >> + { LOOKUP_RENAME_TARGET, "RENAME_TARGET" }, \ > >> + { LOOKUP_PARENT, "PARENT" }, \ > >> + { LOOKUP_NO_SYMLINKS, "NO_SYMLINKS" }, \ > >> + { LOOKUP_NO_MAGICLINKS, "NO_MAGICLINKS" }, \ > >> + { LOOKUP_NO_XDEV, "NO_XDEV" }, \ > >> + { LOOKUP_BENEATH, "BENEATH" }, \ > >> + { LOOKUP_IN_ROOT, "IN_ROOT" }, \ > >> + { LOOKUP_CACHED, "CACHED" }) > >> > > -- > Chuck Lever > > >