+ ino = dirent->inode;
+
+ if (entry == DIRENT_DELETED_FILE) {
+ lbr = '<';
+ rbr = '>';
+ ino = 0;
+ } else {
+ lbr = rbr = ' ';
+ }
+ if (ls->options & LONG_OPT) {
+ if (ino) {
+ if (debugfs_read_inode(ino, &inode, name))
+ return 0;
+ modtime = inode.i_mtime;
+ tm_p = localtime(&modtime);
+ sprintf(datestr, "%2d-%s-%4d %02d:%02d",
+ tm_p->tm_mday, monstr[tm_p->tm_mon],
+ 1900 + tm_p->tm_year, tm_p->tm_hour,
+ tm_p->tm_min);
+ } else {
+ strcpy(datestr, " ");
+ memset(&inode, 0, sizeof(struct ext2_inode));
+ }
+ fprintf(ls->f, "%c%6u%c %6o (%d) %5d %5d ", lbr, ino, rbr,
+ inode.i_mode, dirent->name_len >> 8,
+ inode.i_uid, inode.i_gid);
+ if (LINUX_S_ISDIR(inode.i_mode))
+ fprintf(ls->f, "%5d", inode.i_size);
+ else
+ fprintf(ls->f, "%5lld", inode.i_size |
+ ((__u64)inode.i_size_high << 32));
+ fprintf (ls->f, " %s %s\n", datestr, name);
+ } else {
+ sprintf(tmp, "%c%u%c (%d) %s ", lbr, dirent->inode, rbr,
+ dirent->rec_len, name);
+ thislen = strlen(tmp);
+
+ if (ls->col + thislen > 80) {
+ fprintf(ls->f, "\n");
+ ls->col = 0;
+ }
+ fprintf(ls->f, "%s", tmp);
+ ls->col += thislen;
+ }