ext4: correct error value of function verifying dx checksum
ext4_dx_csum_verify() returns the success return value in two checksum verification failure cases. We need to set the return values to zero as failure like ext4_dirent_csum_verify() returning zero when failing to find a checksum dirent at the tail. Signed-off-by: Daeho Jeong <daeho.jeong@samsung.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:
parent
b47820edd1
commit
fa96454069
|
@ -445,14 +445,14 @@ static int ext4_dx_csum_verify(struct inode *inode,
|
|||
c = get_dx_countlimit(inode, dirent, &count_offset);
|
||||
if (!c) {
|
||||
EXT4_ERROR_INODE(inode, "dir seems corrupt? Run e2fsck -D.");
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
limit = le16_to_cpu(c->limit);
|
||||
count = le16_to_cpu(c->count);
|
||||
if (count_offset + (limit * sizeof(struct dx_entry)) >
|
||||
EXT4_BLOCK_SIZE(inode->i_sb) - sizeof(struct dx_tail)) {
|
||||
warn_no_space_for_csum(inode);
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
t = (struct dx_tail *)(((struct dx_entry *)c) + limit);
|
||||
|
||||
|
|
Loading…
Reference in New Issue