Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fa964540 authored by Daeho Jeong's avatar Daeho Jeong Committed by Theodore Ts'o
Browse files

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: default avatarDaeho Jeong <daeho.jeong@samsung.com>
Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
parent b47820ed
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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);