On 9/22/14 8:18 AM, Brian Foster wrote:
> So we verify each inode first in process_inode_chunk() and then follow
> on with process_dinode(). There's a comment further up in
> process_dinode_int() that indicates we explicitly do not check the crc
> at that point, presumably considering verify_mode. I only see one call
> to each of verify_inode() and process_dinode() (in that order). The
> other process_dinode_int() caller is verify_uncertain_dinode(), which
> looks like it occurs ultimately from process_uncertain_aginodes() in
> phase 3.
> I suppose that logic makes sense, but it's not totally clear tbh. We do
> fix up the crc in the caller if the inode is marked dirty. It also seems
> like it's possible to modify the inode before this point where we check
> the crc. Given that, it seems like we could just add an "if
> (!verify_mode)" hunk to the preexisting hascrc() hunk further up in the
Ugh, I am not sure how I missed that we could have already modified it.
Ok, that throws the whole thing out, I'll take another look.