1 |
Am 12.12.2011 21:33, schrieb James Broadhead: |
2 |
> On 12 December 2011 14:14, James Broadhead <jamesbroadhead@×××××.com> wrote: |
3 |
>> ext4: "fill_buffer on unknown block <BLOCKID> out of range" |
4 |
> |
5 |
> Apologies; the correct message is: |
6 |
> grow_buffers: requested out-of-range block 18446744072382021139 for device sdb1 |
7 |
> |
8 |
> This appears 42 times immediately following mount. |
9 |
> |
10 |
> Running picasa today, it informed me that one of the files I was |
11 |
> working with was corrupted (but put the message in a box too small to |
12 |
> read the full path). |
13 |
> |
14 |
> This makes me think that perhaps the disk is bad. Any advice, aside |
15 |
> from the usual "get your data off asap"? |
16 |
> |
17 |
|
18 |
I've looked at the kernel code that causes the error message. It |
19 |
verifies that this is most likely a dead disk: |
20 |
|
21 |
<quote> |
22 |
|
23 |
commit e5657933863f43cc6bb76a54d659303dafaa9e58 |
24 |
Author: Andrew Morton <akpm@××××.org> |
25 |
Date: Wed Oct 11 01:21:46 2006 -0700 |
26 |
|
27 |
[PATCH] grow_buffers() infinite loop fix |
28 |
|
29 |
If grow_buffers() is for some reason passed a block number which wants |
30 |
to lie outside the maximum-addressable pagecache range (PAGE_SIZE * 4G |
31 |
bytes) then it will accidentally truncate `index' and will then |
32 |
instnatiate[sic] a page at the wrong pagecache offset. This causes |
33 |
__getblk_slow() to go into an infinite loop. |
34 |
|
35 |
This can happen with corrupted disks, or with software errors elsewhere. |
36 |
|
37 |
Detect that, and handle it. |
38 |
|
39 |
</quote> |
40 |
|
41 |
Regards, |
42 |
Florian Philipp |