diff options
author | Andrew Morton <akpm@osdl.org> | 2006-10-11 01:21:46 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-11 11:14:21 -0700 |
commit | e5657933863f43cc6bb76a54d659303dafaa9e58 (patch) | |
tree | 7f6351194953b0d167ea79749d9fcaf9ae7f6a1f /drivers/ide | |
parent | e0ab2928cc2202f13f0574d4c6f567f166d307eb (diff) |
[PATCH] grow_buffers() infinite loop fix
If grow_buffers() is for some reason passed a block number which wants to lie
outside the maximum-addressable pagecache range (PAGE_SIZE * 4G bytes) then it
will accidentally truncate `index' and will then instnatiate a page at the
wrong pagecache offset. This causes __getblk_slow() to go into an infinite
loop.
This can happen with corrupted disks, or with software errors elsewhere.
Detect that, and handle it.
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/ide')
0 files changed, 0 insertions, 0 deletions