diff options
Diffstat (limited to 'fs/ubifs/tnc.c')
-rw-r--r-- | fs/ubifs/tnc.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/ubifs/tnc.c b/fs/ubifs/tnc.c index d279012d8dd5..66dc57100bdf 100644 --- a/fs/ubifs/tnc.c +++ b/fs/ubifs/tnc.c | |||
@@ -470,6 +470,10 @@ static int try_read_node(const struct ubifs_info *c, void *buf, int type, | |||
470 | if (node_len != len) | 470 | if (node_len != len) |
471 | return 0; | 471 | return 0; |
472 | 472 | ||
473 | if (type == UBIFS_DATA_NODE && !c->always_chk_crc) | ||
474 | if (c->no_chk_data_crc) | ||
475 | return 0; | ||
476 | |||
473 | crc = crc32(UBIFS_CRC32_INIT, buf + 8, node_len - 8); | 477 | crc = crc32(UBIFS_CRC32_INIT, buf + 8, node_len - 8); |
474 | node_crc = le32_to_cpu(ch->crc); | 478 | node_crc = le32_to_cpu(ch->crc); |
475 | if (crc != node_crc) | 479 | if (crc != node_crc) |
@@ -1687,7 +1691,7 @@ static int validate_data_node(struct ubifs_info *c, void *buf, | |||
1687 | goto out_err; | 1691 | goto out_err; |
1688 | } | 1692 | } |
1689 | 1693 | ||
1690 | err = ubifs_check_node(c, buf, zbr->lnum, zbr->offs, 0); | 1694 | err = ubifs_check_node(c, buf, zbr->lnum, zbr->offs, 0, 0); |
1691 | if (err) { | 1695 | if (err) { |
1692 | ubifs_err("expected node type %d", UBIFS_DATA_NODE); | 1696 | ubifs_err("expected node type %d", UBIFS_DATA_NODE); |
1693 | goto out; | 1697 | goto out; |