]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
super1: fix truncation check for journal device
authorHristo Venev <hristo@venev.name>
Sat, 1 Apr 2023 20:01:35 +0000 (23:01 +0300)
committerJes Sorensen <jes@trained-monkey.org>
Mon, 10 Apr 2023 15:24:55 +0000 (11:24 -0400)
The journal device can be smaller than the component devices.

Fixes: 171e9743881e ("super1: report truncated device")
Signed-off-by: Hristo Venev <hristo@venev.name>
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
super1.c

index f7020320eaf223307da0c95cce76593e92a781c6..44d6ecad43d047c6a199b2fc6b397dc7d4c23a98 100644 (file)
--- a/super1.c
+++ b/super1.c
@@ -2359,8 +2359,9 @@ static int load_super1(struct supertype *st, int fd, char *devname)
 
        if (st->minor_version >= 1 &&
            st->ignore_hw_compat == 0 &&
-           (dsize < (__le64_to_cpu(super->data_offset) +
-                     __le64_to_cpu(super->size))
+           ((role_from_sb(super) != MD_DISK_ROLE_JOURNAL &&
+                 dsize < (__le64_to_cpu(super->data_offset) +
+                     __le64_to_cpu(super->size)))
             ||
             dsize < (__le64_to_cpu(super->data_offset) +
                      __le64_to_cpu(super->data_size)))) {