* Ported to Linux's Second Extended File System as part of the
* dump and restore backup suit
* Remy Card <card@Linux.EU.Org>, 1994-1997
- * Stelian Pop <pop@cybercable.fr>, 1999
- *
+ * Stelian Pop <pop@cybercable.fr>, 1999-2000
*/
/*
*/
#ifndef lint
-#if 0
-static char sccsid[] = "@(#)dirs.c 8.7 (Berkeley) 5/1/95";
-#endif
static const char rcsid[] =
- "$Id: dirs.c,v 1.3 1999/10/11 12:59:19 stelian Exp $";
+ "$Id: dirs.c,v 1.9 2000/03/01 10:16:05 stelian Exp $";
#endif /* not lint */
#include <sys/param.h>
if (Bcvt)
swabst((u_char *)"is", (u_char *) dp);
if (oldinofmt && dp->d_ino != 0) {
-#ifdef __linux__
- if (Bcvt)
- swabst((u_char *)"s", (u_char *)&dp->d_namlen);
-#else
# if BYTE_ORDER == BIG_ENDIAN
if (Bcvt)
dp->d_namlen = dp->d_type;
if (!Bcvt)
dp->d_namlen = dp->d_type;
# endif
-#endif /* __linux__ */
dp->d_type = DT_UNKNOWN;
}
-#ifdef __linux__
- /*
- * Horrible hack to read FreeBSD 2.0 dumps
- */
- if (!oldinofmt)
- swabst((u_char *)"6bs", (u_char *) dp);
-#endif /* __linux__ */
#ifdef DIRDEBUG
printf ("reclen = %d, namlen = %d, type = %d\n",
dp->d_reclen, dp->d_namlen, dp->d_type);
if ((dp->d_reclen & 0x3) != 0 ||
dp->d_reclen > i ||
dp->d_reclen < DIRSIZ(0, dp) ||
- dp->d_namlen > NAME_MAX) {
+ dp->d_namlen > MAXNAMLEN) {
Vprintf(stdout, "Mangled directory: ");
if ((dp->d_reclen & 0x3) != 0)
Vprintf(stdout,
Vprintf(stdout,
"reclen less than DIRSIZ (%d < %d) ",
dp->d_reclen, DIRSIZ(0, dp));
- if (dp->d_namlen > NAME_MAX)
+ if (dp->d_namlen > MAXNAMLEN)
Vprintf(stdout,
"reclen name too big (%d > %d) ",
- dp->d_namlen, NAME_MAX);
+ dp->d_namlen, MAXNAMLEN);
Vprintf(stdout, "\n");
loc += i;
continue;
cp = myname(ep);
(void) chown(cp, node.uid, node.gid);
(void) chmod(cp, node.mode);
+ if (node.flags)
#ifdef __linux__
- (void) setflags(cp, node.flags);
+ (void) fsetflags(cp, node.flags);
#else
- (void) chflags(cp, node.flags);
+ (void) chflags(cp, node.flags);
#endif
utimes(cp, node.timep);
ep->e_flags &= ~NEW;