#ifndef lint
static const char rcsid[] =
- "$Id: traverse.c,v 1.33 2001/04/11 13:42:52 stelian Exp $";
+ "$Id: traverse.c,v 1.35 2001/07/18 08:50:58 stelian Exp $";
#endif /* not lint */
#include <config.h>
#include <sys/param.h>
#include <sys/stat.h>
#ifdef __linux__
+#ifdef HAVE_EXT2FS_EXT2_FS_H
+#include <ext2fs/ext2_fs.h>
+#else
#include <linux/ext2_fs.h>
+#endif
#include <ext2fs/ext2fs.h>
#include <bsdcompat.h>
#include <compaterr.h>
ext2fs_block_iterate2(fs, (ext2_ino_t)ino, 0, NULL, dumponeblock, (void *)&bc);
/* deal with holes at the end of the inode */
- remaining = i_size - bc.next_block*sblock->fs_fsize;
- if (remaining > 0)
+ if (i_size > bc.next_block*sblock->fs_fsize) {
+ remaining = i_size - bc.next_block*sblock->fs_fsize;
for (i = 0; i < howmany(remaining, sblock->fs_fsize); i++) {
bc.buf[bc.cnt++] = 0;
if (bc.cnt == bc.max) {
bc.cnt = 0;
}
}
+ }
if (bc.cnt > 0) {
blksout (bc.buf, bc.cnt, bc.ino);
}