[PATCH] fs: buffer: set the expression type to unsigned long in folio_create_buffers()

From: Roman Smirnov
Date: Tue Jul 16 2024 - 05:02:43 EST


Shift without specifying the type casts the expression to int,
which is then passed as an unsigned long argument. It is necessary
to use 1UL instead.

Found by Linux Verification Center (linuxtesting.org) with Svace.

Signed-off-by: Roman Smirnov <r.smirnov@xxxxxx>
---
fs/buffer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/buffer.c b/fs/buffer.c
index 8c19e705b9c3..40dc18f1cba5 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -1782,7 +1782,7 @@ static struct buffer_head *folio_create_buffers(struct folio *folio,
bh = folio_buffers(folio);
if (!bh)
bh = create_empty_buffers(folio,
- 1 << READ_ONCE(inode->i_blkbits), b_state);
+ 1UL << READ_ONCE(inode->i_blkbits), b_state);
return bh;
}

--
2.34.1