#ifndef lint
static const char rcsid[] =
- "$Id: traverse.c,v 1.49 2002/07/19 14:57:39 stelian Exp $";
+ "$Id: traverse.c,v 1.51 2002/09/02 12:20:26 stelian Exp $";
#endif /* not lint */
#include <config.h>
* dump blocks (sizeest vs. blkest in the indirect block
* calculation).
*/
- blkest = howmany((u_quad_t)dp->di_blocks*fs->blocksize, TP_BSIZE);
+ blkest = howmany((u_quad_t)dp->di_blocks * 512, TP_BSIZE);
i_size = dp->di_size + ((u_quad_t) dp->di_size_high << 32);
sizeest = howmany(i_size, TP_BSIZE);
if (blkest > sizeest)
dp->d_ino = dirent->inode;
dp->d_reclen = reclen;
dp->d_namlen = dirent->name_len & 0xFF;
+ switch ((dirent->name_len & 0xFF00) >> 8) {
+ default:
+ dp->d_type = DT_UNKNOWN;
+ break;
+ case EXT2_FT_REG_FILE:
+ dp->d_type = DT_REG;
+ break;
+ case EXT2_FT_DIR:
+ dp->d_type = DT_DIR;
+ break;
+ case EXT2_FT_CHRDEV:
+ dp->d_type = DT_CHR;
+ break;
+ case EXT2_FT_BLKDEV:
+ dp->d_type = DT_BLK;
+ break;
+ case EXT2_FT_FIFO:
+ dp->d_type = DT_FIFO;
+ break;
+ case EXT2_FT_SOCK:
+ dp->d_type = DT_SOCK;
+ break;
+ case EXT2_FT_SYMLINK:
+ dp->d_type = DT_LNK;
+ break;
+ }
strncpy(dp->d_name, dirent->name, dp->d_namlen);
dp->d_name[dp->d_namlen] = '\0';
p->prev_offset = p->offset;