[PATCH] fix xip sparse file handling in ext2
authorCarsten Otte <cotte@freenet.de>
Wed, 27 Jul 2005 18:43:52 +0000 (11:43 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 27 Jul 2005 23:25:53 +0000 (16:25 -0700)
Oliver Paukstadt from our test department is testing the xip patches in
Linus' git-tree.  He found a problem that shows when reading a file that
contains sparse blocks (holes) on a -o xip mounted ext2 filesystem: the
BUG_ON() in fs/ext2/xip.c:40 triggers where it should not.  The problem was
introduced by a cleanup in my previous patch, this patch fixes it.

Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/ext2/xip.c

index 0aa5ac159c0940947925425c06d2a688c0bb05bc..ca7f00312388efabd9a16b38c52df28e4917aee0 100644 (file)
@@ -36,7 +36,7 @@ __ext2_get_sector(struct inode *inode, sector_t offset, int create,
        *result = tmp.b_blocknr;
 
        /* did we get a sparse block (hole in the file)? */
-       if (!(*result)) {
+       if (!tmp.b_blocknr && !rc) {
                BUG_ON(create);
                rc = -ENODATA;
        }