Re: [PATCH] more sanity check in extents

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>>>>> 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@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux