[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <m3zm8hl1yu.fsf@bzzz.home.net>
Date: Thu, 18 Jan 2007 01:31:37 +0300
From: Alex Tomas <alex@...sterfs.com>
To: Andreas Dilger <adilger@...sterfs.com>
Cc: Alex Tomas <alex@...sterfs.com>, linux-ext4@...r.kernel.org
Subject: Re: [PATCH] more sanity check in extents
>>>>> Andreas Dilger (AD) writes:
AD> On Jan 12, 2007 03:18 +0300, Alex Tomas wrote:
>> + /* after split, a leaf can get zero entries
>> + * thus there is nothing to check */
>> + if (le16_to_cpu(path->p_hdr->eh_entries) == 0)
>> + return 0;
>> +
>> + if (depth == 0)
>> + first = le32_to_cpu(EXT_FIRST_EXTENT(path->p_hdr)->ee_block);
>> + else
>> + first = le32_to_cpu(EXT_FIRST_INDEX(path->p_hdr)->ei_block);
>> + path--;
>> + key = le32_to_cpu(path->p_idx->ei_block);
>> +
>> + if (likely(first == key))
>> + return 0;
AD> What happens if, say, a leaf is split and then the first part of the split
AD> is removed? This could only happen with punch() on a running filesystem,
AD> but in e2fsck a corrupt extent will be removed from the leaf without
AD> updating the parent index's range.
hmm. e2fsck must update. there are other places in extents where
first extent in a block is supposed to match key in index.
ldiskfs_ext_next_allocated_block(), for example.
thanks, Alex
-
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