[PATCH] Fix off by one error in page_region_mask()
Lachlan McIlroy
lachlan at sgi.com
Thu Dec 4 23:06:18 CST 2008
Eric Sandeen wrote:
> Lachlan McIlroy wrote:
>> Eric Sandeen wrote:
>>> Lachlan McIlroy wrote:
>>>> final is calculated to be the last bit to set (ie inclusive) but when we
>>>> do the mask shifting final really needs to be first bit not to set.
>>>>
>>>> For example if first and final are both bit 0 (ie only first bit to be set)
>>>> then mask is completely shifted and becomes all zeroes.
>>>>
>>>> Or if first is 0 and final is 63 then the mask is shifted one bit when it
>>>> shouldn't be shifted at all.
>>> Lachlan, what's the end result of this bug? What's the broken behavior?
>> There was no observed bug - well nothing I can tie directly to this code.
>> I found this by inspection while investigating the page bitmap stuff.
>> We have a problem with ia64 going to 64K page size with filesystems that
>> use a filesystem sector size of 512 bytes - we don't have the granularity
>> we need in the bitmap.
>>
>> I suppose it is possible this bug could indicate a page region is not up
>> to date when it actually is and we might re-read something from disk and
>> overwrite the more up to date in-memory version.
>
> ah, ok. So I've seen this corruption on 64k pages too, on ppc... but I
> take it this patch doesn't fix it...
I don't know - it might help. But there's still an issue beyond this patch
that needs fixing.
More information about the xfs
mailing list