summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHristo Venev <hristo@venev.name>2023-04-01 23:01:35 +0300
committerJes Sorensen <jes@trained-monkey.org>2023-04-10 11:24:55 -0400
commit1c6f2a1dbfe17df14dd5b062fc53a60c5c387e47 (patch)
tree9870cc5ab1fa2afe75c69702cd009aedc5347d3f
parent890212d6800646153210ac264ce73035cc7dd5cc (diff)
downloadmdadm-1c6f2a1dbfe17df14dd5b062fc53a60c5c387e47.tar.gz
super1: fix truncation check for journal device
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>
-rw-r--r--super1.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/super1.c b/super1.c
index f702032..44d6eca 100644
--- 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)))) {