SCCS-vsn: sbin/fsck/main.c 2.28
-char version[] = "@(#)main.c 2.27 (Berkeley) %G%";
+char version[] = "@(#)main.c 2.28 (Berkeley) %G%";
#endif
#include <stdio.h>
#endif
#include <stdio.h>
idesc.id_type = DATA;
for (inumber = ROOTINO; inumber <= lastino; inumber++) {
if (statemap[inumber] == DSTATE) {
idesc.id_type = DATA;
for (inumber = ROOTINO; inumber <= lastino; inumber++) {
if (statemap[inumber] == DSTATE) {
+ pathp = pathname;
+ *pathp++ = '?';
+ *pathp = '\0';
idesc.id_func = findino;
srchname = "..";
idesc.id_parent = inumber;
idesc.id_func = findino;
srchname = "..";
idesc.id_parent = inumber;
break;
} while (statemap[idesc.id_parent] == DSTATE);
if (linkup(orphan, idesc.id_parent) == 1) {
break;
} while (statemap[idesc.id_parent] == DSTATE);
if (linkup(orphan, idesc.id_parent) == 1) {
- pathp = pathname;
- *pathp++ = '/';
- len = strlen(lfname);
- bcopy(lfname, pathp, len + 1);
- pathp += len;
- *pathp++ = '/';
- pathp += lftempname(pathp, orphan);
idesc.id_func = pass2check;
idesc.id_number = lfdir;
descend(&idesc, orphan);
idesc.id_func = pass2check;
idesc.id_number = lfdir;
descend(&idesc, orphan);
ino_t pdir;
{
register DINODE *dp;
ino_t pdir;
{
register DINODE *dp;
struct inodesc idesc;
bzero((char *)&idesc, sizeof(struct inodesc));
struct inodesc idesc;
bzero((char *)&idesc, sizeof(struct inodesc));
else
if (reply("RECONNECT") == 0)
return (0);
else
if (reply("RECONNECT") == 0)
return (0);
+ pathp = pathname;
+ *pathp++ = '/';
+ *pathp = '\0';
if (lfdir == 0) {
if ((dp = ginode(ROOTINO)) == NULL)
return (0);
if (lfdir == 0) {
if ((dp = ginode(ROOTINO)) == NULL)
return (0);
dp->di_size = fragroundup(&sblock, dp->di_size);
inodirty();
}
dp->di_size = fragroundup(&sblock, dp->di_size);
inodirty();
}
+ len = strlen(lfname);
+ bcopy(lfname, pathp, len + 1);
+ pathp += len;
idesc.id_type = DATA;
idesc.id_func = mkentry;
idesc.id_number = lfdir;
idesc.id_filesize = dp->di_size;
idesc.id_parent = orphan; /* this is the inode to enter */
idesc.id_type = DATA;
idesc.id_func = mkentry;
idesc.id_number = lfdir;
idesc.id_filesize = dp->di_size;
idesc.id_parent = orphan; /* this is the inode to enter */
+ idesc.id_fix = DONTKNOW;
if ((ckinode(dp, &idesc) & ALTERED) == 0) {
pfatal("SORRY. NO SPACE IN lost+found DIRECTORY");
printf("\n\n");
return (0);
}
lncntp[orphan]--;
if ((ckinode(dp, &idesc) & ALTERED) == 0) {
pfatal("SORRY. NO SPACE IN lost+found DIRECTORY");
printf("\n\n");
return (0);
}
lncntp[orphan]--;
+ *pathp++ = '/';
+ pathp += lftempname(pathp, orphan);
if (lostdir) {
dp = ginode(orphan);
idesc.id_type = DATA;
idesc.id_func = chgdd;
idesc.id_number = orphan;
idesc.id_filesize = dp->di_size;
if (lostdir) {
dp = ginode(orphan);
idesc.id_type = DATA;
idesc.id_func = chgdd;
idesc.id_number = orphan;
idesc.id_filesize = dp->di_size;
+ idesc.id_fix = DONTKNOW;
(void)ckinode(dp, &idesc);
if ((dp = ginode(lfdir)) != NULL) {
dp->di_nlink++;
(void)ckinode(dp, &idesc);
if ((dp = ginode(lfdir)) != NULL) {
dp->di_nlink++;