1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
|
Thu Jul 18 14:55:14 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* pass2.c (pass2): If an entire directory block is null, allow
preen to patch it into a normal empty directory entry.
Sat Jul 6 19:59:27 1996 Miles Bader <miles@gnu.ai.mit.edu>
* main.c (argp_program_version): New variable.
<hurd.h>: New include.
Mon Jul 1 12:55:48 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* pass2.c (pass2): Don't skip empty directories in `.' and `..'
correctness check; we don't clear them the way BSD does, so we
want `.' and `..' to get created for us. Also handle `.' before
`..' so that they get created in the usual order for empty
directories.
* dir.c (makeentry): After successful directory expansion, write
out modified directory inode.
* pass4.c (pass4): If a reconnect fails while we are preening,
give up.
Mon Jun 24 10:19:39 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* utilities.c (errexit, punt): Exit with status 8 for catastrophic
failures.
Thu May 23 14:12:21 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* pass2.c (pass2): Don't clear all node types in directories, just
clear those that are wrong.
Tue May 14 16:49:46 1996 Miles Bader <miles@gnu.ai.mit.edu>
* pass2.c (pass2): Fix up test in preen case.
Tue May 14 15:29:36 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* pass2.c (pass2): Handle directory entry type fields better for
Hurd.
Sat May 11 01:07:49 1996 Miles Bader <miles@gnu.ai.mit.edu>
* main.c (parse_opt): Use ARGP_ERR_UNKNOWN instead of EINVAL.
Thu May 9 20:12:51 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* pass1b.c (pass1b): Bother to initialize NUMBER.
Fri May 3 00:48:39 1996 Miles Bader <miles@gnu.ai.mit.edu>
* main.c (nice_size, show_stats): New functions.
(main): Use show_stats.
Wed May 1 13:59:06 1996 Miles Bader <miles@gnu.ai.mit.edu>
* main.c (main): Shorten summary message so that it fits on one line.
* utilities.c (no_preen): New function.
(problem, warning, pinode): Use it.
(warning): Don't flush all pending problems, just our own.
* dir.c (linkup): Consistently put quotes around filenames.
* main.c (preen, num_files): New variables.
(main): Implement clean-bit checking in preen mode, and print
summary statistics.
(main, options): Add --force & --silent options.
* pass1.c (pass1): Increment NUM_FILES.
When clearing inode due to bad blocks, continue.
* inode.c (allocino, freeino): Frob NUM_FILES.
* fsck.h (force): New declaration.
* pass5.c (pass5): Vary clean msg depending on whether FSMODIFIED.
* setup.c (setup): Use error to print error msgs.
<error.h>, <errno.h>: New includes.
* utilities.c (problem, warning, pextend, pfail): New functions.
(pinode, pfix, reply): Use new problem recording stuff.
(push_problem, resolve_problem, flush_problems): New functions.
(struct problem): New type.
(problems, free_problems): New variables.
(retch, punt): New functions.
* fsck.h (problem, warning, pextend, pfail): New declarations.
(pinode): Update declaration.
* dir.c (validdir, makeentry, linkup): Use new printing functions.
* pass1.c (pass1): Likewise.
* pass1b.c (pass1b): Likewise.
* pass2.c (pass2): Likewise.
* pass3.c (pass3): Likewise.
* pass4.c (pass4): Likewise.
* pass5.c (pass5): Likewise.
* setup.c (setup): Likewise.
Tue Apr 30 19:06:42 1996 Miles Bader <miles@gnu.ai.mit.edu>
* pass5.c (pass5): Be sure to call pwarn before pfix.
* main.c (main): Don't print large obnoxious banner if PREEN.
Fri Apr 26 16:20:37 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* inode.c (allocino): Parenthesize test correctly.
* fsck.h (swab_disk): Define as constant zero.
* pass5.c (pass5): If not marked clean, but now it is, then offer
to mark it clean.
* utilities.c (reply): Set fix_denied anytime we return 0.
* fsck.h (fix_denied): New variable.
Wed Apr 24 13:32:39 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* pass1.c (pass1): Don't print block numbers as we go anymore.
Tue Apr 23 10:11:49 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* pass5.c (pass5): Correctly track contig summaries even though
they aren't used by the filesystem; we still need to preserve the
format.
Mon Apr 15 12:51:41 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* Makefile (vpath tables.c): Find ufs directory in $(top_srcdir).
Tue Apr 2 09:00:53 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* pass1.c (pass1): Print mode correctly in unknown file type case.
Recognize inode type IFSOCK too.
Mon Mar 18 19:48:39 1996 Miles Bader <miles@gnu.ai.mit.edu>
* main.c (main): Pass new arg to argp_parse. Use argp_usage correctly.
Thu Oct 19 17:45:12 1995 Miles Bader <miles@gnu.ai.mit.edu>
* main.c (main): Exit with a non-zero status if we fixed anything.
Use argp to parse options.
(options): Converted to argp format.
(args_doc): New variable.
(USAGE, usage, SHORT_OPTIONS): Removed.
Include <argp.h> instead of <getopt.h>.
* Makefile ($(target)): Depend on libshouldbeinlibc.a.
Fri Sep 22 16:55:03 1995 Miles Bader <miles@gnu.ai.mit.edu>
* utilities.c (pfix): New function.
(pfatal, pwarn, errexit): Print DEVICE_NAME too if in preen mode.
* fsck.h: Declare DEVICE_NAME.
* setup.c (setup): Set DEVICE_NAME.
* pass1.c, pass2.c, pass3.c, pass4.c, pass5.c (pass1, pass2,
pass3, pass4, pass5): Call pfix instead of printf.
* pass1.c (pass1): Only print progress report if not in preen mode.
* main.c (main): Only print section headers if not in preen mode.
Wed Sep 20 09:11:59 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
* utilities.c (pinode): Take a message & args to print as well.
* fsck.h: Change declaration of pinode.
* pass2.c (pass2): Use changed pinode.
* pass3.c (pass3): Use changed pinode.
* pass4.c (pass4): Use changed pinode.
Tue Sep 19 15:37:02 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
* pass1.c (pass1): Change the extent of DBWARN & IBWARN so that
they actually work.
* pass2.c (pass2): Adjust our record of link counts when we
add/change dir entries; also print error messages when we can't.
* pass4.c (pass4): If an unlinked file can't be reconnected, offer
to clear it. Once a reconnect attempt fails, don't try again.
* dir.c (linkup): Print the value of LFNAME rather than `lost+found'.
(searchdir, changeino): Fix backward compare.
(linkup): Don't fail when makeentry succeeds.
(searchdir): Make searchdir return zero if there's an error
during the search.
(linkup): Print appropiate error messages if searchdir fails.
(validdir): Get rid of extra newlines in error messages --
everyone who calls this routine prints extra information if it
fails, which should immediately follow.
* main.c (main): Use getopt to parse command line options.
(usage): New function.
(options): New variable.
(lfname, lfmode): Variables moved here from setup.c.
(lfname): Made into a char* so that we can change it.
(lfmode): Get rid of IFDIR; it's added when necessary.
* fsck.h: Change LFNAME to char*.
* setup.c (lfname, lfmode): Variables moved to main.c.
Sat Sep 9 12:12:59 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
* Makefile (target): Changed to `fsck.ufs'.
(installationdir): New variable, install into $(sbindir).
Thu Jul 6 15:33:46 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
* fsck.h (lookup_directory): New decl.
* pass1.c (pass1): Remove assignment from if test.
* utilities.c (pinode): Likewise.
* Makefile (tables.o): Delete rule.
(vpath tables.c): Tell where to find tables.c.
* Makefile: Removed dependencies that are now automatically
generated.
Thu Nov 3 17:19:03 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
* Makefile (dir): Changed to fsck.
(target): Changed to fsck.
Wed Nov 2 14:39:13 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
* pass2.c (pass2): Use DIRECT_NAMLEN instead of d_namlen
throughout.
* dir.c (searchdir): Likewise.
(changeino): Likewise.
(makeentry): Likewise.
Mon Oct 17 16:07:56 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
* inode.c (inode_iterate): FN takes new third arg.
Keep track of new var `offset' and pass it to FN.
* pass2.c (pass2/checkdirblock): New third arg.
Only scan DIRBLKSIZ chunks to the total size of the file.
* dir.c (searchdir/checkdirblock): Likewise.
(changeino/checkdirblock): Likewise.
(makeentry/checkdirblock): Likewise.
* pass1.c (pass1/checkblock): New third arg (ignored).
* pass1b.c (pass1b/checkblock): Likewise.
* inode.c (inode_iterate): Compute MAXB correctly.
* utilities.c (getinode): Multiple ino_to_fsbo by
sizeof (struct dinode).
(write_inode): Likewise.
(getinode): Inode buffer needs to be a full block, not a
fragment.
Fri Oct 14 21:07:09 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
* utilities.c (lastifrag): New variable.
(getinode): Use lastifrag instead of buf; Only I/O new block
if lastifrag isn't what we want.
(write_inode): Likewise.
Fri Oct 14 17:44:59 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
* setup.c (setup): Test ISCHR, not ISDIR.
Fix NCYL against NCG * CPG test.
Bother to set MAXFSBLOCK, MAXINO, and DIRECT_SYMLINK_EXTENSION.
|