]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 1 Apr 2018 09:50:00 +0000 (11:50 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 1 Apr 2018 09:50:00 +0000 (11:50 +0200)
added patches:
partitions-msdos-unable-to-mount-ufs-44bsd-partitions.patch

queue-4.14/partitions-msdos-unable-to-mount-ufs-44bsd-partitions.patch [new file with mode: 0644]
queue-4.14/series

diff --git a/queue-4.14/partitions-msdos-unable-to-mount-ufs-44bsd-partitions.patch b/queue-4.14/partitions-msdos-unable-to-mount-ufs-44bsd-partitions.patch
new file mode 100644 (file)
index 0000000..a601534
--- /dev/null
@@ -0,0 +1,39 @@
+From 5f15684bd5e5ef39d4337988864fec8012471dda Mon Sep 17 00:00:00 2001
+From: Richard Narron <comet.berkeley@gmail.com>
+Date: Wed, 10 Jan 2018 09:12:16 -0700
+Subject: partitions/msdos: Unable to mount UFS 44bsd partitions
+
+From: Richard Narron <comet.berkeley@gmail.com>
+
+commit 5f15684bd5e5ef39d4337988864fec8012471dda upstream.
+
+UFS partitions from newer versions of FreeBSD 10 and 11 use relative
+addressing for their subpartitions. But older versions of FreeBSD still
+use absolute addressing just like OpenBSD and NetBSD.
+
+Instead of simply testing for a FreeBSD partition, the code needs to
+also test if the starting offset of the C subpartition is zero.
+
+https://bugzilla.kernel.org/show_bug.cgi?id=197733
+
+Signed-off-by: Richard Narron <comet.berkeley@gmail.com>
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ block/partitions/msdos.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/block/partitions/msdos.c
++++ b/block/partitions/msdos.c
+@@ -301,7 +301,9 @@ static void parse_bsd(struct parsed_part
+                       continue;
+               bsd_start = le32_to_cpu(p->p_offset);
+               bsd_size = le32_to_cpu(p->p_size);
+-              if (memcmp(flavour, "bsd\0", 4) == 0)
++              /* FreeBSD has relative offset if C partition offset is zero */
++              if (memcmp(flavour, "bsd\0", 4) == 0 &&
++                  le32_to_cpu(l->d_partitions[2].p_offset) == 0)
+                       bsd_start += offset;
+               if (offset == bsd_start && size == bsd_size)
+                       /* full parent partition, we have it already */
index a9b1c892b952933d2975f949bec55841a4f6bab3..b9f56f3984896cb0c9221c742769dca7a1ce2945 100644 (file)
@@ -14,3 +14,4 @@ ipc-shm.c-add-split-function-to-shm_vm_ops.patch
 i2c-i2c-stm32f7-fix-no-check-on-returned-setup.patch
 powerpc-64s-fix-lost-pending-interrupt-due-to-race-causing-lost-update-to-irq_happened.patch
 powerpc-64s-fix-i-side-slb-miss-bad-address-handler-saving-nonvolatile-gprs.patch
+partitions-msdos-unable-to-mount-ufs-44bsd-partitions.patch