On 13 Dec 2000, Henrik [ISO-8859-1] Størner wrote:
> Just to add a "me too" on this. I didn't report when I saw it last week,
> because I was uncertain of exactly what might have caused it - I was
> booting several different kernels at the time, including one from a
> rescue disk (I was trying to salvage bits of a Win9x disk at the time -
> don't ask for details!)
>
> Alas, I lost the test program someone wrote to test for the truncate
> problem, and due to moving I will not be able to test anything until
> next Monday. But if needed, I can do some testing then. Something
> definitely went wrong with innd during the test12 pre-patches.
It may be a side effect of removing partial_clear() in test12-final.
Relevant chunk (in mm/memory.c):
@@ -953,10 +914,6 @@
/* Ok, partially affected.. */
start += diff << PAGE_SHIFT;
len = (len - diff) << PAGE_SHIFT;
- if (start & ~PAGE_MASK) {
- partial_clear(mpnt, start);
- start = (start + ~PAGE_MASK) & PAGE_MASK;
- }
flush_cache_range(mm, start, end);
zap_page_range(mm, start, len);
flush_tlb_range(mm, start, end);
should actually be
@@ -954,7 +915,6 @@
start += diff << PAGE_SHIFT;
len = (len - diff) << PAGE_SHIFT;
if (start & ~PAGE_MASK) {
- partial_clear(mpnt, start);
start = (start + ~PAGE_MASK) & PAGE_MASK;
}
flush_cache_range(mm, start, end);
IOW, we have off-by-one when calling zap_page_range() and friends.
Cheers,
Al
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/