Skip to content

Commit 89b1f39

Browse files
committed
udf: Fix bitmap overflow on large filesystems with small block size
For large UDF filesystems with 512-byte blocks the number of necessary bitmap blocks is larger than 2^16 so s_nr_groups in udf_bitmap overflows (the number will overflow for filesystems larger than 128 GB with 512-byte blocks). That results in ENOSPC errors despite the filesystem has plenty of free space. Fix the problem by changing s_nr_groups' type to 'int'. That is enough even for filesystems 2^32 blocks (UDF maximum) and 512-byte blocksize. Reported-and-tested-by: [email protected] Signed-off-by: Jan Kara <[email protected]>
1 parent 9960005 commit 89b1f39

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

fs/udf/udf_sb.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ struct udf_virtual_data {
8282
struct udf_bitmap {
8383
__u32 s_extLength;
8484
__u32 s_extPosition;
85-
__u16 s_nr_groups;
85+
int s_nr_groups;
8686
struct buffer_head **s_block_bitmap;
8787
};
8888

0 commit comments

Comments
 (0)