Dave Chinner b9b3fe152e xfs: convert buffer flags to unsigned.
5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
fields to be unsigned. This manifests as a compiler error such as:

/kisskb/src/fs/xfs/./xfs_trace.h:432:2: note: in expansion of macro 'TP_printk'
  TP_printk("dev %d:%d daddr 0x%llx bbcount 0x%x hold %d pincount %d "
  ^
/kisskb/src/fs/xfs/./xfs_trace.h:440:5: note: in expansion of macro '__print_flags'
     __print_flags(__entry->flags, "|", XFS_BUF_FLAGS),
     ^
/kisskb/src/fs/xfs/xfs_buf.h:67:4: note: in expansion of macro 'XBF_UNMAPPED'
  { XBF_UNMAPPED,  "UNMAPPED" }
    ^
/kisskb/src/fs/xfs/./xfs_trace.h:440:40: note: in expansion of macro 'XFS_BUF_FLAGS'
     __print_flags(__entry->flags, "|", XFS_BUF_FLAGS),
                                        ^
/kisskb/src/fs/xfs/./xfs_trace.h: In function 'trace_raw_output_xfs_buf_flags_class':
/kisskb/src/fs/xfs/xfs_buf.h:46:23: error: initializer element is not constant
 #define XBF_UNMAPPED  (1 << 31)/* do not map the buffer */

as __print_flags assigns XFS_BUF_FLAGS to a structure that uses an
unsigned long for the flag. Since this results in the value of
XBF_UNMAPPED causing a signed integer overflow, the result is
technically undefined behavior, which gcc-5 does not accept as an
integer constant.

This is based on a patch from Arnd Bergman <arnd@arndb.de>.

Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2022-04-21 08:44:59 +10:00
..
2022-03-31 15:49:36 -07:00
2022-03-22 18:26:56 -07:00
2022-03-22 18:26:56 -07:00
2022-03-31 15:49:36 -07:00
2022-03-22 18:26:56 -07:00
2022-04-05 08:59:37 -07:00
2022-03-31 15:49:36 -07:00
2022-04-04 22:40:14 -05:00
2022-03-22 17:03:12 -07:00
2022-01-12 11:11:34 -08:00
2022-03-22 18:26:56 -07:00
2022-04-01 14:20:24 -07:00
\n
2022-03-25 17:38:15 -07:00
2022-03-31 15:49:36 -07:00
2022-03-31 15:57:50 -07:00
2022-03-22 18:26:56 -07:00
2022-03-22 18:26:56 -07:00
2022-03-22 18:26:56 -07:00
2022-03-22 18:26:56 -07:00
2022-03-22 18:26:56 -07:00
2022-03-29 18:17:30 -07:00
2022-04-01 14:39:28 -07:00
2022-04-08 07:39:17 -10:00
2022-03-22 17:03:12 -07:00
2022-03-22 18:26:56 -07:00
2022-04-03 12:26:01 -07:00
\n
2022-03-25 17:38:15 -07:00
2022-03-22 18:26:56 -07:00
\n
2022-03-25 17:38:15 -07:00
2022-03-22 18:26:56 -07:00
2022-03-22 18:26:56 -07:00
2022-03-26 11:51:46 -07:00
2021-11-17 09:26:09 +01:00
2022-03-21 19:16:02 -07:00
2022-04-01 14:40:44 -04:00
2022-03-28 17:29:53 -07:00
2022-03-24 18:12:09 -07:00
2022-03-28 17:29:53 -07:00
2022-03-08 17:55:03 -07:00
2022-03-28 17:29:53 -07:00
2022-04-07 11:17:28 -06:00
2022-04-01 19:35:56 -07:00
2022-03-22 17:03:12 -07:00
2022-03-21 19:16:02 -07:00
2022-03-26 11:59:30 -07:00
\n
2022-01-28 17:51:31 +02:00
2022-03-08 17:55:03 -07:00
2022-03-10 09:33:55 -07:00