UDF 2.50 patch for linux 2.6.24
Brought to you by:
bfennema
This patch contains changes to make it work with the Linux kernel 2.6.24 To apply the patch:
#cd /usr/src/linux-2.6.24 (or wherever the kernel source is)
#bzcat <path_to_patch_file> | patch -p1
Please direct any comments/critiques/suggestions to manciuleas at yahoo
dot
com.
UDF_2.50-linux-2.6.24.patch.bz2 w/fix for virtual part type 2.0
Logged In: YES
user_id=1510411
Originator: YES
File Added: UDF_2.50-linux-2.6.24.patch.bz2
Logged In: YES
user_id=845209
Originator: NO
To make Vista UDF 2.01 work with Linux, you'll also need to apply this patch:
diff -Nur linux-2.6.24-udf/fs/udf/super.c linux-2.6.24-udf-akw/fs/udf/super.c
--- linux-2.6.24-udf/fs/udf/super.c 2008-02-12 17:32:51.000000000 +0100
+++ linux-2.6.24-udf-akw/fs/udf/super.c 2008-02-12 17:22:01.000000000 +0100
@@ -1015,9 +1015,9 @@
UDF_SB_PARTMAPS(sb)[i].s_partition_num, le16_to_cpu(p->partitionNumber));
/* workaround problems caused by Vista */
if (UDF_SB_PARTMAPS(sb)[i].s_partition_num >= UDF_SB_NUMPARTS(sb)) {
- udf_debug("Changing parition# from %d to ", UDF_SB_PARTMAPS(sb)[i].s_partition_num);
+ int old_partnum = UDF_SB_PARTMAPS(sb)[i].s_partition_num;
UDF_SB_PARTMAPS(sb)[i].s_partition_num %= (UDF_SB_NUMPARTS(sb));
- udf_debug("%d\n", UDF_SB_PARTMAPS(sb)[i].s_partition_num);
+ udf_debug("Changing partition# from %d to %d\n", old_partnum, UDF_SB_PARTMAPS(sb)[i].s_partition_num);
} else {
udf_debug("Keeping partition# %d out of %d partitions\n",
UDF_SB_PARTMAPS(sb)[i].s_partition_num, UDF_SB_NUMPARTS(sb));
@@ -1148,6 +1148,7 @@
UDF_SB_PARTTYPE(sb,i) = UDF_VIRTUAL_MAP15;
UDF_SB_PARTFUNC(sb,i) = udf_get_pblock_virt15;
} else if ((le16_to_cpu(((__le16 *)upm2->partIdent.identSuffix)[0]) == 0x0200) ||
+ (le16_to_cpu(((__le16 *)upm2->partIdent.identSuffix)[0]) == 0x0201) ||
(le16_to_cpu(((__le16 *)upm2->partIdent.identSuffix)[0]) == 0x0250) ||
(le16_to_cpu(((__le16 *)upm2->partIdent.identSuffix)[0]) == 0x0260)) {
UDF_SB_PARTTYPE(sb,i) = UDF_VIRTUAL_MAP20;