>> The bug of nr_hashed_buffers inconsistency is due where
>> nr_hashed_buffers++ nr_hashed_buffers-- are been placed by me. They has to
>> be placed in the path where pprev is != 0. It's really a minor issue
>> though.
> I'm not sure...
I agree completly that fixing/cleaning-up other code will desiderable too,
but moving nr_hashed_buffers where we really hash/unhash entries will
_assure_ us that nr_hashed_buffers will be _always_ relialable.
> It looks like we actually need to replace
>remove_from_hash_queue(bh);
> with
>remove_from_queues(bh);
>bh->b_dev = B_FREE;
>insert_into_queues(bh);
I just said exactly that some days ago in my _first_ email with the
subject `buffer.c glitches'. Both invalidate_buffers() and set_blocksize()
should put all invalidated buffers in the freelist.
Andrea Arcangeli
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/