logfs: fix logfs_seek_hole()
authorJoern Engel <joern@logfs.org>
Sat, 1 May 2010 15:33:06 +0000 (17:33 +0200)
committerJoern Engel <joern@logfs.org>
Sat, 1 May 2010 16:02:30 +0000 (18:02 +0200)
logfs_seek_hole(inode, 0x200) would crap itself if the inode contained
just 0x1ff (or fewer) blocks.

Signed-off-by: Joern Engel <joern@logfs.org>
fs/logfs/readwrite.c

index 8c663a5..e37cee3 100644 (file)
@@ -892,6 +892,8 @@ u64 logfs_seek_hole(struct inode *inode, u64 bix)
                return bix;
        else if (li->li_data[INDIRECT_INDEX] & LOGFS_FULLY_POPULATED)
                bix = maxbix(li->li_height);
+       else if (bix >= maxbix(li->li_height))
+               return bix;
        else {
                bix = seek_holedata_loop(inode, bix, 0);
                if (bix < maxbix(li->li_height))