[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140803025033.GJ24826@thunk.org>
Date: Sat, 2 Aug 2014 22:50:33 -0400
From: Theodore Ts'o <tytso@....edu>
To: "Darrick J. Wong" <darrick.wong@...cle.com>
Cc: linux-ext4@...r.kernel.org
Subject: Re: [PATCH 10/19] libext2fs: Don't cache inodes that fail checksum
verification
On Fri, Aug 01, 2014 at 11:12:47AM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <darrick.wong@...cle.com>
>
> If an inode fails checksum verification, don't stuff a copy of it in
> the inode cache, because this can cause the library to fail to return
> the "corrupt inode" error code.
>
> In general, this happens if ext2fs_read_inode_full() is called twice
> on an inode with an incorrect checksum. If fs->flags has
> EXT2_FLAG_IGNORE_CSUM_ERRORS set during the first call and *unset*
> during the second call, the cache hit during the second call fails to
> return EXT2_ET_INODE_CSUM_INVALID as you'd expect. This happens
> during fsck because the first read_inode call happens as part of
> check_blocks and the second call happens during inode checksum
> revalidation. A file system with a slightly corrupt non-extent inode
> will trigger this.
>
> While we're at it, make the inode read function consistent with the
> rest of libext2fs -- copy the metadata object into the caller's buffer
> even if it fails checksum verification. This will help e2fsck avoid a
> double re-read later on down the line.
>
> Signed-off-by: Darrick J. Wong <darrick.wong@...cle.com>
Applied, thanks.
- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists