xfs: fix 32-bit truncation in xfs_compute_rextslog
authorDarrick J. Wong <djwong@kernel.org>
Sun, 3 Dec 2023 17:19:44 +0000 (09:19 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Thu, 7 Dec 2023 02:45:17 +0000 (18:45 -0800)
commitcf8f0e6c1429be7652869059ea44696b72d5b726
treeb1fb05f56e2f57cb10e9abdc6305a10ce34bafc0
parenta6a38f309afc4a7ede01242b603f36c433997780
xfs: fix 32-bit truncation in xfs_compute_rextslog

It's quite reasonable that some customer somewhere will want to
configure a realtime volume with more than 2^32 extents.  If they try to
do this, the highbit32() call will truncate the upper bits of the
xfs_rtbxlen_t and produce the wrong value for rextslog.  This in turn
causes the rsumlevels to be wrong, which results in a realtime summary
file that is the wrong length.  Fix that.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/libxfs/xfs_rtbitmap.c