From: Greg Kroah-Hartman Date: Tue, 26 Mar 2013 18:42:22 +0000 (-0700) Subject: 3.8-stable patches X-Git-Tag: v3.0.71~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0ba1acc7e34f047854a0bb583e7ac0419536da41;p=thirdparty%2Fkernel%2Fstable-queue.git 3.8-stable patches added patches: udf-fix-bitmap-overflow-on-large-filesystems-with-small-block-size.patch --- diff --git a/queue-3.8/series b/queue-3.8/series index 6b10af9f99a..85ba1bf21d7 100644 --- a/queue-3.8/series +++ b/queue-3.8/series @@ -90,3 +90,4 @@ efivars-allow-disabling-use-as-a-pstore-backend.patch efivars-add-module-parameter-to-disable-use-as-a-pstore-backend.patch efivars-fix-check-for-config_efi_vars_pstore_default_disable.patch acpi-rework-acpi_get_child-to-be-more-efficient.patch +udf-fix-bitmap-overflow-on-large-filesystems-with-small-block-size.patch diff --git a/queue-3.8/udf-fix-bitmap-overflow-on-large-filesystems-with-small-block-size.patch b/queue-3.8/udf-fix-bitmap-overflow-on-large-filesystems-with-small-block-size.patch new file mode 100644 index 00000000000..d13bd73dd1e --- /dev/null +++ b/queue-3.8/udf-fix-bitmap-overflow-on-large-filesystems-with-small-block-size.patch @@ -0,0 +1,38 @@ +From 89b1f39eb4189de745fae554b0d614d87c8d5c63 Mon Sep 17 00:00:00 2001 +From: Jan Kara +Date: Tue, 5 Feb 2013 13:59:56 +0100 +Subject: udf: Fix bitmap overflow on large filesystems with small block size + +From: Jan Kara + +commit 89b1f39eb4189de745fae554b0d614d87c8d5c63 upstream. + +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: v10lator@myway.de +Signed-off-by: Jan Kara +Cc: Jim Trigg +Signed-off-by: Greg Kroah-Hartman + +--- + fs/udf/udf_sb.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/fs/udf/udf_sb.h ++++ b/fs/udf/udf_sb.h +@@ -82,7 +82,7 @@ struct udf_virtual_data { + struct udf_bitmap { + __u32 s_extLength; + __u32 s_extPosition; +- __u16 s_nr_groups; ++ int s_nr_groups; + struct buffer_head **s_block_bitmap; + }; +