diff options
author | Anders Grafström <grfstrm@users.sourceforge.net> | 2009-08-04 13:11:47 +0200 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2009-08-04 12:13:06 +0100 |
commit | 57ca7deb062abf56168d15f000c16e25f88a9cf3 (patch) | |
tree | f9dac86ff98ca5f40498834fbd74559437398329 /fs/jffs2/file.c | |
parent | d676c11727815761e41a81b00c054b4bec452ae5 (diff) | |
download | lwn-57ca7deb062abf56168d15f000c16e25f88a9cf3.tar.gz lwn-57ca7deb062abf56168d15f000c16e25f88a9cf3.zip |
jffs2: Fix return value from jffs2_do_readpage_nolock()
This fixes "kernel BUG at fs/jffs2/file.c:251!".
This pseudocode hopefully illustrates the scenario that triggers it:
jffs2_write_begin {
jffs2_do_readpage_nolock {
jffs2_read_inode_range {
jffs2_read_dnode {
Data CRC 33c102e9 != calculated CRC 0ef77e7b for node at 005d42e4
return -EIO;
}
}
ClearPageUptodate(pg);
return 0;
}
}
jffs2_write_end {
BUG_ON(!PageUptodate(pg));
}
Signed-off-by: Anders Grafström <grfstrm@users.sourceforge.net>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'fs/jffs2/file.c')
-rw-r--r-- | fs/jffs2/file.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/jffs2/file.c b/fs/jffs2/file.c index 5edc2bf20581..23c947539864 100644 --- a/fs/jffs2/file.c +++ b/fs/jffs2/file.c @@ -99,7 +99,7 @@ static int jffs2_do_readpage_nolock (struct inode *inode, struct page *pg) kunmap(pg); D2(printk(KERN_DEBUG "readpage finished\n")); - return 0; + return ret; } int jffs2_do_readpage_unlock(struct inode *inode, struct page *pg) |