• Andrew Morton's avatar
    [PATCH] grow_buffers() infinite loop fix · e5657933
    Andrew Morton authored
    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: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    e5657933
buffer.c 79.7 KB