From: kernel test robot <lkp@intel.com>
To: "Darrick J. Wong" <darrick.wong@oracle.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: [djwong-xfs:xfs-6.13-fixes 156/160] fs/xfs/xfs_trans.c:869:33: error: too few arguments provided to function-like macro invocation
Date: Mon, 25 Nov 2024 19:32:10 +0800 [thread overview]
Message-ID: <202411251931.U84iuZFY-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git xfs-6.13-fixes
head: 90f5ef1b89eb33844fc8254ba587ba0616c0bf26
commit: 12c0ebae7d6efa377d39c04dd2e1d8de42cc3e61 [156/160] xfs: don't lose solo dquot update transactions
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20241125/202411251931.U84iuZFY-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241125/202411251931.U84iuZFY-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202411251931.U84iuZFY-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
In file included from fs/xfs/xfs_trans.c:7:
In file included from fs/xfs/xfs.h:26:
In file included from fs/xfs/xfs_linux.h:25:
In file included from include/linux/mm.h:2213:
include/linux/vmstat.h:504:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
504 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
505 | item];
| ~~~~
include/linux/vmstat.h:511:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
511 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
512 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
518 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:524:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
524 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
525 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> fs/xfs/xfs_trans.c:869:33: error: too few arguments provided to function-like macro invocation
869 | xfs_trans_apply_dquot_deltas(tp);
| ^
fs/xfs/xfs_quota.h:176:9: note: macro 'xfs_trans_apply_dquot_deltas' defined here
176 | #define xfs_trans_apply_dquot_deltas(tp, a)
| ^
>> fs/xfs/xfs_trans.c:869:2: error: use of undeclared identifier 'xfs_trans_apply_dquot_deltas'; did you mean 'xfs_trans_apply_sb_deltas'?
869 | xfs_trans_apply_dquot_deltas(tp);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| xfs_trans_apply_sb_deltas
fs/xfs/xfs_trans.c:485:1: note: 'xfs_trans_apply_sb_deltas' declared here
485 | xfs_trans_apply_sb_deltas(
| ^
>> fs/xfs/xfs_trans.c:923:41: error: too many arguments provided to function-like macro invocation
923 | xfs_trans_unreserve_and_mod_dquots(tp, true);
| ^
fs/xfs/xfs_quota.h:177:9: note: macro 'xfs_trans_unreserve_and_mod_dquots' defined here
177 | #define xfs_trans_unreserve_and_mod_dquots(tp)
| ^
>> fs/xfs/xfs_trans.c:923:2: error: use of undeclared identifier 'xfs_trans_unreserve_and_mod_dquots'; did you mean 'xfs_trans_unreserve_and_mod_sb'?
923 | xfs_trans_unreserve_and_mod_dquots(tp, true);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| xfs_trans_unreserve_and_mod_sb
fs/xfs/xfs_trans.c:620:1: note: 'xfs_trans_unreserve_and_mod_sb' declared here
620 | xfs_trans_unreserve_and_mod_sb(
| ^
>> fs/xfs/xfs_trans.c:869:2: warning: expression result unused [-Wunused-value]
869 | xfs_trans_apply_dquot_deltas(tp);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/xfs/xfs_trans.c:923:2: warning: expression result unused [-Wunused-value]
923 | xfs_trans_unreserve_and_mod_dquots(tp, true);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/xfs/xfs_trans.c:1017:41: error: too many arguments provided to function-like macro invocation
1017 | xfs_trans_unreserve_and_mod_dquots(tp, false);
| ^
fs/xfs/xfs_quota.h:177:9: note: macro 'xfs_trans_unreserve_and_mod_dquots' defined here
177 | #define xfs_trans_unreserve_and_mod_dquots(tp)
| ^
fs/xfs/xfs_trans.c:1017:2: error: use of undeclared identifier 'xfs_trans_unreserve_and_mod_dquots'; did you mean 'xfs_trans_unreserve_and_mod_sb'?
1017 | xfs_trans_unreserve_and_mod_dquots(tp, false);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| xfs_trans_unreserve_and_mod_sb
fs/xfs/xfs_trans.c:620:1: note: 'xfs_trans_unreserve_and_mod_sb' declared here
620 | xfs_trans_unreserve_and_mod_sb(
| ^
fs/xfs/xfs_trans.c:1017:2: warning: expression result unused [-Wunused-value]
1017 | xfs_trans_unreserve_and_mod_dquots(tp, false);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7 warnings and 6 errors generated.
vim +869 fs/xfs/xfs_trans.c
837
838 /*
839 * Commit the given transaction to the log.
840 *
841 * XFS disk error handling mechanism is not based on a typical
842 * transaction abort mechanism. Logically after the filesystem
843 * gets marked 'SHUTDOWN', we can't let any new transactions
844 * be durable - ie. committed to disk - because some metadata might
845 * be inconsistent. In such cases, this returns an error, and the
846 * caller may assume that all locked objects joined to the transaction
847 * have already been unlocked as if the commit had succeeded.
848 * Do not reference the transaction structure after this call.
849 */
850 static int
851 __xfs_trans_commit(
852 struct xfs_trans *tp,
853 bool regrant)
854 {
855 struct xfs_mount *mp = tp->t_mountp;
856 struct xlog *log = mp->m_log;
857 xfs_csn_t commit_seq = 0;
858 int error = 0;
859 int sync = tp->t_flags & XFS_TRANS_SYNC;
860
861 trace_xfs_trans_commit(tp, _RET_IP_);
862
863 /*
864 * Commit per-transaction changes that are not already tracked through
865 * log items. This can add dirty log items to the transaction.
866 */
867 if (tp->t_flags & XFS_TRANS_SB_DIRTY)
868 xfs_trans_apply_sb_deltas(tp);
> 869 xfs_trans_apply_dquot_deltas(tp);
870
871 error = xfs_trans_run_precommits(tp);
872 if (error)
873 goto out_unreserve;
874
875 /*
876 * If there is nothing to be logged by the transaction,
877 * then unlock all of the items associated with the
878 * transaction and free the transaction structure.
879 * Also make sure to return any reserved blocks to
880 * the free pool.
881 */
882 if (!(tp->t_flags & XFS_TRANS_DIRTY))
883 goto out_unreserve;
884
885 /*
886 * We must check against log shutdown here because we cannot abort log
887 * items and leave them dirty, inconsistent and unpinned in memory while
888 * the log is active. This leaves them open to being written back to
889 * disk, and that will lead to on-disk corruption.
890 */
891 if (xlog_is_shutdown(log)) {
892 error = -EIO;
893 goto out_unreserve;
894 }
895
896 ASSERT(tp->t_ticket != NULL);
897
898 xlog_cil_commit(log, tp, &commit_seq, regrant);
899
900 xfs_trans_free(tp);
901
902 /*
903 * If the transaction needs to be synchronous, then force the
904 * log out now and wait for it.
905 */
906 if (sync) {
907 error = xfs_log_force_seq(mp, commit_seq, XFS_LOG_SYNC, NULL);
908 XFS_STATS_INC(mp, xs_trans_sync);
909 } else {
910 XFS_STATS_INC(mp, xs_trans_async);
911 }
912
913 return error;
914
915 out_unreserve:
916 xfs_trans_unreserve_and_mod_sb(tp);
917
918 /*
919 * It is indeed possible for the transaction to be not dirty but
920 * the dqinfo portion to be. All that means is that we have some
921 * (non-persistent) quota reservations that need to be unreserved.
922 */
> 923 xfs_trans_unreserve_and_mod_dquots(tp, true);
924 if (tp->t_ticket) {
925 if (regrant && !xlog_is_shutdown(log))
926 xfs_log_ticket_regrant(log, tp->t_ticket);
927 else
928 xfs_log_ticket_ungrant(log, tp->t_ticket);
929 tp->t_ticket = NULL;
930 }
931 xfs_trans_free_items(tp, !!error);
932 xfs_trans_free(tp);
933
934 XFS_STATS_INC(mp, xs_trans_empty);
935 return error;
936 }
937
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2024-11-25 11:32 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202411251931.U84iuZFY-lkp@intel.com \
--to=lkp@intel.com \
--cc=darrick.wong@oracle.com \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.