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