Skip site navigation (1)Skip section navigation (2)
Date:      Wed,  8 Nov 2000 02:07:19 -0800 (PST)
From:      hide@koie.org
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   bin/22685: Repairing a directory hard link.
Message-ID:  <20001108100719.8943337B479@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         22685
>Category:       bin
>Synopsis:       Repairing a directory hard link.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Nov 08 02:10:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     KOIE Hide
>Release:        FreeBSD-3.3
>Organization:
SURIGIKEN CO.,LTD.
>Environment:
FreeBSD skipjack.koie.org 3.3-RELEASE FreeBSD 3.3-RELEASE #2: Sun Jun  4 01:33:12 JST 2000     root@:/usr/src/sys/compile/TP  i386

>Description:
When fsck finds a hard link, it displays
"<N> IS AN EXTRANEOUS HARD LINK TO DIRECTORY <D>".
<N> is a path to a directory
which is without an entry name.
<N> should be what is removed, then
it shoud be directory+entry.
At least, operator wants to know what will be removed.

>How-To-Repeat:
1. fsdb /dev/RAWDEV
2. ls
3. ln INUM NEW_ENTRY
4. quit
5. fsck /dev/RAWDEV
6. fsck displays and questions:
   <PARENT_DIR_PATH>IS AN EXTRANEOUS HARD LINK TO DIRECTORY <FIRST_PATH>
   REMOVE? [yn]


>Fix:
FreeBSD: src/sbin/fsck/pass2.c,v 1.9.2.1 1999/08/29 15:13:07 peter Exp

--- pass2.c.org Wed Nov  8 18:14:31 2000
+++ pass2.c     Wed Nov  8 18:17:59 2000
@@ -435,7 +435,7 @@ again:
                                getpathname(pathbuf, idesc->id_number,
                                    idesc->id_number);
                                getpathname(namebuf, dirp->d_ino, dirp->d_ino);
-                               pwarn("%s %s %s\n", pathbuf,
+                               pwarn("%s%s%s %s %s\n", pathbuf, (strcmp(pathbuf, "/")==0?"":"/"), dirp->d_name,
                                    "IS AN EXTRANEOUS HARD LINK TO DIRECTORY",
                                    namebuf);
                                if (preen) {

begin 644 diff
M+2TM('!A<W,R+F,N;W)G"5=E9"!.;W8@(#@@,3@Z,30Z,S$@,C`P,`HK*RL@
M<&%S<S(N8PE7960@3F]V("`X(#$X.C$W.C4Y(#(P,#`*0$`@+30S-2PW("LT
M,S4L-R!`0"!A9V%I;CH*(`D)"0EG971P871H;F%M92AP871H8G5F+"!I9&5S
M8RT^:61?;G5M8F5R+`H@"0D)"2`@("!I9&5S8RT^:61?;G5M8F5R*3L*(`D)
M"0EG971P871H;F%M92AN86UE8G5F+"!D:7)P+3YD7VEN;RP@9&ER<"T^9%]I
M;F\I.PHM"0D)"7!W87)N*"(E<R`E<R`E<UQN(BP@<&%T:&)U9BP**PD)"0EP
M=V%R;B@B)7,E<R5S("5S("5S7&XB+"!P871H8G5F+"`H<W1R8VUP*'!A=&AB
M=68L("(O(BD]/3`_(B(Z(B\B*2P@9&ER<"T^9%]N86UE+`H@"0D)"2`@("`B
M25,@04X@15A44D%.14]54R!(05)$($Q)3DL@5$\@1$E214-43U)9(BP*(`D)
B"0D@("`@;F%M96)U9BD["B`)"0D):68@*'!R965N*2!["D-4
`
end


>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20001108100719.8943337B479>