Browse Source

logfs: fix logfs_seek_hole()

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>
Joern Engel 15 years ago
parent
commit
bd2b3f2959
1 changed files with 2 additions and 0 deletions
  1. 2 0
      fs/logfs/readwrite.c

+ 2 - 0
fs/logfs/readwrite.c

@@ -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))