summaryrefslogtreecommitdiff
path: root/ext2fs/ChangeLog
blob: ef97d6b55ae022ad04d668e090985670bdfc87f8 (plain)
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
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
Fri Jul 19 15:02:24 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* pager.c (file_pager_read_page, file_pager_write_page): Pass
	NODE->dn, not &NODE->dn to RECORD_LAST.

Mon Jul 15 18:00:26 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* ext2fs.h (struct disknode): Add debugging info.
	(RECORD_LAST): New function.
	(LAST_BUFSZ): New macro.
	(enum last_act): New type.
	* pager.c (pager_unlock_page, diskfs_grow, file_pager_read_page,
	file_pager_write_page): Record debugging info.
	* truncate.c (diskfs_truncate): Likewise.
	* inode.c (diskfs_cached_lookup): Initialize debugging info.

	* pager.c (file_pager_read_page): Initialize *WRITELOCK to 0.

Tue Jun 25 12:22:21 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* ext2fs.h (sync_global): Renamed from sync_global_data.  Add WAIT
 	flag.  Don't call diskfs_set_hypermetadata.
	(alloc_sync): Call diskfs_set_hypermetadata instead of sync_global_data.
	(sync_super_block): Function removed.
	* hyper.c (diskfs_readonly_changed): No longer clear the clean bit.
	(diskfs_set_hypermetadata): Work correctly.
	* truncate.c (diskfs_truncate): Add call diskfs_check_readonly to
	clear clean bit.
	* inode.c (diskfs_cached_lookup): Use diskfs_check_readonly
	instead of diskfs_readonly.
	* dir.c (diskfs_lookup_hard, diskfs_dirempty): Likewise.
	* pager.c (diskfs_shutdown_pager): Don't shutdown the disk pager,
	just sync it.
	(diskfs_sync_everything): Call sync_global instead of pokel_sync.
	(final_sblock): Variable removed.
	(diskfs_grow): Add call diskfs_check_readonly to clear clean bit.

Mon Jun 24 17:14:25 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* inode.c (check_high_bits, diskfs_validate_owner_change,
	diskfs_validate_group_change, diskfs_validate_mode_change,
	diskfs_validate_author_change): New functions.
	(write_node): For non-hurd filesystems, assert that no hurd
	extensions should be used.

Thu Jun 20 22:36:23 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* ext2fs.c (main): Rename diskfs_device_startup_argp to
	diskfs_std_device_startup_argp.

Sat Jun 15 15:56:01 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* inode.c (read_disknode, write_inode): Use hurd-specific fields
	only on a hurd filesystem.

Fri May 10 09:32:43 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* inode.c (diskfs_set_statfs): Fix one reference to old name of ST
 	member.

Thu May  9 11:52:20 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* inode.c (diskfs_set_statfs): Expect and fill in new format
 	statfs buffer.

	* Makefile (ext2fs ext2fs.static): s/ioserver/iohelp/g.
	* ext2fs.h: ioserver.h -> iohelp.h.

Tue May  7 16:22:56 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeinfo.c (diskfs_S_file_get_storage_info): Rewrite for new
	interface.

Tue Apr 30 12:51:09 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* Makefile (targets): Renamed from `target'.

Fri Apr 26 16:10:19 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* Makefile (makemode): Now `servers'.
	(targets): Renamed from `target'; now include ext2fs.static.
	(ext2fs.static-LDFLAGS): Renamed from `LDFLAGS'.
	(ext2fs.static): Depend on same things as `ext2fs'.
	(include ../Makeconf): Must come before dependency information.

Wed Apr 17 13:30:49 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* inode.c (diskfs_write_disknode): Only sync DI if WAIT.

	* dir.c (diskfs_lookup_hard): Set atime appropriately, and sync
	the new atime if we are running synchronously (!).
	(diskfs_dirempty): Likewise.
	(diskfs_direnter_hard): Set mtime appropriately.
	(diskfs_dirremove_hard): Likewise.
	(diskfs_dirrewrite_hard): Likewise.

Thu Apr  4 18:51:19 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* inode.c (diskfs_cached_lookup): Renamed from iget; all uses updated.
	Initialize the CACHE_ID field in the new node.
	* ext2fs.h (struct disknode): Get rid of NUMBER field; all references
	replaced by references to the CACHE_ID field in the corresponding node.

Fri Mar 29 11:03:58 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* dir.c (diskfs_null_dirstat): New function.
	(diskfs_lookup_hard, diskfs_direnter, diskfs_dirremove_hard,
	diskfs_dirrewrite_hard): Renamed from versions without `_hard' suffix.
	Get rid of stuff now done by diskfs.

	* ext2fs.c (main): Pass new argument to argp_parse.

Tue Mar 19 17:52:04 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* pager.c (pager_unlock_page, diskfs_grow): Try to make the logic
	a bit simpler and more robust.

Fri Feb 16 17:05:01 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* ext2fs.c (main): Check error return from diskfs_init_diskfs.

Tue Feb  6 14:49:40 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* ext2fs.h (ext2_warning): Make a declaration, not a macro.
	* msg.c (ext2_warning): Rename from _ext2_warning; don't take (or
	print) a function argument any more.

	* dir.c (diskfs_get_directs): When BUFSIZ is 0, allocate enough
	extra space over the directory size to account for the worst case
	difference between the ext2 and canonical formats.

Sat Feb  3 11:27:07 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* hyper.c (get_hypermetadata, diskfs_readonly_changed): Use
	ext2_warning to print warnings instead of error().
	* msg.c (_ext2_warning): Include `warning:' in message.

Sat Feb  3 06:10:43 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hyper.c: Fixed handling of the filesystem `clean bit'.
	(ext2fs_clean): New boolean variable.
	(get_hypermetadata): Set it iff the clean bit is set on entry.
	If not clean, complain and force read-only.
	(diskfs_set_hypermetadata): Set clean bit only if ext2fs_clean is set.
	(diskfs_readonly_changed): Complain if going writable and clean
	bit clear.

	* ext2fs.c: Include string.h for strerror decl.

Tue Jan 30 22:25:19 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* hyper.c (get_hypermetadata): Don't return any error value, just
	panic if we can't read the superblock.
	* ext2fs.c (main): Move warp_inode() inline.  Make sure root inode
	is really there.  Don't check return value from get_hypermetadata.
	(warp_inode): Function removed.
	* ext2fs.h (get_hypermetadata): Returns void now.

Tue Jan 30 17:04:41 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* pager.c (file_pager_read_page, file_pager_write_page): Check for
	a page offset beyond the allocsize and return EIO.

Wed Jan 17 15:11:55 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeinfo.c (diskfs_S_file_get_storage_info): Calculate the
	right value for *RUNS_LEN.

Tue Jan 16 17:37:00 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* pager.c (diskfs_file_update): Ext2fs doesn't require that the
	last block in the file always be allocated, so don't.
	(diskfs_grow, pager_unlock_page): Don't set last_block_allocated.
	* ext2fs.h (struct disknode): Get rid of last_block_allocated field.
	* inode.c (read_disknode): Don't set last_block_allocated.
	* truncate.c (diskfs_truncate): Likewise.

	* Makefile (LDFLAGS): Add -static.

Mon Jan 15 10:25:19 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* pager.c (pager_unlock_page, diskfs_grow): Leave things in a
	slightly more consistent state when block allocation errors happen.

	* dir.c (diskfs_direnter): Don't include the terminating '\0' in
	on-disk directory entry names.

	* inode.c (diskfs_node_norefs): When losing our in-core copy of an
	inode, remember which indirect blocks still have to be written.
	* pokel.c (pokel_inherit, pokel_finalize): New functions.
	* ext2fs.h (pokel_inherit, pokel_finalize): New declarations.

	* dir.c (diskfs_lookup): Patch from ufs/dir.c: If we are returning
 	an error, then set the dirstat to be ignored by drop_dirstat.

Sun Jan 14 13:17:33 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* ialloc.c (diskfs_alloc_node): Set NP->istranslated to 0.
	* inode.c (write_node): If NP isn't translated, force
	DI->i_translator to 0.

	* getblk.c (inode_getblk, block_getblk): Set dn_set_mtime too.

Sat Jan  6 11:57:26 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* pager.c (pager_bucket): Made global.
	(create_disk_pager): Pass MAY_CACHE to disk_pager_setup.
	* ext2fs.c (main): Don't map in disk image here; create_disk_pager
	now does it.

Fri Jan  5 16:57:54 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* ext2fs.h: Declare create_disk_pager.

Thu Jan  4 18:46:40 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* ext2fs.h (disk_pager, disk_pager_port, disk_image,
	create_disk_pager): Decls removed.
	Include hurd/diskfs-pager.h instead.

	* pager.c (create_disk_pager): Use disk_pager_setup.

Tue Nov 14 14:59:32 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* dir.c (dirscanblock): Apply mib's changes to ufs/dir.c.

Sat Nov  4 20:01:01 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeinfo.c (diskfs_S_file_get_storage_info): Add FLAGS argument.

Wed Nov  1 20:09:59 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* ext2fs.c (main): Add FLAGS arg to diskfs_startup_diskfs call.

Mon Oct 23 17:49:16 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* inode.c (diskfs_get_translator, diskfs_set_translator): Only
	support these if the filesystem's creator-os is `hurd'.
	(read_disknode): Only check the i_translator field if the
	filesystem's creator-os is `hurd'.

Fri Oct 20 19:18:16 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* ext2fs.h (MS_RDONLY, MS_NOSUID, MS_NODEV, MS_NOEXEC,
	MS_SYNCHRONOUS, MS_REMOUNT, S_APPEND, S_IMMUTABLE, IS_APPEND,
	IS_IMMUTABLE): Macros deleted.

Thu Oct 19 19:15:15 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* pager.c (create_disk_pager, diskfs_get_filemap,
	pager_clear_user_data): Don't use the p field in a upi.
	(diskfs_get_filemap): Update/initialize the max_prot field.
	Add the prot arg.

	* ext2fs.h (struct user_pager_info): Add max_prot field, remove p.
	* pager.c (drop_pager_softrefs): Declare PAGER, not UPI.
	(enable_caching): The disk node is upi->node, not upi->np.
	(diskfs_enable_pagers): Function removed.
	* inode.c (read_disknode): Add DN and OFFSET variables.  Use
	log2_block_size to mask instead of doing a modulo with block_size.
	* hyper.c (diskfs_readonly_changed): Typo.
	(allocate_mod_map): Declare ERR; OLD_MOD_MAP_SIZE --> MOD_MAP_SIZE.
	* dir.c (diskfs_lookup, diskfs_dirempty): Give diskfs_get_filemap
	a protection arg.
	* truncate.c (force_delayed_copies): Ditto.

Wed Oct 18 21:00:28 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* ext2fs.h (struct disknode): Replace fileinfo field with pager.
	* inode.c (diskfs_node_norefs, iget): Use pager field, not fileinfo.
	* pager.c (diskfs_get_filemap_pager_struct, flush_node_pager,
	diskfs_file_update, pager_clear_user_data, drop_pager_softrefs): Ditto.
	* truncate.c (enable_delayed_copies, force_delayed_copies): Ditto.

	* ext2fs.c (main): Always include VM_PROT_WRITE in max prot.
	* hyper.c (diskfs_readonly_changed): Change the protection of
	DISK_IMAGE to reflect the new state.
	* pager.c (diskfs_enable_pagers): New function.

Tue Oct 17 21:16:04 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* pokel.c (_pokel_exec, pokel_flush): New functions.
	(pokel_sync): Use _pokel_exec to do the work.
	* pager.c (flush_node_pager): New function.
	* ext2fs.h (pokel_flush, flush_node_pager): New declarations.

	* hyper.c (allocate_mod_map): New function (from get_hypermetadata).
	(zeroblock, modified_global_blocks): Define (were common).
	(get_hypermetadata): Deallocate ZEROBLOCK if necessary.  Use
	allocate_mod_map to allocate MODIFIED_GLOBAL_BLOCKS.
	(diskfs_readonly_changed): New function.
	* main.c (main): Move stuff into get_hypermetadata.
	Writable init code moved to diskfs_readonly_changed.

	* inode.c (diskfs_node_reload): New function.
	(iget, read_disknode): Code to set allocsize and the last_* fields
	moved from iget to read_disknode.

	* ext2fs.h (disk_pager): Type changed to struct pager.
	(sync_global_ptr): Use DISK_PAGER, not DISK_PAGER->p.
	* pager.c (create_disk_pager): Store the actual pager into DISK_PAGER.
	* ext2fs.c (main): Use DISK_PAGER directly, not ->p.
	* inode.c (iget): Ditto.
	* pager.c (diskfs_shutdown_pager, diskfs_sync_everything): Ditto.

Mon Oct 16 15:23:25 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* inode.c (diskfs_lost_hardrefs): #ifdef'd out contents removed.

Fri Oct 13 17:50:23 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* ext2fs.c (main): Use argp for parsing.
	(usage, USAGE, SHORT_OPTS, long_opts, console_stdio): Removed

Thu Oct 12 18:16:00 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* hyper.c (get_hypermetadata): Use diskfs device functions &
	variables instead of our own.
	* ext2fs.h (device_arg, device_name, device_port, device_start,
	device_size, device_block_size): Declarations removed.

	* ext2fs.c (printf, _ext2_error, _ext2_panic, _ext2_warning):
	Functions moved to msg.c
	* msg.c: New file.
	(printf, _ext2_error, _ext2_panic, _ext2_warning): Funcs from ext2fs.c.
	* Makefile (SRCS): Remove devio.c, add msg.c.

Sat Oct  7 20:47:19 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeinfo.c (diskfs_S_file_get_storage_info): run_elem_t --> off_t.

	* ext2fs.c (diskfs_init_completed): Func deleted (now in libdiskfs).

Fri Oct  6 17:24:57 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeinfo.c (diskfs_S_file_get_storage_info): Change type of
	ADDRESSES to off_t **, and add BLOCK_SIZE parameter.

Wed Oct  4 20:02:34 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* inode.c (diskfs_set_statfs): fsys_stb_bsize -> fsys_stb_iosize.
  	fsys_stb_fsize -> fsys_stb_bsize.

Wed Sep 27 20:07:53 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* ext2fs.c (main): Use diskfs routines to open the device.
	Support both file and mach devices.  Move the parse function here.
	(parse_opt): Move into main (as a nested function).
	* ext2fs.h (device_arg, device_start): New declarations.
	* devio.c (dev_read_sync, dev_write_sync): Offset the address to
	which we're doing i/o with DEVICE_START.

Tue Sep 26 18:39:58 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeinfo.c (diskfs_S_file_get_storage_info): New function.
	* Makefile (SRCS): Add storeinfo.c.

Fri Sep 15 14:21:18 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* truncate.c (trunc_indirect): Only record an indirect block as
	being modified when it actually is.

	* truncate.c (diskfs_truncate): Use the new truncate functions.
	(poke_pages): Gratuitous cosmetic changes.
	(trunc_direct): Rewritten, new args.
	(trunc_indirect): Rewritten, new args, now more general to support
	all the various indirection levels.
	(trunc_triple_indirect, trunc_double_indirect,
	trunc_single_indirect): New functions.
	(struct free_block_run): New structure.
	(free_block_run_finish, free_block_run_free_ptr,
	free_block_run_add, free_block_run_init, _free_block_run_flush):
	New functions.
	(trunc_dindirect, trunc_tindirect): Functions deleted.
	(DIRECT_BLOCK, INDIRECT_BLOCK, DINDIRECT_BLOCK, TINDIRECT_BLOCK):
	Macros deleted.

	* getblk.c (block_getblk, ext2_getblk): u32 --> block_t.
	* balloc.c (ext2_new_block): Ditto.
	* hyper.c (get_hypermetadata): Ditto.
	* pager.c (file_pager_write_page): Ditto.

Wed Sep 13 12:30:23 1995  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* dir.c (diskfs_lookup): Don't attempt to lock NP if NPP is not
 	set.  Don't even set NP if NPP is not set; use INUM as "lookup
 	succeeded flag" instead.  Lookups for REMOVE and RENAME now *must*
	set NPP.

Tue Sep 12 11:03:19 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* pokel.c (pokel_init): Initialize the free_pokes field.
	(pokel_add): Assert that this malloc should succeed.
	(pokel_sync): Don't hold POKEL's spin lock while syncing.

	* ialloc.c (diskfs_alloc_node): Check for a non-zero ALLOCSIZE.

Tue Sep  5 16:59:40 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* pager.c (diskfs_pager_users): Ignore the disk pager when seeing
	if there are any active pagers.
	(diskfs_shutdown_pager): shutdown_one gets passed a pager, not a upi.
	(diskfs_sync_everything): sync_one gets passed a pager, not a upi.

Sun Sep  3 17:28:13 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* ext2fs.c (thread_cancel): Removed.

Fri Aug 25 14:37:32 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* Makefile (ext2fs): Put libports in the right place in the
	linking order.

Thu Aug 24 10:34:15 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* Makefile (ext2fs): Put all dependencies here.
	(HURDLIBS): Removed.

Tue Aug 22 19:39:06 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* Makefile (HURDLIBS): Add libshouldbeinlibc.
	Remove rules for error.o.

Fri Jul 21 17:51:33 1995  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* pager.c (diskfs_get_filemap): Free initial reference created by
 	pager_create.

	* pager.c (diskfs_get_filemap): Avoid race with simultaneous
	termination by looping until we win.
	(pager_clear_user_data): Only clear UPI->np->dn->fileinfo if it
	still points to us.

Thu Jul  6 15:33:24 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* Makefile: Removed dependencies that are now automatically
 	generated.

Thu Jul  6 13:36:25 1995  Miles Bader  <miles@geech.gnu.ai.mit.edu>

	* pager.c (diskfs_pager_users): New function.

Tue Jun 27 13:08:33 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* pager.c (pager_unlock_page): Declare BLOCK volatile.

Sat Jun 24 17:59:36 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* Makefile (HURDLIBS): Add libihash.

	* ext2fs.c (thread_cancel): Dummy function.

	* dir.c (diskfs_direnter): Move assignment out of test.
	(diskfs_get_directs): Fix print-format types.
	* ialloc.c (diskfs_free_node): Fix print-format types.

	* pager.c (thread_function): New function.
	(create_disk_pager): Make a new thread to service paging requests.
	* ext2fs.c (main): Have the initial thread die when it's done, leaving
	other thread to do the work.

	* pager.c (pager_bucket): New variable.
	(pager_list_lock, file_pager_list): Variables deleted.
	(create_disk_pager): Create pager_bucket.
	(create_disk_pager, diskfs_get_filemap): Pass pager_bucket to
	pager_create.
	(pager_traverse): Function deleted.
	(diskfs_get_filemap, pager_clear_user_data): Don't add/remove UPI
	to/from the pager list, as there isn't any.
	(diskfs_shutdown_pager, diskfs_sync_everything): Use
	ports_bucket_iterate on pager_bucket to go through all the pagers,
	instead of pager_traverse.
	(diskfs_file_update, pager_traverse, allow_pager_softrefs,
	drop_pager_softrefs): Change pager [un]ref calls to use the new ports
	ref calls directly instead.
	(pager_dropweak): New function (does nothing).
	* ext2fs.h (struct user_pager_info): Remove the next & prevp fields.

	* truncate.c (force_delayed_copies, enable_delayed_copies): Change
	pager [un]ref calls to use the new ports ref calls directly instead.
	* inode.c (diskfs_lost_hardrefs): Ditto.

	* inode.c (diskfs_node_iterate): New function.
	(write_all_disknodes): Re-implemented using diskfs_node_iterate.

Wed Jun 14 16:19:49 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* inode.c (diskfs_get_translator): Conform to new memory usage
        semantic.

Fri May 19 20:56:51 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* ext2fs.c (main): Use options_parse & diskfs_standard_startup_options
	to do command line options parsing.
	(long_opts): Was `options'.  Most things removed, as
	they're now handled by libdiskfs.
	(parse_opt): New routine to deal with our few meagre remaining
	options in the approved options_parse manner.

Mon May 15 15:55:49 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* ext2fs.c (main, usage, options): Add --writable & --nosync options.

Sat May 13 20:04:55 1995  Miles Bader  <miles@duality.gnu.ai.mit.edu>

	* inode.c (diskfs_set_statfs): Set st->fsys_stb_bsize, not _fsize,
	to the block size.

Sat May 13 05:02:59 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makefile (OBJS): Remove exec_server_image.o.
	(exec_server_image.o): Rule removed.

Fri May 12 15:23:02 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* ext2fs.c (main): Add an optional argument to the --sync option
	that lets the user specify an initial sync interval.

Thu May 11 13:30:06 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* pager.c (pager_unlock_page): Give an explanation of why the file
	system will shortly crash.

	* balloc.c (ext2_free_blocks, ext2_new_block): Get rid of the
	CHECK_STRICT variable, and just always do the tests it controlled.
	* ext2fs.h: Get rid of the CHECK_STRICT variable.

	* ext2fs.h (ext2_error, ext2_warning, ext2_panic, all callers changed):
	Make these into macros that automagically supply the caller's
	function name, and rename the original functions (which these
	macros call) to have an underline prefix.
	* ext2fs.c (ext2_error, ext2_warning, ext2_panic): Rename to add
	the underline prefix.  Also rearrange a bit to hold the lock
	around the use of the global message buffer.

	* ext2fs.c (main): Enable the bootstrap code.

	* inode.c (read_disknode): Make st_blksize larger: 2 * pagesize.

Wed May 10 14:03:34 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* getblk.c (block_getblk, inode_getblk): Return ENOSPC instead of
	EIO when we can't allocate a new block.

	* bitmap.c (find_next_zero_bit): Fix stupid typos (present in the
	original linux source I copied this function from!) which were
	causing occasional garbage results.

Tue May  9 18:08:41 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* ext2fs.h (DONT_CACHE_MEMORY_OBJECTS): Don't define this any
	more, as the bugs we were using it to catch are supposedly gone :-|