iomap: use an unsigned type for IOMAP_DIO_* defines
authorJens Axboe <axboe@kernel.dk>
Sat, 22 Jul 2023 16:28:37 +0000 (10:28 -0600)
committerJens Axboe <axboe@kernel.dk>
Tue, 1 Aug 2023 23:32:32 +0000 (17:32 -0600)
IOMAP_DIO_DIRTY shifts by 31 bits, which makes UBSAN unhappy. Clean up
all the defines by making the shifted value an unsigned value.

Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reported-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/iomap/direct-io.c

index 0ce60e8..7d627d4 100644 (file)
  * Private flags for iomap_dio, must not overlap with the public ones in
  * iomap.h:
  */
-#define IOMAP_DIO_WRITE_FUA    (1 << 28)
-#define IOMAP_DIO_NEED_SYNC    (1 << 29)
-#define IOMAP_DIO_WRITE                (1 << 30)
-#define IOMAP_DIO_DIRTY                (1 << 31)
+#define IOMAP_DIO_WRITE_FUA    (1U << 28)
+#define IOMAP_DIO_NEED_SYNC    (1U << 29)
+#define IOMAP_DIO_WRITE                (1U << 30)
+#define IOMAP_DIO_DIRTY                (1U << 31)
 
 struct iomap_dio {
        struct kiocb            *iocb;