OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [fs/] [hfs/] [ChangeLog] - Blame information for rev 1774

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
2000-01-02  a sun  
2
 
3
        * file.c (hfs_get_block): added hfs_get_block for regular files.
4
 
5
1999-04-12  a sun  
6
 
7
        * file_hdr.c (hdr_read): added rootinfo behaviour for DID header.
8
 
9
1999-04-11  a sun  
10
 
11
        * super.c (parse_options): added s_version so that we can select
12
        between different versions of the same layout.
13
 
14
1999-04-05  a sun  
15
 
16
        * linux/hfs_fs.h: unified netatalk and appledouble header format.
17
        added in all of the AFP attribute bits.
18
 
19
        * file_hdr.c: added netatalk appledouble v2 compatible headers.
20
 
21
1999-01-30  a sun  
22
 
23
        * catalog.c (hfs_cat_move): fixed corruption problem with
24
        renames.
25
 
26
1999-01-27  a sun  
27
 
28
        * file_hdr.c (get/set_dates): got rid of broken afpd times. NOTE:
29
        you must use netatalk-1.4b2+asun2.1.2 or newer for this.
30
 
31
1998-12-20  a sun  
32
 
33
        * bdelete.c (del_root): assign bthLNode and bthFNode only if the
34
        root node becomes a leaf node. Disk First Aid no longer
35
        complains. Norton Utilities, of course, has decided that it
36
        doesn't like the root node number. bleah. i think that it might be
37
        due to Norton Utilities not expecting the root node to have moved.
38
 
39
1998-12-16  a sun  
40
 
41
        * sysdep.c (hfs_revalidate_dentry): fix inode dates when there's a
42
        timezone change.
43
 
44
1998-12-15  root  
45
 
46
        * extent.c (new_extent): expand block size variables to handle
47
        u32.
48
 
49
        * mdb.c (hfs_mdb_get): AlBlkSiz shouldn't be capped at 65535. we
50
        should be able to handle much larger volumes now.
51
 
52
1998-11-21  a sun  
53
 
54
        * hfs_sysdep.h, hfs_fs.h: added hfs_from_utc/to_utc to deal with
55
        date differences on hfs formatted media.
56
 
57
        NOTE: hfs extended keeps everything in utc, so we'll need to deal
58
        with that when appropriate.
59
 
60
1998-11-12  a sun  
61
 
62
        * extent.c (shrink_fork): added some lock_bitmap/unlock_bitmap's
63
        to protect hfs_clear_vbm_bits. we should no longer have problems
64
        with free_ablocks wrapping around.
65
 
66
1998-11-02  a sun  
67
 
68
        * mdb.c (hfs_mdb_get): plugged up an mdb failed initialization
69
        leak.
70
 
71
1998-10-31  a sun  
72
 
73
        * version.c (hfs_version): bumped to version 0.96.
74
 
75
        * mdb.c (hfs_mdb_commit): you only write out the alternate MDB
76
        when the catalog or extents overflow files grow. that just leaves
77
        the btree corruption problems. bleah (whilst deleting a bunch of
78
        files, more of the btree can get pruned away than desired).
79
 
80
1998-10-30  a sun  
81
 
82
        * dir.c: fixed a bunch of silliness with deletions. make sure to
83
        zero out stuff and set mark_inode_dirty().
84
 
85
1998-10-29  a sun  
86
 
87
        * string.c (hfs_strcmp, hfs_streq, hfs_strhash): converted them to
88
        take name/len arguments instead of hfs_name to reduce copying.
89
 
90
        * dir.c, dir_nat.c, dir_cap.c, dir_dbl.c, sysdep.c: modified
91
        relevant areas to reflect string.c changes.
92
 
93
1998-10-28  a sun  
94
 
95
        * hfs.h (hfs_lookup_dentry): oh my. more silliness. make sure to
96
        have the d_lookup use the same hash value as the one generated by
97
        hfs_hash_dentry. i also changed the argument order.
98
        (hfs_drop_special): change the argument order to be more in line
99
        with what the dcache stuff looks like.
100
 
101
        * sysdep.c (hfs_compare_dentry): the compare was returning the
102
        wrong value for correct matches and causing all sorts of
103
        mischief. this fixes both directory counts and mounting on top of
104
        hfs volumes.
105
 
106
        * file.c, file_cap.c, file_hdr.c: added mark_inode_dirty()'s in
107
        the relevant places.
108
 
109
1998-10-11  root  
110
 
111
        * mdb.c (hfs_mdb_get): moved initialization of mdb->entry_dirty
112
        list to here to deal with trying to read a bad hfs volume.
113
 
114
1998-10-10  a sun  
115
 
116
        * inode.c, catalog.c, dir_*.c, sysdep.c: parts of the dcache
117
        conversion didn't get done properly. specifically, i forgot to
118
        move the hfs_cat_puts into the right place. that's fixed now.
119
 
120
1998-09-11  a sun  
121
 
122
        * mdb.c: altered mdb struct to reflect hfs plus usage.
123
 
124
1998-08-27  a sun  
125
 
126
        * file.c, file_hdr.c, file_cap.c: dealt with the remaining
127
        copy_to/from_user() error cases.
128
 
129
1998-08-26  a sun  
130
 
131
        * super.c (hfs_read_super): fixed to deal with cdroms. why doesn't
132
        the cdrom layer call the partition table code?
133
 
134
Wed Jan 21 14:04:26 1998  a sun  
135
 
136
        * inode.c, sysdep.c
137
        use d_iput to uncache dentry from catalog entry instead of relying
138
        on put_inode. no more NULL pointer dereferences!
139
 
140
        * catalog.c
141
        cleaned up hfs_cat_put a little.
142
 
143
        ISSUES (non-fatal): mv dir dir2 while creating files in dir screws
144
                            up directory counts.
145
 
146
                            deletion using netatalk screws up directory
147
                            counts.
148
 
149
Thu Jan 15 19:14:28 1998  a sun  
150
 
151
        * catalog.c
152
        make deletion happen when requested instead of waiting until
153
        an hfs_cat_put as the dcache can hold onto entries for quite
154
        some time.
155
 
156
Wed Jan 14 14:43:16 1998  a sun  
157
 
158
        * catalog.c
159
        the current catalog allocation scheme allocates
160
        PAGE_SIZE/sizeof(struct hfs_cat_entry) entries at a time and keeps
161
        a pool of free entries up to this allocation unit * 8.
162
 
163
        * inode.c
164
        make sure to always hfs_cat_put if hfs_iget is going to return
165
        NULL.
166
 
167
        * string.c, catalog.c
168
        use linux' hashing method to generate hashes. the old hashing was
169
        getting collisions. catalog.c also has a larger hash table to
170
        prevent collisions.
171
 
172
Tue Jan 13 13:06:01 1998  a sun  
173
 
174
        * version.c
175
        bumped to 0.95+asun3
176
 
177
        * catalog.c
178
        re-wrote to dynamically allocate/delete catalog entries. on a 486,
179
        entries fit into the size-256 slab.
180
 
181
Wed Jan  7 19:33:33 1998  a sun  
182
 
183
        * inode.c
184
        don't hfs_cat_put gratuitously in hfs_iget. that's a bad
185
        idea and results in screwed up entry counts.
186
 
187
Tue Jan  6 14:38:24 1998  a sun  
188
 
189
        * version.c
190
        changed it to 0.95+asun2
191
 
192
        * sysdep.c
193
        altered catalog entry pruning to make sure that an iput
194
        gets done. for some reason, shrink_dcache_parent wasn't
195
        doing it.
196
 
197
        * catalog.c
198
        added a global dirty list to check for pruning.
199
 
200
Tue Jan  6 12:29:52 1998  a sun  
201
 
202
        * catalog.c
203
        re-wrote it to be similar to 2.1.x inode.c. this should
204
        at least make catalog.c SMP safe.
205
 
206
        * hfs.h, linux/hfs_fs.h
207
        moved dentry operations into hfs.h. these probably should
208
        be moved somewhere else.
209
 
210
        * super.c, dir_cap.c, dir_nat.c, dir_dbl.c, sysdep.c
211
        added dentry ops to hash everything to lowercase.
212
 
213
Sun Dec 28 22:48:53 1997  a sun  
214
 
215
        * sysdep.c, catalog.c, hfs.h
216
        as a temporary workaround until catalog.c gets re-written,
217
        i flush the dcache if we need more entries.
218
 
219
Fri Dec 19 15:11:21 1997  a sun  
220
 
221
        * dir_dbl.c
222
        statically allocate tmp_name instead of doing it dynamically.
223
 
224
        NOTE: well, those pesky hfs_cat_put messages still aren't gone. in
225
        addition, catalog.c needs to be modified to free up some entries
226
        when the cache gets filled up.
227
 
228
Sun Dec 14 11:51:11 1997  a sun  
229
 
230
        * linux/hfs_fs.h
231
        moved the dentry stuff into within the #ifdef __KERNEL__
232
        part of hfs_fs.h and cleaned up a little.
233
 
234
Sun Dec 14 11:24:54 1997  a sun  
235
 
236
        * dir.c
237
        changed hfs_rename to delete all old dentries. hfs_cat_put
238
        messages on umount should be a thing of the past now.
239
 
240
Sun Dec 14 01:12:58 1997  a sun  
241
 
242
        * dir.c
243
        changed mark_inodes_deleted to dget/d_delete/dput the dentry
244
        instead of just dropping it. the bytes available should now
245
        be updated properly upon deletion.
246
 
247
Wed Dec 10 00:01:25 1997  a sun  
248
 
249
        * dir.c
250
        changed mark_inodes_deleted to drop the dentry instead of
251
        just deleting it.
252
 
253
        TODO: bytes available aren't being properly updated when a
254
        resource fork gets deleted.
255
 
256
Mon Dec  8 23:22:40 1997  a sun  
257
 
258
        * dir_cap.c, dir_nat.c, dir_dbl.c, dir.c
259
        * hfs.h, linux/hfs_sysdep.h, linux/hfs_fs_i.h
260
        Added code to drop ({dbl,cap,nat}_drop_dentry) invalid
261
        dentries when creating or moving a file.
262
 
263
        * inode.c
264
        Added code to delete cached dentries when a file gets deleted.
265
 
266
        * current yuckiness: there's an extra hfs_cat_put somewhere. it's
267
        harmless but bothersome.
268
 
269
Thu Dec  4 00:14:03 1997  a sun  
270
 
271
        * dir.c, dir_cap.c, dir_nat.c, file.c, file_hdr.c, inode.c,
272
        * linux/{hfs_sysdep.h, hfs_fs.h}, version.c:
273
        Completed first code dentrification sweep. It mounts! It copies!
274
        It dcaches!
275
 
276
Mon Apr 28 06:58:44 1997  Paul H. Hargrove  
277
 
278
        * version.c, INSTALL.sgml, HFS.sgml:
279
        Bump version to 0.95 (Woohoo! We're beta!)
280
 
281
        * linux/hfs_fs.h:
282
        Modify HFS_SB() and HFS_I() when compiled into the kernel.
283
 
284
        * FAQ.sgml:
285
        Add a new question (and its answer):
286
        Why does my Macintosh show generic application and document icons?
287
 
288
        * HFS.sgml:
289
        Add some URLs and remove the (now empty) FAQ section.
290
 
291
Sun Apr 27 22:17:01 1997  Paul H. Hargrove  
292
 
293
        * HFS.sgml:
294
        Don't call the version 1 headers "slightly modified".
295
 
296
        * file_hdr.c, dir_nat.c:
297
        Comment some AFPD compatibility stuff.
298
 
299
        * FAQ.sgml:
300
        Update for version 0.95.
301
 
302
        * BUG_INFO:
303
        Remove the BIG_INFO script since we no longer mention it.
304
 
305
        * README.sgml, INSTALL.sgml, HFS.sgml, Makefile:
306
        Split README.sgml into HFS.sgml and INSTALL.sgml.
307
        Stop including the document sources in snapshots.
308
 
309
        * file_hdr.c:
310
        Fix hdr_truncate() not to truncate the data fork.
311
 
312
Wed Apr 16 23:56:25 1997  Paul H. Hargrove  
313
 
314
        * FAQ.sgml:
315
        Bump version to 0.8.4 and add two answers:
316
                How to fsck an HFS filesystem.
317
                How to generate linux/version.h.
318
 
319
        * version.c, README.sgml:
320
        Bump version to 0.8.4.
321
 
322
        * README.sgml, FAQ.sgml, Makefile:
323
        Separate the FAQ from the README.
324
 
325
        * linux/hfs_fs.h:
326
        Add (struct hfs_fork) to the forward declarations.
327
 
328
Thu Apr 10 05:47:16 1997  Paul H. Hargrove  
329
 
330
        * linux/hfs_sysdep.h:
331
        Work around the non-const declaration of test_bit()'s second argument.
332
 
333
        * Makefile:
334
        Use .config from the kernel source to check for MODVERSIONS.
335
 
336
Wed Apr  9 07:57:17 1997  Paul H. Hargrove  
337
 
338
        * bnode.c:
339
        Check the record table in each bnode as we read it from disk.
340
 
341
        * super.c, mdb.c, hfs.h:
342
        Deal with the ATTRIB_CLEAN bit of the MDB properly (in mdb.c).
343
 
344
        * super.c, hfs.h, mdb.c:
345
        Search for the alt-MDB rather than using the device size to find it.
346
 
347
Wed Apr  9 03:39:05 1997  Paul H. Hargrove  
348
 
349
        * version.c, README.sgml:
350
        Bump version to 0.8.3.
351
 
352
Mon Apr  7 20:09:56 1997  Paul H. Hargrove  
353
 
354
        * part_tbl.c:
355
        Fix to allow bootable CDROMs (which have blocksize != 512) to mount.
356
 
357
        * super.c:
358
        Check that blk_size[MAJOR(dev)] is non-NULL before dereferencing.
359
 
360
Sat Apr  5 10:44:42 1997  Paul H. Hargrove  
361
 
362
        * hfs_btree.h, binsert.c, brec.c, bfind.c, bins_del.c, bdelete.c:
363
        Make btree operations less likely to do
364
        nasty things if the tree is corrupted.
365
 
366
        * part_tbl.c, README.sgml:
367
        Count partitions from 0 rather than from 1.
368
 
369
Wed Apr  2 23:26:51 1997  Paul H. Hargrove  
370
 
371
        * bdelete.c:
372
        Don't bother checking for oversized keys in hfs_bdelete().
373
 
374
        * bdelete.c, bfind.c, binsert.c:
375
        Verify key lengths against the maximum given for the tree.
376
 
377
        * Makefile:
378
        Check that /usr/include/linux/modversions.h exists before including it.
379
        This allows compilation without CONFIG_MODVERSIONS enabled.
380
 
381
Sat Mar 29 13:17:53 1997  Paul H. Hargrove  
382
 
383
        * linux/hfs_fs.h, super.c, file_hdr.c, hfs.h, extent.c, file_cap.c,
384
          dir_dbl.c, dir_nat.c, dir.c, dir_cap.c, binsert.c, catalog.c,
385
          bfind.c:
386
        Make (struct hfs_bkey) and (struct hfs_brec) more "abstract".
387
 
388
        * binsert.c:
389
        Remove redundant test in hfs_binsert().
390
 
391
Sat Mar 29 05:24:23 1997  Paul H. Hargrove  
392
 
393
        * version.c, README.sgml:
394
        Fix formatting problems in README.sgml and bump version to 0.8.2.
395
 
396
        * extent.c:
397
        Fix bug that caused serious headaches with fragmented files.
398
 
399
Fri Mar 28 00:23:18 1997  Paul H. Hargrove  
400
 
401
        * version.c, README.sgml:
402
        Bump version to 0.8.1.
403
 
404
        * btree.c, balloc.c:
405
        Commit map nodes to buffers when new map nodes are added.
406
 
407
Thu Mar 27 22:41:07 1997  Paul H. Hargrove  
408
 
409
        * Makefile:
410
        Include linux/modversions.h from the gcc command line.
411
 
412
        * mdb.c:
413
        Was updating modified date twice in hfs_mdb_commit().
414
 
415
        * linux/hfs_sysdep.h, linux/hfs_fs.h, linux/hfs_fs_i.h,
416
          linux/hfs_fs_sb.h, sysdep.c, trans.c, super.c, hfs_sysdep.h, inode.c,
417
          hfs_fs_i.h, hfs_fs_sb.h, hfs_fs.h, hfs.h, file_cap.c, file_hdr.c,
418
          file.c, dir_nat.c, dir_cap.c, dir_dbl.c, Makefile, dir.c:
419
        Rearrange headers in preparation for inclusion in the kernel.
420
 
421
        * hfs_fs_sb.h, hfs_fs.h:
422
        Add forward declarations so other code can include these headers.
423
 
424
        * hfs_sysdep.h:
425
        Include __constant_hton[ls]() for little-endian machines.
426
 
427
        * hfs_fs.h, hfs_sysdep.h, hfs.h:
428
        Move typedefs of hfs_{byte,word,lword}_t from hfs.h to hfs_sysdep.h.
429
        Include hfs_sysdep.h from hfs_fs.h.
430
 
431
        * trans.c, super.c, part_tbl.c, string.c, inode.c, mdb.c, hfs_fs_sb.h,
432
          hfs_sysdep.h, hfs_fs.h, hfs.h, hfs_btree.h, file_cap.c, file_hdr.c,
433
          file.c, dir_nat.c, extent.c, dir_dbl.c, dir.c, dir_cap.c, catalog.c,
434
          btree.c, bnode.c, brec.c, bitmap.c, bitops.c, bins_del.c, binsert.c,
435
          bdelete.c, bfind.c, balloc.c:
436
        Big type system changes in preparation for kernel inclusion:
437
        '[US](8|16|32)' -> 'hfs_[us](8|16|32)' (avoids name space pollution)
438
        'hfs_name_t' -> 'struct hfs_name' (allows forward declaration)
439
 
440
        * super.c, hfs_fs.h:
441
        Add init_hfs_fs() to super.c for non-module compilation.
442
 
443
Wed Mar 26 07:53:59 1997  Paul H. Hargrove  
444
 
445
        * version.c, README.sgml:
446
        Bump version to 0.8.
447
 
448
        * README.sgml:
449
        Special compilation note for DEC Alpha.
450
 
451
        * README.sgml:
452
        Note status on non-Intel processors.
453
 
454
        * hfs_fs.h:
455
        Use long's for read() and write() on the Alpha.
456
 
457
        * README.sgml:
458
        Document the afpd mount option.
459
 
460
        * inode.c:
461
        Make files always writable for owner in afpd mode.
462
 
463
Tue Mar 25 23:21:39 1997  Paul H. Hargrove  
464
 
465
        * part_tbl.c:
466
        Clean up the error checking code a bit.
467
 
468
Sat Mar 22 19:43:40 1997  Paul H. Hargrove  
469
 
470
        * part_tbl.c:
471
        Fixed uninitialized variable in old-style partition code.
472
 
473
        * bins_del.c, bdelete.c:
474
        Fix extraneous "bad argument to shift_{left,right}" messages.
475
 
476
        * bitops.c:
477
        Note that these routines are now tested on Intel, PPC and Alpha.
478
 
479
        * Makefile:
480
        Add -fno-builtin to the CFLAGS.
481
 
482
Fri Feb 14 10:50:14 1997  Paul H. Hargrove  
483
 
484
        * hfs_sysdep.h:
485
        Don't include  until after .
486
 
487
        * catalog.c:
488
        Use volume create date in hashfn() rather than casting pointer to int.
489
 
490
        * hfs.h, mdb.c:
491
        Maintaing volume create, modify and backup dates in struct hfs_mdb.
492
 
493
        * hfs_fs.h:
494
        Include the header for put_user BEFORE using it!
495
 
496
        * string.c, hfs.h:
497
        Make hfs_strhash() return an unsigned int.
498
 
499
        * trans.c, version.c, super.c, mdb.c, part_tbl.c, string.c, inode.c,
500
          hfs_sysdep.h, hfs_fs.h, hfs_fs_sb.h, hfs_btree.h, hfs.h, file_cap.c,
501
          file_hdr.c, extent.c, dir_dbl.c, dir_nat.c, dir_cap.c, dir.c,
502
          catalog.c, btree.c, bnode.c, brec.c, bitmap.c, binsert.c,
503
          bins_del.c, bdelete.c, balloc.c, README.sgml, Makefile:
504
        Updated copyright notices.
505
 
506
        * trans.c, part_tbl.c, string.c, super.c, inode.c, mdb.c, hfs_fs.h,
507
          hfs_fs_sb.h, hfs_sysdep.h, hfs_btree.h, hfs.h, file_cap.c,
508
          file_hdr.c, dir_nat.c, extent.c, dir_cap.c, dir_dbl.c, catalog.c,
509
          dir.c, brec.c, btree.c, bitmap.c, bnode.c, bdelete.c, bins_del.c,
510
          binsert.c, Makefile, TODO, balloc.c:
511
        First shot at portability to the DEC Alpha and non-gcc compilers.
512
        This involved a significant overhaul of the type system.
513
 
514
Tue Feb  4 04:26:54 1997  Paul H. Hargrove  
515
 
516
        * version.c, README.sgml:
517
        Bump version to "pre-0.8-4".
518
 
519
        * dir_nat.c:
520
        Allow creat() in Netatalk .AppleDouble directories.
521
 
522
        * dir_dbl.c:
523
        Make local functions static.
524
 
525
        * dir_dbl.c:
526
        Removed unnecessary 'extern' qualifiers from forward declarations.
527
 
528
        * file_hdr.c, TODO:
529
        Fixed the 30-year time warp with afpd.
530
 
531
        * TODO, trans.c:
532
        Don't mangle the name .AppleDesktop under fork=netatalk.
533
 
534
Mon Feb  3 23:18:45 1997  Paul H. Hargrove  
535
 
536
        * inode.c:
537
        Make header files always writable when the afpd mount option is given.
538
        Otherwise it is impossible to unlock a locked file.
539
 
540
        * TODO, inode.c:
541
        Let afpd think chmod() always succeeds, so "New Folder" works right.
542
 
543
        * super.c:
544
        The 'afpd' mount option now makes 'fork=n,names=n' the default.
545
 
546
        * TODO:
547
        List the current known afpd-compatibility problems as bugs.
548
 
549
        * file_hdr.c:
550
        Make certain date changes through header files get written to disk.
551
 
552
Sat Feb  1 02:24:12 1997  Paul H. Hargrove  
553
 
554
        * mdb.c:
555
        Work around for Linux rounding device sizes to 1k increments.
556
 
557
        * README.sgml:
558
        Fixed a typo: "the a".
559
 
560
Sat Dec 28 20:41:01 1996  Paul H. Hargrove  
561
 
562
        * TODO:
563
        Add ioctl() interface as a "missing feature."
564
 
565
        * dir_nat.c:
566
        Finish implementing the afpd-compatibility
567
        mode using the new 'afpd' mount option.
568
 
569
        * hfs_fs_sb.h, super.c:
570
        Add new 'afpd' mount option.
571
 
572
        * file_cap.c:
573
        Spelling fix.
574
 
575
Wed Dec 11 23:16:08 1996  Paul H. Hargrove  
576
 
577
        * TODO, README.sgml:
578
        Optimistically document the hybrid CD problem as fixed.
579
 
580
        * part_tbl.c:
581
        Fix the partition code so at least some of the hybrid
582
        CDROMs that were previously rejected are now accepted.
583
 
584
        * hfs.h:
585
        Make fs_start a 32-bit integer rather than 16-bits.
586
        The 16-bit value would overflow if a partition started
587
        beyond the 32M mark (e.g. the Executor 2 Beta 1 CDROM).
588
 
589
        * extent.c:
590
        Fixed a typo in an error message.
591
 
592
Tue Dec 10 14:43:46 1996  Paul H. Hargrove  
593
 
594
        * dir_nat.c:
595
        Merge in the (still dormant) afpd-compatibility changes.
596
 
597
        * inode.c:
598
        Make the .AppleDouble directory writable (again).
599
 
600
        * version.c, README.sgml:
601
        Bump version up to "pre-0.8-3".
602
 
603
        * hfs_fs.h, file_cap.c, file_hdr.c:
604
        Move AFP constants to hfs_fs.h and prefix them with "HFS_".
605
 
606
        * dir_nat.c, inode.c:
607
        Back-out changes that allowed writing to the .AppleDouble directory.
608
 
609
        * Makefile:
610
        Update rules for linuxdoc-sgml v1.5.
611
 
612
        * extent.c:
613
        Fixed serious bug in decode_extent() with handling of empty extents.
614
 
615
        * file.c:
616
        Rewrote hfs_getblk().
617
        It will no longer hang if hfs_extent_map() is buggy.
618
        Also halves the worst-case number of calls to hfs_extent_map().
619
 
620
        * extent.c:
621
        Fixed serious bug in decode_extent() with handling of empty extents.
622
 
623
        * hfs_fs.h:
624
        Small change so the PPC (and maybe other architectures?)
625
        pick up the prototypes for the user-space access functions.
626
 
627
        * super.c, file_cap.c, file_hdr.c, hfs_fs.h, file.c:
628
        Updated for new user-space memory interface.
629
 
630
Sun Dec  8 11:49:36 1996  Paul H. Hargrove  
631
 
632
        * dir_nat.c:
633
        Add special code for unlink(), and rename() in the .AppleDouble
634
        directory and rmdir() of the .AppleDouble directory.
635
 
636
        * inode.c:
637
        Make the .AppleDouble directory writable.
638
 
639
        * file_hdr.c:
640
        Use AFP flags in version 1 headers (for Netatalk compatibility).
641
 
642
        * trans.c:
643
        Fixed bug with long names causing kernel Oops.
644
 
645
Mon Oct  7 06:05:01 1996  Paul H. Hargrove  
646
 
647
        * hfs_fs.h, file_cap.c, file_hdr.c, hfs.h, extent.c, file.c, dir.c:
648
        Fix types for various read/write/truncate computations.
649
        Also allows compilation with 2.1.x kernels.
650
 
651
Thu Sep 19 10:28:43 1996  Paul H. Hargrove  
652
 
653
        * README.sgml, version.c:
654
        Bump version up to "pre-0.8-2".
655
 
656
        * TODO:
657
        Reformat the To Do list introducing prioritized categories.
658
 
659
        * file_hdr.c, file.c:
660
        Move comments about mmap() for headers from file.c to file_hdr.c.
661
        Also revise the reasoning for not yet having it implemented.
662
 
663
        * dir_nat.c, dir_cap.c, dir_dbl.c:
664
        Remove 'hfs_' prefix from names of some purely local functions.
665
 
666
        * dir_dbl.c, TODO:
667
        Under AppleDouble make create(), mkdir(), mknod(), unlink(), rename()
668
        and rename() check against header files when arguments start with '%'.
669
 
670
        * super.c, hfs_fs_sb.h, hfs_fs.h, dir_dbl.c, dir_nat.c, dir_cap.c,
671
          dir.c, README.sgml:
672
        Fix problem that prevented creating %RootInfo or .rootinfo in all
673
        directories in addition to preventing deletion from the root directory.
674
 
675
        * TODO:
676
        Remove writable header files from the To Do list.
677
 
678
        * README.sgml:
679
        Add extensive discussion of writing to HFS filesystems and
680
        the format of the special files.
681
 
682
        * file_hdr.c:
683
        Generate the 'homefs' field for version 1 header files.
684
 
685
Wed Sep 18 23:07:45 1996  Paul H. Hargrove  
686
 
687
        * hfs_fs.h, file_cap.c:
688
        Comment the definition of (struct hfs_cap_info).
689
 
690
        * version.c, README.sgml:
691
        Bump version up to "pre-0.8-1" and update the "How can I write?" FAQ.
692
 
693
        * file_hdr.c:
694
        Implement hdr_write() and hdr_truncate()!!
695
 
696
        * hfs_fs_i.h, inode.c:
697
        Make hdr_layout per-inode (not per-file) so hdr_truncate() will work.
698
 
699
        * file.c, hfs.h, catalog.c, extent.c, balloc.c:
700
        hfs_extent_adj() now uses fork->lsize to determine the target file size.
701
 
702
Sun Sep 15 07:55:24 1996  Paul H. Hargrove  
703
 
704
        * README.sgml, trans.c:
705
        Prevent creation of files & directories with '\0' or ':' in their names.
706
 
707
        * string.c, hfs_fs.h, hfs.h, dir_dbl.c, dir_nat.c, dir_cap.c:
708
        With case=lower could have run off end of string.
709
 
710
Tue Sep 10 12:05:47 1996  Paul H. Hargrove  
711
 
712
        * inode.c:
713
        Small clean up of HFS_FIL_LOCK handling.
714
 
715
        * inode.c:
716
        Fix notify_change() not to accidentally make metadata executable.
717
 
718
        * hfs_fs.h:
719
        AppleSingle files should have HFS_ITYPE_NORM.
720
 
721
        * inode.c:
722
        Return to old behavior where MdDat = i_mtime.
723
 
724
        * dir_dbl.c:
725
        Fix serious bug in hfs_dbl_readdir() that would lock-up access to a
726
        directory if one tried to write to a directory they had previously read.
727
 
728
        * file.c:
729
        Fix hfs_do_write() to adjust the fork's 'lsize' if it changed.
730
 
731
        * inode.c, file_cap.c:
732
        Allow truncate() to be called even on metadata.
733
        Any size changes will last only until the next iput() of the inode.
734
        Truncating a header file doesn't yet truncate the resource fork.
735
 
736
        * inode.c:
737
        Allow chmod() on a directory if it doesn't actually change i_mode.
738
 
739
        * hfs_fs.h, trans.c, super.c:
740
        Rename hfs_cap2mac() to hfs_colon2mac().
741
        Rename hfs_apl2mac() to hfs_prcnt2mac().
742
 
743
        * file_hdr.c:
744
        Move header construction out of hdr_read() to create hdr_build_meta().
745
 
746
        * hfs.h:
747
        Add byte-order independent conversions: U32->U16, U32->U8 and U16->U8.
748
 
749
        * file.c, file_cap.c, hfs_fs.h:
750
        Rename fix_perms() to hfs_file_fix_mode() and
751
        move it from file_cap.c to file.c.
752
 
753
        * README.sgml, super.c:
754
        Make the default for the names mount option vary with the fork option.
755
 
756
        * file_cap.c:
757
        The umask was applied incorrectly in fix_perms().
758
 
759
Mon Sep  9 13:11:28 1996  Paul H. Hargrove  
760
 
761
        * README.sgml:
762
        Note that it compiles on m68k machines, but needs more testing.
763
 
764
        * hfs_sysdep.h, Makefile:
765
        Changes to compile unmodified on m68k (and possibly other machines).
766
 
767
        * dir_cap.c:
768
        hfs_cap_readdir() was mistakenly producing .rootinfo entries for
769
        the .finderinfo and .resource subdirectories of the root directory.
770
 
771
        * inode.c:
772
        A directory's i_size was too small by 1 under CAP, so hfs_cap_readdir()
773
        would omit the last directory entry.  i_nlink was also too large by 1.
774
 
775
Sun Sep  8 12:56:06 1996  Paul H. Hargrove  
776
 
777
        * file_hdr.c:
778
        Rewrite hdr_read() to be more efficient and to deal correctly with
779
        descriptors having lengths that differ from the actual size of the data.
780
 
781
        * file_cap.c:
782
        Add write support for CAP finderinfo files!!
783
 
784
        * super.c, inode.c, hfs_fs.h, hfs_fs_i.h, hfs_fs_sb.h, file_dbl.c,
785
          file_nat.c, file_hdr.c, file.c, file_cap.c, Makefile, dir.c:
786
        Generate metadata (header files and CAP finderinfo files) on-the-fly.
787
        The files file_{dbl,nat}.c are merged into file_hdr.c as a result.
788
 
789
Sat Sep  7 08:09:24 1996  Paul H. Hargrove  
790
 
791
        * README.sgml:
792
        Fix silly grammatical error.
793
 
794
Fri Sep  6 09:17:12 1996  Paul H. Hargrove  
795
 
796
        * hfs_fs_sb.h, super.c:
797
        No need to cast type of s_reserved.
798
 
799
        * file_dbl.c, file_nat.c, dir_dbl.c, dir_nat.c, file_cap.c, dir_cap.c:
800
        Add the missing NULL readpage and writepage entries to the inode_ops.
801
 
802
        * file_dbl.c, file_nat.c, file.c, file_cap.c:
803
        Cleanup error checking for read() and write().
804
 
805
Thu Sep  5 05:29:53 1996  Paul H. Hargrove  
806
 
807
        * version.c, README.sgml:
808
        Bump version up to "0.7.2".
809
        User-visible changes from 0.7.0:
810
        + Corrected CAP finderinfo file format.
811
        + Support for more features of CAP finderinfo files.
812
        + No longer requires gcc 2.7.0 or newer.
813
        + Now implements mknod() system call.
814
 
815
        * hfs_fs.h, dir_nat.c, file_cap.c, file_nat.c, README.sgml, dir_cap.c:
816
        Include the CAP and Netatalk copyright notices.
817
 
818
        * hfs_fs.h, file_cap.c:
819
        Repair and improve CAP support.
820
 
821
        * catalog.c:
822
        Oops! The BkDat for new files and directories was in 1972 when
823
        it should have been in 1904 (not that it matters that much).
824
 
825
        * inode.c:
826
        The HFS MdDat should be the larger of the i_mtime and i_ctime.
827
 
828
        * README.sgml:
829
        Change 'm_time' to 'i_mtime'.
830
 
831
Wed Sep  4 13:27:35 1996  Paul H. Hargrove  
832
 
833
        * version.c, README.sgml:
834
        Bump version up to "0.7.1".
835
        User-visible changes from 0.7.0:
836
        + Minor bug in CAP finderinfo file format fixed.
837
        + No longer requires gcc 2.7.0 or newer.
838
        + Now implements mknod() system call.
839
 
840
        * README.sgml:
841
        Removed note about needing gcc 2.7.0 or newer.
842
 
843
        * file.c:
844
        Optimize hfs_do_read() based on the fact that HFS has no holes in files.
845
        Minor code formatting changes.
846
 
847
        * hfs.h, hfs_sysdep.h, mdb.c, extent.c, file.c, btree.c, catalog.c,
848
          balloc.c, bnode.c:
849
        Reorganize memory management routines.
850
        hfs_malloc() and hfs_free() are the main routines.
851
        The macros FREE() and MALLOC() are gone.
852
        HFS_NEW() and HFS_DELETE() are new 'shorthand' macros.
853
 
854
        * btree.c:
855
        Fix broken debugging code.
856
 
857
        * super.c, hfs.h, mdb.c, part_tbl.c, Makefile:
858
        Separate partition table handling into its own file.
859
 
860
        * dir.c:
861
        Spelling fixes.
862
 
863
        * sysdep.c:
864
        Oops!  Error check got sense reversed while editing.
865
 
866
        * mdb.c, sysdep.c, hfs.h, hfs_btree.h, hfs_sysdep.h, btree.c, extent.c,
867
          bfind.c, bnode.c, balloc.c:
868
        Make hfs_buffer a pointer to a buffer_head, rather than a buffer_head.
869
 
870
        * hfs_fs.h, dir_cap.c, dir_dbl.c, dir_nat.c, dir.c:
871
        Add a mknod() entry to the inode_operations for normal directories.
872
        All it is good for is letting root create regular files.
873
 
874
        * file_dbl.c, file_nat.c, file.c, file_cap.c, dir_cap.c, dir_dbl.c,
875
          dir_nat.c:
876
        Add the missing NULL entries to the end of the file_operations.
877
 
878
        * super.c, hfs_btree.h, hfs_fs.h, mdb.c, extent.c, hfs.h, catalog.c:
879
        Make the remainder of the (untested) changes
880
        to allow compilation with gcc 2.6.3.
881
 
882
        * hfs_fs.h:
883
        Fix hfs_fs.h to work with gcc 2.6.3.
884
 
885
        * hfs_fs.h:
886
        (struct hfs_cap_info) should never have been 'packed'.
887
 
888
        * BUG_INFO:
889
        Use -V for getting version of module utilities.
890
 
891
        * super.c, sysdep.c, trans.c, hfs_fs_sb.h, inode.c, hfs_fs.h,
892
          hfs_fs_i.h, file_cap.c, file_dbl.c, file_nat.c, dir_dbl.c,
893
          dir_nat.c, file.c, dir.c, dir_cap.c:
894
        Fix up hfs_fs{,_i,_sb}.h in preparation for inclusion in kernel.
895
 
896
Tue Sep  3 23:58:03 1996  Paul H. Hargrove  
897
 
898
        * hfs.h:
899
        Change eventual destination to linux/fs/hfs rather than include/linux.
900
 
901
        * super.c, inode.c, mdb.c, hfs_btree.h, hfs_fs.h, hfs_sysdep.h,
902
          file_dbl.c, file_nat.c, hfs.h, dir_nat.c, extent.c, dir_dbl.c,
903
          catalog.c, dir_cap.c, brec.c, btree.c, binsert.c, bnode.c, bdelete.c,
904
          bfind.c, bins_del.c, balloc.c:
905
        Replace all the swap{16,32}() stuff w/ ntohl() and friends.
906
 
907
Fri Aug 30 09:51:23 1996  Paul H. Hargrove  
908
 
909
        * version.c, README.sgml:
910
        Rewrite installation instructions and bump version up to "0.7.0".
911
 
912
        * Makefile:
913
        Remove the INCDIR variable; we now rely on the
914
        user to have the correct links in /usr/include.
915
 
916
Mon Aug 26 12:25:41 1996  Paul H. Hargrove  
917
 
918
        * version.c, README.sgml:
919
        Reformat the documentation and bump version up to "pre-0.7-9".
920
        Hopefully this will become version 0.7 in a few days.
921
 
922
Thu Aug 22 08:00:44 1996  Paul H. Hargrove  
923
 
924
        * README.sgml, version.c:
925
        Bump version up to "pre-0.7-8".
926
 
927
        * file_nat.c, file_dbl.c:
928
        AppleDouble headers had resource fork size in wrong byte order.
929
 
930
Wed Aug 21 05:22:28 1996  Paul H. Hargrove  
931
 
932
        * version.c, README.sgml:
933
        Bump version up to "pre-0.7-7".
934
 
935
        * bnode.c:
936
        Fixed a long-standing bug in hfs_bnode_lock().
937
        This bug occasionally caused lock-up under heavy load.
938
 
939
Tue Aug 20 09:15:10 1996  Paul H. Hargrove  
940
 
941
        * README.sgml, version.c:
942
        Bump version up to "pre-0.7-6".
943
 
944
        * catalog.c:
945
        Fix a deadlock problem in catalog readers/writers locking.
946
 
947
        * bins_del.c:
948
        hfs_bnode_update_key() was still corrupting the header node sometimes.
949
 
950
        * catalog.c, dir.c:
951
        Fix problem with extending the catalog B-tree hanging hfs_cat_commit().
952
        Fix a race that could delete a non-empty directory.
953
 
954
Sun Aug 18 23:16:43 1996  Paul H. Hargrove  
955
 
956
        * version.c, README.sgml:
957
        Bump version to "pre-0.7-5" for test release.
958
 
959
        * dir_cap.c, README.sgml:
960
        Change ".:rootinfo:" to ".rootinfo".
961
 
962
        * hfs_fs.h, dir_cap.c, dir_dbl.c, dir_nat.c:
963
        Mangle the names as first step in hfs_{cap,dbl,nat}_lookup().
964
        Use the new hfs_streq() to catch mixed case matches to the special
965
        files and directories in hfs_{cap,dbl,nat}_lookup().
966
        Store reserved names only once.
967
 
968
        * dir.c, hfs.h, string.c:
969
        Implement hfs_streq() which tests for string equality more
970
        rapidly than hfs_strcmp() by checking for equal length first,
971
        and use it when checking for reserved names.
972
 
973
        * inode.c, TODO, dir_cap.c, dir_dbl.c, README.sgml:
974
        Provide the metadata for the root directory for the CAP and AppleDouble
975
        schemes in the files ".:rootinfo:" and "%RootInfo", respectively.
976
 
977
        * TODO, super.c:
978
        Add (untested) support for the old Mac Plus style of partition map.
979
 
980
        * bdelete.c, TODO:
981
        Note the possibility of bdelete() to hanging on a corrupted B-tree.
982
 
983
        * TODO:
984
        Add items corresponding to some of the 'XXX' comments in the sources.
985
 
986
        * dir_dbl.c, dir_cap.c:
987
        Update comments, removing ref. to a comment that once existed in inode.c
988
 
989
        * catalog.c:
990
        Remove some redundant locking and error checks
991
        that had been previously marked as questionable.
992
 
993
Sat Aug 17 08:06:56 1996  Paul H. Hargrove  
994
 
995
        * binsert.c, bfind.c, bins_del.c, balloc.c, bdelete.c:
996
        Edited some comments for correctness.
997
 
998
        * README.sgml, version.c:
999
        Bump version up to "pre-0.7-4" in preparation for snapshot release.
1000
 
1001
        * Makefile:
1002
        Have 'make dep' delete the *.o and *.s files.
1003
 
1004
        * catalog.c, hfs.h, TODO, bfind.c:
1005
        Move looping from hfs_cat_next() into hfs_bsucc(),
1006
        where it can be done an entire node at a time.
1007
 
1008
Fri Aug 16 05:02:59 1996  Paul H. Hargrove  
1009
 
1010
        * TODO:
1011
        Add AppleShare support to the list of goals.
1012
 
1013
        * trans.c, super.c, hfs_fs.h, README.sgml:
1014
        Add a "names=netatalk" mount option, since
1015
        Netatalk quotes initial periods and CAP doesn't.
1016
 
1017
        * Makefile:
1018
        Oops! Had removed the 'include .depend' from Makefile.
1019
 
1020
        * inode.c, hfs_fs.h, file_nat.c, file_dbl.c, file.c, dir_nat.c,
1021
          dir_dbl.c, dir_cap.c, dir.c, README.sgml:
1022
        Update for 2.0.1 and newer kernels.
1023
 
1024
        * Makefile:
1025
        Get rid of ifeq stuff and use a .tmpdepend file to make sure
1026
        a failed 'make depend' doesn't allow a 'make hfs.o'.
1027
 
1028
Wed Aug 14 01:03:01 1996  Paul H. Hargrove  
1029
 
1030
        * version.c, README.sgml:
1031
        Bump version up to "pre-0.7-3" in preparation for snapshot release.
1032
 
1033
        * btree.c, extent.c, bnode.c:
1034
        Fix up some debugging code.
1035
 
1036
Tue Aug 13 12:42:12 1996  Paul H. Hargrove  
1037
 
1038
        * version.c, README.sgml:
1039
        Bump revision to "pre-0.7-2".
1040
 
1041
        * super.c, sysdep.c, mdb.c, file_nat.c, inode.c, file_cap.c,
1042
          file_dbl.c, file.c, extent.c, dir.c, catalog.c, btree.c, bnode.c,
1043
          balloc.c:
1044
        Added the remaining missing function comments.
1045
 
1046
        * Makefile, README.sgml:
1047
        Simplify the default make rule to build the dependency file AND hfs.o.
1048
        Change the installation instructions to reflect the change.
1049
 
1050
        * hfs.h:
1051
        Added missing structure comments.
1052
 
1053
        * bdelete.c:
1054
        Merge bdelete_brec() back into hfs_bdelete().
1055
        Add missing function comments.
1056
 
1057
 
1058
        * extent.c:
1059
        Insignificant code change removing an unneeded indirection.
1060
 
1061
        * btree.c, hfs_btree.h, balloc.c, bnode.c:
1062
        Add a 'sys_mdb' field to (struct hfs_btree).
1063
 
1064
        * extent.c, hfs_sysdep.h, sysdep.c, bnode.c, balloc.c, bfind.c,
1065
          Makefile:
1066
        Move hfs_buffer_read() from hfs_sysdep.h to sysdep.c so it can use
1067
        the symbol HFS_SECTOR_SIZE rather than the manifest constant 512.
1068
        Have hfs_buffer_read() print an error message,
1069
        and remove redundant errors from the callers.
1070
 
1071
        * hfs_sysdep.h, mdb.c, super.c, file.c, hfs.h, hfs_btree.h, catalog.c,
1072
          extent.c, btree.c, balloc.c, bfind.c, bnode.c:
1073
        Get rid of the type hfs_device and the fields of that type,
1074
        using the type hfs_sysmdb and the 'sys_mdb' field in its place.
1075
 
1076
        * Makefile:
1077
        Fix definition of HDRS variable.
1078
 
1079
        * README.sgml, version.c:
1080
        Bump version up to "pre-0.7-1".
1081
 
1082
        * Makefile:
1083
        Separate sources and headers into three groups:
1084
        B-tree code, HFS code and Linux code.
1085
 
1086
        * bitmap.c, bitops.c, hfs.h, hfs_sysdep.h, balloc.c:
1087
        Implemented portable set of bit operations in hfs_sysdep.h
1088
 
1089
        * mdb.c, hfs_sysdep.h, hfs_btree.h, extent.c, btree.c, bitmap.c,
1090
          bnode.c, balloc.c:
1091
        Implement a portable set of buffer operations in hfs_sysdep.h
1092
 
1093
        * TODO:
1094
        Remove note about separating header files into two parts.
1095
 
1096
        * catalog.c:
1097
        Remove call to hfs_mdb_dirty(), since the hfs_brec_relse() does it.
1098
 
1099
        * hfs.h, extent.c, file.c:
1100
        Move hfs_getblk() from extent.c to file.c, since that is now the
1101
        only file that actually uses it.
1102
 
1103
        * balloc.c:
1104
        Replace use of hfs_getblk() in balloc.c with a local function
1105
        (get_new_node()) that doesn't retry, since B-trees can't shrink.
1106
 
1107
        * hfs.h, hfs_btree.h, hfs_sysdep.h, mdb.c, extent.c:
1108
        Make hfs_buffer a typedef.
1109
 
1110
        * inode.c, hfs.h, hfs_sysdep.h, dir.c:
1111
        Change hfs_sysentry to a typedef.
1112
        Rename 'sysentry' field of (struct hfs_cat_entry) to 'sys_entry'.
1113
 
1114
        * super.c, mdb.c, catalog.c:
1115
        Rename hfs_cat_sync() to hfs_cat_commit() and call it
1116
        from hfs_mdb_commit() rather than from hfs_write_super().
1117
 
1118
        * catalog.c, file.c:
1119
        Minimize the calls to hfs_mdb_dirty().   Now called when:
1120
        1) A buffer holding a volume bitmap block is dirtied.
1121
        2) A dirty B-tree node is written back to the buffers.
1122
        3) A dirty catalog entry is written back to the buffers.
1123
 
1124
        * hfs_sysdep.h, hfs.h:
1125
        Make hfs_sysmdb a typedef.
1126
 
1127
Sun Aug 11 08:46:10 1996  Paul H. Hargrove  
1128
 
1129
        * hfs_sysdep.h, extent.c, hfs.h:
1130
        Replace hfs_mdb_{lock,unlock} with more portable
1131
        scheme using a wait queue in the MDB.
1132
 
1133
        * hfs.h, hfs_btree.h, hfs_sysdep.h, bnode.c, catalog.c, binsert.c:
1134
        Make hfs_wait_queue a typedef'd pointer to a (struct wait_queue).
1135
        Rename hfs_wait_on() to hfs_sleep_on().
1136
 
1137
        * catalog.c, hfs_sysdep.h, super.c, bfind.c, bnode.c, balloc.c:
1138
        Implemented hfs_dev_name() in hfs_sysdep.h
1139
        as a portable call to produce a device name.
1140
 
1141
        * super.c, hfs.h, mdb.c:
1142
        Rename hfs_mdb_read() to hfs_mdb_get(), and don't take a
1143
        'sys_mdb' argument.  That's the callers responsibility.
1144
 
1145
        * sysdep.c, Makefile:
1146
        Remove the pointless file sysdep.c
1147
 
1148
        * README.sgml:
1149
        Clean up the "System Requirements" section.
1150
 
1151
Sat Aug 10 22:41:24 1996  Paul H. Hargrove  
1152
 
1153
        * sysdep.h, sysdep.c, super.c, hfs_sysdep.h, mdb.c, string.c,
1154
          hfs_fs.h, hfs_fs_i.h, hfs_fs_sb.h, hfs_btree_private.h, hfs_btree.h,
1155
          file_cap.c, file_dbl.c, file_nat.c, hfs.h, file.c, dir_nat.c,
1156
          extent.c, dir.c, dir_cap.c, dir_dbl.c, catalog.c, bnode.c, brec.c,
1157
          btree.c, binsert.c, bitmap.c, bitops.c, bfind.c, bins_del.c,
1158
          Makefile, balloc.c, bdelete.c:
1159
        Includes the hfs.h that was missing from the previous check in.
1160
        MAJOR include-file cleanup:
1161
                hfs_btree.h merged into hfs.h
1162
                hfs_btree_private.h renamed hfs_btree.h
1163
                sysdep.h renamed hfs_sysdep.h
1164
        Fixed some minor portability fixes shown up by the header split.
1165
 
1166
        * README.sgml:
1167
        Add instructions for a dealing with a missing linux/version.h
1168
 
1169
        * hfs_fs.h, mdb.c, string.c, catalog.c, extent.c, btree.c, bitmap.c,
1170
          bitops.c, bnode.c, brec.c, bins_del.c, binsert.c, bdelete.c, bfind.c,
1171
          balloc.c:
1172
        Major split of hfs_fs.h into Linux-specific
1173
        part (hfs_fs.h) and HFS-specific part (hfs.h).
1174
 
1175
        * file.c, extent.c:
1176
        Move hfs_getblk() from file.c to extent.c
1177
 
1178
        * sysdep.h, super.c, mdb.c, hfs_fs_sb.h, hfs_fs.h, file.c, extent.c,
1179
          catalog.c, bnode.c, bitmap.c:
1180
        Make the field 's_mdb' in (struct hfs_sb_info) a pointer to
1181
        the MDB, rather than the actual MDB.  This allowed the definition
1182
        of (struct hfs_mdb) to be moved from hfs_fs_sb.h to hfs_fs.h.
1183
 
1184
        * ccache.c, hfs_fs.h, Makefile, catalog.c:
1185
        Merged ccache.c and catalog.c into the latter.
1186
        Moved definition of (struct hfs_cat_rec) into catalog.c
1187
 
1188
        * extent.c:
1189
        Oops!  Last set of changes didn't compile but they're OK now.
1190
 
1191
        * hfs_btree.h, hfs_fs.h, mdb.c, ccache.c, extent.c, btree.c:
1192
        Move the definition of (struct hfs_raw_extent) inside
1193
        extent.c and treat it as simple array of U16's elsewhere.
1194
 
1195
        * hfs_fs.h, dir_dbl.c, dir_nat.c, ccache.c, catalog.c, dir_cap.c:
1196
        Make hfs_cat_next() return the CNID and cdrType of the entry.
1197
        Now catalog.c and ccache.c are the only files which
1198
        depend on the structure of a catalog record on disk.
1199
 
1200
        * dir.c, hfs_fs.h, catalog.c:
1201
        Replace hfs_cat_new_{file,dir}() with hfs_cat_{create,mkdir}()
1202
        which are wrappers for what used to be hfs_cat_create().
1203
 
1204
        * hfs_fs.h, mdb.c, super.c, Makefile:
1205
        Split super.c into super.c (Linux stuff) and mdb.c (MDB stuff).
1206
 
1207
        * super.c, hfs_fs_sb.h:
1208
        Add the MDB field 'drAtrb' to (struct hfs_mdb) as the field 'attrib'.
1209
 
1210
        * hfs_fs_sb.h, super.c:
1211
        Split hfs_read_super() into hfs_read_super() and hfs_mdb_read().
1212
 
1213
        * super.c, hfs_fs_sb.h:
1214
        Remove the unneeded 'hs' field from (struct hfs_mdb).
1215
 
1216
        * TODO:
1217
        Remove item about hfs_notify_change() needing to update metadata.
1218
 
1219
        * inode.c, hfs_fs.h, hfs_fs_sb.h, file_cap.c, file_dbl.c, file_nat.c,
1220
          file.c, dir.c:
1221
        Add a flags argument to hfs_{cap,dbl,nat}_buildmeta() so that
1222
        it only builds the parts that are currently out-of-date.
1223
        Call hfs_{cap,dbl,nat}_buildmeta() through hfs_update_meta()
1224
        in hfs_notify_change() and hfs_rename() to update the metadata.
1225
 
1226
        * dir.c:
1227
        Make test for normal dir in update_dirs_{plus,minus}() more explicit.
1228
 
1229
        * inode.c, file_cap.c, file_dbl.c, file_nat.c, dir_dbl.c, dir_nat.c,
1230
          file.c, README.sgml, dir_cap.c:
1231
        Resolve the "meta-data" vs. "metadata" rivalry in favor of the latter.
1232
 
1233
        * btree.c:
1234
        Simplify some debugging code.
1235
 
1236
        * hfs_btree_private.h, bnode.c, btree.c, balloc.c:
1237
        Put the in-core copy of the header node IN the
1238
        B-tree structure rather than just a pointer to it.
1239
 
1240
        * hfs_btree_private.h, btree.c, bnode.c:
1241
        Have hfs_btree_commit() call hfs_bnode_commit()
1242
        to commit the header and root nodes.
1243
 
1244
        * hfs_fs.h, super.c, hfs_btree_private.h, btree.c, hfs_btree.h,
1245
          balloc.c:
1246
        Change hfs_commit_mdb() to hfs_mdb_commit().
1247
        Make hfs_mdb_commit() call hfs_btree_commit().
1248
        Move code to update B-tree size and extent
1249
        from hfs_btree_extend() to hfs_btree_commit().
1250
        Make hfs_btree_extend() call hfs_mdb_commit().
1251
 
1252
        * super.c:
1253
        Change hfs_commit_super() to hfs_commit_mdb().
1254
 
1255
        * btree.c, bnode.c, bfind.c:
1256
        Fixed up broken debugging code and error messages.
1257
 
1258
        * super.c, hfs_btree_private.h, btree.c, hfs_btree.h, bdelete.c,
1259
          binsert.c, balloc.c:
1260
        Now use write-back caching of B-tree header fields.
1261
 
1262
        * hfs_fs.h:
1263
        Get rid of the add{16,32}() inlines as they are no longer used.
1264
 
1265
        * hfs_btree_private.h, binsert.c, btree.c, bdelete.c, bfind.c, balloc.c:
1266
        All the needed fields of the B-tree header are
1267
        now cached for reading, but not yet writing.
1268
 
1269
        * TODO:
1270
        Remove "Implement write count" from TODO list.
1271
 
1272
        * file.c, super.c, bnode.c:
1273
        Implement write count.
1274
 
1275
        * catalog.c:
1276
        Fix directory entry counting in hfs_cat_move().
1277
 
1278
        * balloc.c:
1279
        Simplify hfs_btree_extend(), since the allocation
1280
        request will get rounded up to the clumpsize.
1281
 
1282
        * extent.c:
1283
        Honor clumpsize when allocating blocks to files.
1284
 
1285
        * file_cap.c, file_dbl.c, file_nat.c, super.c, dir.c, file.c,
1286
          ccache.c, catalog.c, balloc.c:
1287
        Mark 44 functions in need of commenting.
1288
 
1289
        * hfs_fs_sb.h, super.c, extent.c, hfs_fs.h, ccache.c, btree.c, balloc.c:
1290
        Record clumpsize in allocation blocks rather than 512-byte blocks.
1291
 
1292
        * sysdep.h, super.c, TODO, balloc.c, hfs_fs_sb.h:
1293
        Now updates the backup MDB when a B-tree grows.
1294
 
1295
        * extent.c:
1296
        hfs_extent_free() had test against NULL backward.
1297
        The result is that access to a file with extents in the extents
1298
        B-tree would result in an infinite loop in hfs_cat_put().
1299
 
1300
        * hfs_fs_sb.h, super.c, hfs_fs.h:
1301
        Reorganize partition map code to get size of partition
1302
        in preparation for dealing with the alternate MDB.
1303
 
1304
Fri Aug  9 03:25:13 1996  Paul H. Hargrove  
1305
 
1306
        * Makefile:
1307
        Add make rules for README.{ps,info}
1308
 
1309
        * README, README.sgml, DOC, FAQ, Makefile, .cvsignore,
1310
        Merge CHANGES into ChangeLog.
1311
        Merge DOC, FAQ and README into README.sgml.
1312
        Add make rules for building README.{txt,dvi}
1313
 
1314
        * BUG_INFO, Makefile:
1315
        Added a BUG_INFO script which attempts to collect some useful
1316
        information which I'd like to see in every bug report I receive.
1317
 
1318
        * Makefile, version.c:
1319
        Added version.c which contains a version string.
1320
 
1321
Thu Aug  8 21:48:24 1996  Paul H. Hargrove  
1322
 
1323
        * trans.c:
1324
        Fix Latin-1 -> Macintosh filename mapping to change colons to pipes.
1325
 
1326
        * trans.c:
1327
        Fixed Mac->Latin-1 translation to behave as documented for the
1328
        extended 8-bit characters without corresponding Latin-1 characters.
1329
 
1330
        * inode.c, super.c, file.c, hfs_fs_i.h, hfs_fs_sb.h, DOC:
1331
        Added a conv={binary,text,auto} mount option similar to that of the
1332
        msdos, hpfs and iso9660 filesystems, but applying only to data forks.
1333
        As compared to those filesystems, HFS has the advantage that only a
1334
        single CR need be converted to a NL, rather than a CR/NL sequence, so
1335
        it is quite safe to seek in the file.
1336
        Additionally the 'Type' field is far more reliable indicator of text
1337
        files than a file extension.
1338
 
1339
        * super.c:
1340
        Simplified parsing of mount options.
1341
 
1342
        * super.c:
1343
        Oops!  The part= mount option was being parsed in octal!
1344
 
1345
        * TODO:
1346
        Remove "case=lower" from the list of goals.
1347
 
1348
        * super.c, hfs_fs.h, hfs_fs_sb.h, string.c, dir_dbl.c, dir_nat.c,
1349
          dir_cap.c, DOC:
1350
        Resurrect the case={asis,lower} mount option.
1351
 
1352
        * dir.c:
1353
        Simpler test for "normal" directory in update_dirs_{plus,minus}().
1354
 
1355
        * hfs_fs_sb.h, super.c, dir.c, hfs_fs.h, catalog.c, DOC:
1356
        Add mount options to specify what Type and Creator will be used for
1357
        new files and change the default from NULLs to "????".
1358
 
1359
Wed Aug  7 11:32:22 1996  Paul H. Hargrove  
1360
 
1361
        * catalog.c:
1362
        In hfs_cat_next() use entry->cnid rather than the key of the initial
1363
        brec to identify the end of the directory.
1364
 
1365
        * README:
1366
        Update for pre-0.7 version.
1367
 
1368
        * hfs_fs.h:
1369
        Create versioned module if CONFIG_MODVERSIONS is set in linux/config.h
1370
 
1371
        * TODO:
1372
        Note need for special steps for unaligned accesses on some machines.
1373
 
1374
        * FAQ:
1375
        Added Q0: What is HFS?
1376
        Added Q7: Does hfs_fs work w/ 400k and 800k diskettes?
1377
        Brought Q6 (about writability) up to date.
1378
        Made a few other answers more verbose.
1379
 
1380
Tue Aug  6 00:58:46 1996  Paul H. Hargrove  
1381
 
1382
        * Makefile:
1383
        Changed 'snapshot' rule to include cvs tag command.
1384
 
1385
        * hfs_fs.h, dir_cap.c, dir_dbl.c, dir_nat.c, catalog.c, ccache.c:
1386
        Implemented readers half of dir locking scheme so readdir() should
1387
        produce consistent results and count_dir_entries() is not race prone.
1388
 
1389
        * catalog.c:
1390
        hfs_cat_move() was calling hfs_cat_decache() after changing
1391
        the key rather than before, corrupting the hash lists.
1392
 
1393
Mon Aug  5 14:03:46 1996  Paul H. Hargrove  
1394
 
1395
        * hfs_fs.h, catalog.c:
1396
        Implemented the writers half of a locking scheme for directories.
1397
 
1398
        * inode.c:
1399
        Fixed a serious bug in hfs_notify_change() that would allow a chmod()
1400
        on directory meta-data and would cause the directory inode (if it was
1401
        in memory at the time) to change into a file inode.
1402
 
1403
        * inode.c:
1404
        Fixed a problem with write permissions on directory meta-data.
1405
 
1406
        * dir_dbl.c, dir_nat.c, dir_cap.c:
1407
        hfs_{cap,dbl,nat}_readdir() now return the correct value in the 'd_ino'
1408
        field of the dirent for all cases, something I think has always been
1409
        done incorrectly until now.
1410
 
1411
        * dir_nat.c, inode.c, dir_cap.c:
1412
        In hfs_{cap,nat}_lookup() take advantage of the
1413
        'file_type' field of (struct hfs_inode_info).
1414
 
1415
        * TODO:
1416
        Removed two accomplished goals (rename() and improved readdir()).
1417
 
1418
        * inode.c, dir_dbl.c, dir_nat.c, hfs_fs_i.h, dir.c, dir_cap.c:
1419
        Rewrite hfs_{cap,dbl,nat}_readdir() to take advantage of hfs_cat_next().
1420
        They now use a uniform 'i_size' for all inodes for a given directory.
1421
        This simplifies update_dirs_{plus,minus}() and eliminates the need for
1422
        the 'file_size' and 'dir_link' fields of (struct hfs_inode_info).
1423
        For the CAP and Netatalk schemes the meta-data directories are now the
1424
        last entries rather than coming just after '.' and '..'.  This is in
1425
        preparation for the day when we can write to the files in those
1426
        directories, and ensures that when using 'tar' to copy HFS filesystems
1427
        the file or directory will be created before the meta-data is written.
1428
        Otherwise we could be stuck writing meta-data and not knowing if it is
1429
        for a file or a directory!
1430
 
1431
        * ccache.c:
1432
        Updated count_dir_entries() for new hfs_cat_next().
1433
 
1434
        * hfs_fs.h, catalog.c:
1435
        hfs_cat{nth,next}() no longer take a 'types' argument,
1436
        so they now return all entries.
1437
        hfs_cat_next() now uses the ParID of the key to detect
1438
        the end of the directory.
1439
        hfs_cat_nth() now accepts n=0 as a valid input, requesting the thread.
1440
 
1441
        * trans.c, string.c, super.c, dir_nat.c, hfs_fs.h, dir.c, dir_cap.c,
1442
          dir_dbl.c, catalog.c:
1443
        Rename (struct hfs_cname) to the more appropriate (struct hfs_pstr).
1444
 
1445
        * hfs_fs.h, hfs_btree.h:
1446
        Move some constants from hfs_fs.h to hfs_btree.h
1447
 
1448
        * bdelete.c, hfs_btree.h:
1449
        Remove hfs_bdelete_brec() from public B-tree interface.
1450
 
1451
        * hfs_btree_private.h, hfs_fs.h, btree.c, hfs_btree.h, bnode.c, brec.c,
1452
          bfind.c, bins_del.c, binsert.c, balloc.c, bdelete.c, Makefile:
1453
        Split B-tree stuff into public and private parts:
1454
                brec.c split into bfind.c and brec.c
1455
                hfs_btree.h split into hfs_btree.h and hfs_btree_private.c
1456
 
1457
        * inode.c:
1458
        The tests and sets of the HFS_FIL_LOCK bit where all reversed!
1459
 
1460
        * hfs_fs.h, ccache.c:
1461
        Redo some ccache stuff, removing the 'error' field from
1462
        (struct hfs_cat_entry) and ensuring that hfs_cat_put()
1463
        will not sleep on an uninitialized entry.
1464
 
1465
Sun Aug  4 23:43:28 1996  Paul H. Hargrove  
1466
 
1467
        * sysdep.h:
1468
        Change swap{16,32}() back to macros since hton[ls]() are functions.
1469
 
1470
        * hfs_fs.h, ccache.c:
1471
        Use only lowest order byte of parent CNID in hashing a catalog key.
1472
 
1473
        * bdelete.c:
1474
        The "improved" bdelete() was TOO paranoid looking for missing parents.
1475
 
1476
        * ccache.c:
1477
        Get rid of pointless swap16const(0).
1478
 
1479
        * hfs_fs.h, inode.c, extent.c, ccache.c, dir_cap.c, dir_nat.c,
1480
          binsert.c, catalog.c:
1481
        Store cnid and associated constants in big-endian byte order.
1482
        This reduces the number of byte-order swaps required.
1483
 
1484
        * sysdep.h:
1485
        Make swap32() and swap16() inline functions.
1486
 
1487
        * dir_nat.c, dir_cap.c, dir_dbl.c:
1488
        Added hfs_rename() to the inode_operations for normal directories.
1489
 
1490
        * dir.c, hfs_fs.h:
1491
        Added hfs_rename() and cleaned up hfs_{create,mkdir,unlink,rmdir}().
1492
 
1493
        * catalog.c:
1494
        Added the missing check for moving a directory into itself.
1495
 
1496
        * catalog.c, ccache.c, hfs_fs.h:
1497
        Implement a nearly ideal hfs_cat_move().
1498
        It still needs to prevent moving a directory into itself.
1499
        The functions hfs_cat_{create,delete,move}() still need work with
1500
        respect to their atomicity (especially vs. readdir).
1501
 
1502
        * bdelete.c:
1503
        Fixed a serious bug in hfs_bdelete_brec() that would yield a corrupted
1504
        b-tree when the first record in a bnode was deleted.
1505
        Made bdelete() more aggressive when checking for missing parents.
1506
 
1507
Sat Aug  3 06:11:50 1996  Paul H. Hargrove  
1508
 
1509
        * btree.c, super.c:
1510
        Fixed a problem that caused a kernel oops when no HFS filesystem
1511
        is found.
1512
 
1513
Wed Jul 24 13:06:12 1996  Paul H. Hargrove  
1514
 
1515
        * catalog.c:
1516
        Remove race in hfs_cat_create() that could overflow directory valence.
1517
 
1518
        * catalog.c:
1519
        Fix hfs_cat_create() so the parent directory doesn't get deleted
1520
        out from under it.  Otherwise we could have created files and
1521
        directories in deleted directories.
1522
 
1523
        * hfs_fs.h, dir_cap.c, dir_dbl.c, dir_nat.c, catalog.c, ccache.c:
1524
        Redo hfs_cat_{next,nth}() in terms of which entry types to
1525
        allow, rather than which to skip.
1526
 
1527
        * catalog.c:
1528
        The function hfs_cat_create() would fail to hfs_cat_put(entry) if
1529
        the 'record' argument was invalid or if the 'result' argument was NULL.
1530
 
1531
        * dir.c:
1532
        The functions hfs_{create,mkdir,unlink,rmdir} all failed to
1533
        call iput() when their arguments conflicted with a reserved name.
1534
 
1535
        * catalog.c, hfs_fs_sb.h:
1536
        Start over on rename().  Still unfinished.
1537
        Fix silly bug in hfs_cat_create() that made it always fail.
1538
 
1539
        * ccache.c:
1540
        Fix byte-order bug in write_entry().
1541
 
1542
Tue Jul 23 12:12:58 1996  Paul H. Hargrove  
1543
 
1544
        * dir_dbl.c, dir_nat.c, hfs_fs.h, dir.c, dir_cap.c:
1545
        Remove the macros KEY() and PARENT() since the key is now easy
1546
        to access through the catalog entry.
1547
        Replace the macros NAME{IN,OUT}() with inline functions
1548
        hfs_name{in,out}() to gain type checking of arguments.
1549
 
1550
        * catalog.c:
1551
        Remove the macro TYPE().
1552
 
1553
        * inode.c, file_dbl.c, file_nat.c, file.c, file_cap.c:
1554
        Remove the #define's of the unused macro KEY().
1555
 
1556
        * hfs_fs.h, dir_cap.c, dir_dbl.c, dir_nat.c, catalog.c, dir.c:
1557
        Replace hfs_lookup_parent() in dir.c with hfs_cat_parent() in catalog.c.
1558
        This new function performs locking to protect against rename() changing
1559
                the parent during I/O.
1560
        It is also intended for use with files as well as directories.
1561
        Change hfs_{cap,dbl,nat}_lookup() to use the new function.
1562
 
1563
        * dir.c, hfs_fs.h, catalog.c:
1564
        Remerge hfs_cat_{create,mkdir}() into hfs_cat_create() and resurrect
1565
                hfs_cat_new_{file,dir}().
1566
        Fix hfs_cat_{create,delete} to use the improved catalog cache for
1567
                locking in place of directory-level create/delete locks.
1568
        Fix hfs_{create,mkdir}() to use the new hfs_cat_create().
1569
 
1570
        * hfs_fs.h, ccache.c:
1571
        Rewrite parts to remove need for specialized create/delete locking.
1572
        Use new case-independent hash function.
1573
        Fix bug in hfs_cat_get() that would read an entry w/o locking it.
1574
        Call hfs_relinquish() before retrying a deleted entry in hfs_cat_get.
1575
        If there is a read error, then don't retry in hfs_cat_get().
1576
        Remove unused 'version' field from (struct hfs_cat_entry).
1577
 
1578
        * sysdep.h:
1579
        Add hfs_relinquish(), a system-independent alias for schedule().
1580
 
1581
        * hfs_fs.h, string.c:
1582
        Add hfs_strhash(), a simplistic case-independent hash function.
1583
 
1584
        * hfs_fs.h, inode.c:
1585
        Make hfs_iget() an inline function.
1586
 
1587
        * TODO:
1588
        Add a few goals and removed those that have been achieved.
1589
 
1590
        * Makefile:
1591
        Add ccache.c to list of source files.
1592
        Add rule for *.s files and include them in the 'clean' rule.
1593
 
1594
Wed Jul 17 17:22:45 1996  Paul H. Hargrove  
1595
 
1596
        * sysdep.h, trans.c, string.c, super.c, hfs_fs_i.h, hfs_fs_sb.h,
1597
          inode.c, hfs_btree.h, hfs_fs.h, file_dbl.c, file_nat.c, extent.c,
1598
          file.c, file_cap.c, dir_dbl.c, dir_nat.c, ccache.c, dir.c,
1599
          dir_cap.c, btree.c, catalog.c, bnode.c, brec.c, balloc.c:
1600
        Total rewrite of the inode-handling stuff to be centered around
1601
        a catalog entry cache (ccache.c).  This results not only in a far
1602
        more sensible way of doing things, but also removed many race
1603
        conditions. (The source and object code both got smaller too!)
1604
        Many small "undocumented features" were also fixed.
1605
        Replace HFS_CNAME with (struct hfs_cname).
1606
        rename() has been temporarily abandoned.
1607
 
1608
Thu Jul 11 01:14:38 1996  Paul H. Hargrove  
1609
 
1610
        * dir.c:
1611
        As written hfs_lookup_parent() had two overlapping read requests
1612
        in the catalog tree.  This could have led to deadlock.
1613
 
1614
Wed Jul 10 09:27:00 1996  Paul H. Hargrove  
1615
 
1616
        * catalog.c, hfs_fs.h, bdelete.c:
1617
        More work on getting rename() fleshed out.  Still not done.
1618
        Before I can finish it looks like I'll need to build a
1619
        mechanism for exclusive access to the catalog tree.  There
1620
        just doesn't seem to be any other way to get proper POSIX
1621
        semantics without a bunch of race conditions elsewhere.
1622
 
1623
        * hfs_fs.h, inode.c, dir_cap.c, dir_dbl.c, dir_nat.c, catalog.c:
1624
        More work on the still incomplete rename() code.
1625
        Merge hfs_cat_add_{dir,file}() into hfs_cat_create().
1626
        Add file-thread support to hfs_cat_{create,delete,rename}.
1627
 
1628
Tue Jul  9 09:43:15 1996  Paul H. Hargrove  
1629
 
1630
        * inode.c, dir_dbl.c, dir_nat.c, extent.c, dir_cap.c:
1631
        The indirect (struct hfs_file) was causing blocks not to be freed
1632
        when files where deleted, and an omission in hfs_put_inode() was
1633
        preventing the inode from getting freed.  Both are now fixed.
1634
 
1635
        * hfs_fs.h, dir_dbl.c, dir_nat.c, hfs_btree.h, catalog.c, dir_cap.c,
1636
          bdelete.c:
1637
        Made unlink() and rmdir() more race resistant and did some more
1638
        work on the still incomplete code for rename().
1639
 
1640
        * btree.c, bnode.c:
1641
        There was a serious race condition in the bnode cache, so
1642
        hfs_bnode_find() is now modeled after Linus's inode cache.
1643
 
1644
Mon Jul  8 10:33:38 1996  Paul H. Hargrove  
1645
 
1646
        * hfs_fs_i.h, inode.c, file_cap.c, file_dbl.c, file_nat.c, dir_dbl.c,
1647
          dir_nat.c, file.c, dir.c, dir_cap.c:
1648
        More changes to layout of (struct hfs_inode_info).
1649
 
1650
        * super.c, inode_cap.c, inode_dbl.c, inode_nat.c, inode.c, hfs_fs_i.h,
1651
          hfs_fs_sb.h, file_nat.c, hfs_fs.h, file.c, file_cap.c, file_dbl.c,
1652
          Makefile, catalog.c:
1653
        Implemented new layout for (struct hfs_inode_info) resulting in the
1654
        elimination of lots of duplicated code for hfs_*_write_inode(),
1655
        hfs_*_put_inode() and *_open() functions.
1656
        Merged inode_*.c files back into inode.c.
1657
        Not fully tested.
1658
 
1659
        * TODO:
1660
        Add a few more of my goals to the list.
1661
 
1662
        * README:
1663
        Documentation updates.
1664
 
1665
        * inode_nat.c, inode_cap.c, inode_dbl.c, inode.c, hfs_fs.h, hfs_fs_i.h,
1666
          file.c, file_cap.c, file_dbl.c, file_nat.c, catalog.c:
1667
        (struct hfs_file) and metadata are read when file is opened or
1668
        truncated and are released by iput().
1669
 
1670
Sun Jul  7 23:55:43 1996  Paul H. Hargrove  
1671
 
1672
        * inode_nat.c, inode_cap.c, inode_dbl.c, inode.c, dir_nat.c, hfs_fs.h,
1673
          hfs_fs_i.h, dir_cap.c, dir_dbl.c, catalog.c, dir.c:
1674
        (struct hfs_dir) is now inside (struct hfs_inode_info) once again.
1675
 
1676
        * inode_nat.c, super.c, inode_cap.c, inode_dbl.c, inode.c, file_nat.c,
1677
          hfs_btree.h, hfs_fs.h, extent.c, file_cap.c, file_dbl.c, dir_nat.c,
1678
          dir_cap.c, dir_dbl.c, btree.c, catalog.c, dir.c, bpath.c, brec.c,
1679
          bins_del.c, binsert.c, bnode.c, bfind.c, balloc.c, bdelete.c,
1680
          Makefile:
1681
        Remerged (struct hfs_bpath) and (struct hfs_brec), merging the
1682
        files bfind.c and bpath.c as a resurrected brec.c.
1683
 
1684
Sat Jul  6 21:47:05 1996  Paul H. Hargrove  
1685
 
1686
        * inode_cap.c, inode_dbl.c, inode_nat.c, inode.c, hfs_fs.h, hfs_fs_i.h,
1687
          file_cap.c, file_dbl.c, file_nat.c, hfs_btree.h, dir_nat.c, extent.c,
1688
          dir.c, dir_cap.c, dir_dbl.c, btree.c, catalog.c, bfind.c, bpath.c,
1689
          binsert.c, bdelete.c:
1690
        Renamed (struct hfs_brec_key) to (struct hfs_bkey).
1691
 
1692
Tue May 28 07:53:24 1996  Paul H. Hargrove  
1693
 
1694
        * inode_cap.c, catalog.c:
1695
        Spelling fixes.
1696
 
1697
        * inode_nat.c, super.c, inode_cap.c, inode_dbl.c, inode.c, hfs_fs.h,
1698
          hfs_fs_i.h, hfs_fs_sb.h, file.c, file_dbl.c, file_nat.c, dir_dbl.c,
1699
          dir_nat.c, extent.c, dir.c, dir_cap.c, catalog.c:
1700
        Structures got too big, so I had to add a layer of indirection
1701
        to (struct hfs_inode_info).
1702
        This means we must clear_inode() in inode_put().
1703
 
1704
Mon May 27 01:32:42 1996  Paul H. Hargrove  
1705
 
1706
        * catalog.c, file_cap.c:
1707
        Some sizeof() stuff now uses variable not type.
1708
 
1709
        * hfs_fs.h:
1710
        Make HFS_I() and HFS_SB() inline to gain type checking.
1711
 
1712
Sun May 26 13:34:17 1996  Paul H. Hargrove  
1713
 
1714
        * dir_nat.c:
1715
        Oops.  Had left some debugging printk()s in place.
1716
 
1717
        * file_dbl.c, file_nat.c, file_cap.c:
1718
        Cleaned up variable names for consistency.
1719
 
1720
        * hfs_fs_sb.h:
1721
        Add a couple 'const's to function typedefs.
1722
 
1723
        * hfs_fs.h:
1724
        Add and update function prototypes.
1725
        Cleaned up type names.
1726
        Fix debugging malloc code.
1727
        Add hfs_iget_by_name() as an inline function.
1728
 
1729
        * sysdep.h:
1730
        Remove extra semicolon from macro definitions.
1731
 
1732
        * super.c:
1733
        Use new hfs_iget_by_name() to get root inode.
1734
 
1735
        * extent.c:
1736
        Cleaned up some variable naming for consistency.
1737
 
1738
        * catalog.c:
1739
        Added (untested) code for hfs_cat_move_file().
1740
 
1741
        * catalog.c:
1742
        Fix one missed call to hfs_cat_build_key().
1743
        Make hfs_cat_add_{file,dir}() take a cat_entry as an argument.
1744
        Add hfs_cat_new_{file,dir}() to generate new cat_entry's.
1745
 
1746
        * dir_dbl.c, dir_nat.c, dir.c, dir_cap.c:
1747
        Cleaned up type and variable names.
1748
        Updated calls to hfs_cat_build_key() and NAMEOUT()
1749
        Use new hfs_iget_by_*() calls.
1750
 
1751
        * inode_cap.c, inode_dbl.c, inode_nat.c:
1752
        Cleaned up type and variable names.
1753
 
1754
        * inode.c:
1755
        Update calls to hfs_cat_build_key().
1756
        Cleaned up type and variable names.
1757
        Implemented a hierarchy of hfs_iget_by*() calls.
1758
 
1759
        * catalog.c:
1760
        Change hfs_cat_build_key() to take a HFS_CNAME as input.
1761
 
1762
        * btree.c:
1763
        Initialize lsize and psize fields of file.
1764
 
1765
        * trans.c:
1766
        Now passes type HFS_CNAME and has name/len in "normal" order.
1767
 
1768
Tue May 21 07:02:34 1996  Paul H. Hargrove  
1769
 
1770
        * bnode.c:
1771
        Attempt to read invalid bnode would have led to an infinite loop under
1772
        certain circumstances.  One way to cause this was with an invalid
1773
        partition table which points beyond the end of the device.
1774
 
1775
Sat May 11 12:38:42 1996  Paul H. Hargrove  
1776
 
1777
        * sysdep.h, sysdep.c, inode_dbl.c, inode_nat.c, super.c, inode_cap.c,
1778
          inode.c, hfs_fs.h, hfs_fs_i.h, hfs_fs_sb.h, file_dbl.c, file_nat.c,
1779
          hfs_btree.h, extent.c, file.c, file_cap.c, dir_nat.c, dir.c,
1780
          dir_cap.c, dir_dbl.c, btree.c, catalog.c, bitmap.c, bitops.c,
1781
          bnode.c, bfind.c, bins_del.c, binsert.c, balloc.c, bdelete.c:
1782
        Another big wave of portability-oriented changes.
1783
 
1784
Tue May  7 11:28:35 1996  Paul H. Hargrove  
1785
 
1786
        * super.c, sysdep.c, sysdep.h, inode_cap.c, inode_dbl.c, inode_nat.c,
1787
          hfs_fs_i.h, inode.c, file_nat.c, hfs_btree.h, hfs_fs.h, file.c,
1788
          file_cap.c, file_dbl.c, dir_nat.c, extent.c, dir_cap.c, dir_dbl.c,
1789
          btree.c, catalog.c, dir.c, bnode.c, bpath.c, binsert.c, bitmap.c,
1790
          bitops.c, bdelete.c, bfind.c, bins_del.c, Makefile, balloc.c:
1791
        Start a big move to abstract all the Linux-specific stuff
1792
        out of the lower levels.  Created sysdep.[ch] to hold it.
1793
 
1794
        * FAQ, TODO:
1795
        Bring some documentation up-to-date.
1796
 
1797
Fri May  3 20:15:29 1996  Paul H. Hargrove  
1798
 
1799
        * super.c, inode_dbl.c, inode_nat.c, inode.c, inode_cap.c, extent.c,
1800
          hfs_fs.h, hfs_fs_i.h, dir_dbl.c, dir_nat.c, catalog.c, dir.c,
1801
          dir_cap.c, bpath.c, btree.c, binsert.c, bnode.c:
1802
        "FID reform": 'fid' became 'cnid' (Catalog Node ID), and is now
1803
        a field in (struct hfs_file).  The new name is more consistent
1804
        with Apple's documentation.  The presence of 'cnid' in (struct
1805
        hfs_file) help move more of the code toward OS-independence.
1806
 
1807
        * inode_nat.c, super.c, trans.c, inode.c, inode_cap.c, inode_dbl.c,
1808
          hfs_fs.h, file_cap.c, file_dbl.c, file_nat.c, dir_nat.c, extent.c,
1809
          file.c, dir.c, dir_cap.c, dir_dbl.c, btree.c, catalog.c, bnode.c,
1810
          bpath.c, bins_del.c, binsert.c, bitmap.c, bitops.c, bdelete.c,
1811
          bfind.c, balloc.c:
1812
        A lot of changes in what headers are included and in what order.
1813
 
1814
Sat Apr 27 12:28:54 1996  Paul H. Hargrove  
1815
 
1816
        * FAQ:
1817
        Updated for current writability status.
1818
 
1819
        * .cvsignore:
1820
        Added ChangeLog.
1821
 
1822
        * file_dbl.c, file_nat.c, file_cap.c, file.c, dir_dbl.c, dir_nat.c,
1823
          dir_cap.c:
1824
        Added the default fsync() to all file_operations structures.
1825
 
1826
        * dir_nat.c, hfs_fs.h, dir.c, dir_cap.c, dir_dbl.c:
1827
        Add rmdir() for normal directories.
1828
 
1829
        * binsert.c:
1830
        I had messed up insertion so that is would sometime fail to
1831
        split the root, but its OK now.
1832
 
1833
        * dir.c:
1834
        hfs_do_unlink() decremented directory counts rather than file counts.
1835
 
1836
Wed Apr 24 13:20:08 1996  Paul H. Hargrove  
1837
 
1838
        * hfs_fs.h, bnode.c, hfs_btree.h:
1839
        Fixed a couple more type size assumptions.
1840
 
1841
        * hfs_fs.h, balloc.c, bitmap.c, bitops.c:
1842
        "Portable" bitmap handling was wrong for just about everything but
1843
        the i386 and the "inverse big-endian" bit ordering that I thought
1844
        the m68k port was using.  It seems the m68k port is now using standard
1845
        big-endian bit-numbering conventions.
1846
        This code is now correct for the standard big- and little-endian bit
1847
        orderings. (which should cover all Linux systems?)
1848
        Also no longer assumes sizeof(long) == 4, though that might still be
1849
        a problem in other parts of the code.
1850
 
1851
Tue Apr 23 19:19:27 1996  Paul H. Hargrove  
1852
 
1853
        * FAQ:
1854
        Bring uptodate for this snapshot.
1855
 
1856
        * Makefile:
1857
        Add FAQ to $(MISC)
1858
 
1859
        * README, TODO:
1860
        Documentation updates.
1861
 
1862
        * bdelete.c:
1863
        Spelling fixes.
1864
 
1865
        * dir_cap.c:
1866
        In unlink() don't force metadata into memory if not present.
1867
 
1868
        * bdelete.c:
1869
        Some function comments and some clean up.
1870
 
1871
        * bins_del.c:
1872
        Added missing function comment for hfs_bnode_update_key().
1873
 
1874
        * binsert.c, bitmap.c:
1875
        Spelling and grammar corrections to comments.
1876
 
1877
        * hfs_btree.h, hfs_fs.h, bins_del.c, binsert.c, Makefile, bdelete.c:
1878
        Clean up of hfs_bdelete(), splitting bins_del.c into three files:
1879
                bins_del.c, binsert.c and bdelete.c
1880
 
1881
        * bpath.c, bins_del.c:
1882
        hfs_bdelete() is now working "correctly", but needs some cleaning up.
1883
 
1884
Mon Apr 22 05:35:41 1996  Paul H. Hargrove  
1885
 
1886
        * hfs_fs.h, bpath.c, hfs_btree.h, bins_del.c, bnode.c, balloc.c,
1887
          bfind.c:
1888
        Rewrite bnode handling, heading toward a more write-behind approach.
1889
        Have done away with HFS_LOCK_BLIND.
1890
 
1891
        * inode_dbl.c, inode_nat.c, extent.c, hfs_fs_i.h, inode_cap.c:
1892
        Was trying to truncate resource fork of directories!
1893
 
1894
Sun Apr 21 08:15:43 1996  Paul H. Hargrove  
1895
 
1896
        * balloc.c:
1897
        Updated to use truncate() to grow full trees.
1898
 
1899
        * extent.c, hfs_fs.h, file.c, inode.c:
1900
        Added truncate() for normal files.
1901
 
1902
        * bins_del.c:
1903
        hfs_bdelete() fixes for handling removal of root.
1904
 
1905
        * inode_cap.c, inode_dbl.c, inode_nat.c:
1906
        Release storage for deleted files in hfs_*_put_inode().
1907
 
1908
        * bitmap.c:
1909
        Make len=0 valid for hfs_{set,clear}_vbm_bits().
1910
 
1911
        * super.c, inode.c, hfs_fs_i.h, hfs_fs_sb.h, btree.c, balloc.c:
1912
        Changed from clumpsize to clumpblks.
1913
 
1914
        * inode_nat.c, hfs_fs.h, inode_cap.c, inode_dbl.c, btree.c, extent.c,
1915
          balloc.c:
1916
        Some extent-related changes in preparation for truncate() support.
1917
 
1918
Sat Apr 20 10:59:13 1996  Paul H. Hargrove  
1919
 
1920
        * inode_nat.c, hfs_fs_i.h, inode.c, inode_cap.c, inode_dbl.c,
1921
          dir_nat.c, hfs_fs.h, dir.c, dir_cap.c, dir_dbl.c:
1922
        Removed dir.valence from hfs inode.
1923
        Added unlink(), but still need truncate() and some more support
1924
        in hfs_*_put_inode() to free the disk space used by deleted files.
1925
 
1926
        * bnode.c:
1927
        Check for NULL bnode in hfs_bnode_relse().
1928
 
1929
        * bins_del.c:
1930
        Fixed a byte-order problem in bdelete_nonempty().
1931
 
1932
        * hfs_fs.h, bnode.c, bpath.c, hfs_btree.h, balloc.c, bins_del.c:
1933
        First attempt at hfs_bdelete().
1934
 
1935
        * dir.c:
1936
        The Finder would display strange things if it couldn't set frView.
1937
        Therefore initialize frView field for new directories.
1938
 
1939
        * file_cap.c, file_dbl.c, file_nat.c, hfs_fs.h:
1940
        Define User/Finder info fields of catalog entry in more detail.
1941
 
1942
        * hfs_fs.h:
1943
        HFS_BFIND_DELETE should require exact match.
1944
 
1945
        * dir.c:
1946
        Set "record in use" bit of filFlags for new files.
1947
 
1948
        * inode.c:
1949
        Was doing the wrong thing with i_ctime.
1950
 
1951
        * dir_nat.c, dir_cap.c, dir_dbl.c:
1952
        Added some missing updates to the inode in hfs_*_{create,mkdir}().
1953
 
1954
Sun Apr 14 00:10:52 1996  Paul H. Hargrove  
1955
 
1956
        * hfs_fs.h, file_dbl.c, file_nat.c, file.c:
1957
        Work around the ever-changing type of f_reada.
1958
 
1959
Sat Apr 13 00:43:41 1996  Paul H. Hargrove  
1960
 
1961
        * bpath.c, bfind.c:
1962
        Spelling corrections in comments.
1963
 
1964
        * bins_del.c:
1965
        ifdef out shift_left() until it is actually used.
1966
 
1967
        * hfs_btree.h, hfs_fs.h, bins_del.c, bpath.c, bfind.c:
1968
        Cleaned up code related to 'flags' argument to hfs_bpath_find().
1969
 
1970
Fri Apr 12 23:30:01 1996  Paul H. Hargrove  
1971
 
1972
        * bpath.c:
1973
        Updated comments.
1974
        Rewrote hfs_bpath_init() and hfs_bpath_next().
1975
 
1976
        * hfs_btree.h:
1977
        Updated prototype for hfs_bpath_init().
1978
 
1979
        * bins_del.c:
1980
        Updated call to hfs_bpath_init().
1981
 
1982
        * inode.c, inode_cap.c, inode_dbl.c, inode_nat.c, extent.c, file_cap.c,
1983
          file_dbl.c, file_nat.c, dir_cap.c, dir_dbl.c, dir_nat.c, catalog.c,
1984
          dir.c:
1985
        Renamed hfs_brec_relse() to hfs_brelse().
1986
 
1987
        * hfs_fs.h, hfs_btree.h:
1988
        Updated prototypes to reflect new names in bpath.c
1989
 
1990
        * bins_del.c:
1991
        Updated calls to functions in bpath.c
1992
        Updated comments.
1993
 
1994
        * Makefile:
1995
        Renamed brec.c to bpath.c
1996
 
1997
        * bfind.c:
1998
        Updated calls to functions in bpath.c
1999
        Added hfs_brelse() which was previously hfs_brec_relse() in brec.c
2000
 
2001
        * bpath.c:
2002
        brec.c renamed to bpath.c
2003
        Functions renamed to reflect their current actions.
2004
        Comments are still out of date.
2005
        hfs_brec_relse() renamed to hfs_brelse() and moved to bfind.c
2006
 
2007
        * brec.c:
2008
        brec.c renamed to bpath.c
2009
 
2010
Wed Apr 10 07:20:28 1996  Paul H. Hargrove  
2011
 
2012
        * hfs_fs.h, extent.c, hfs_btree.h, brec.c, dir.c, bfind.c,
2013
          bins_del.c:
2014
        Backed-out changes to hfs_binsert() that added the ability to
2015
        return the new record, since it will probably not ever be needed.
2016
 
2017
        * extent.c:
2018
        Since 1.3.45 truncate() has locked the file, so there is no need
2019
        for all the things I've been doing to hfs_file_extend() & new_extent().
2020
        Those two functions have been cleaned up a bit (similar to older forms).
2021
 
2022
        * extent.c:
2023
        hfs_file_extend() now more "robust", but new_extent() is still
2024
        not fully "concurrency safe."
2025
 
2026
Tue Apr  9 09:01:18 1996  Paul H. Hargrove  
2027
 
2028
        * bins_del.c:
2029
        Made split() inline.
2030
 
2031
        * inode.c, dir_nat.c, hfs_fs.h, dir_cap.c:
2032
        Added hfs_itry() to get in-core inodes.
2033
 
2034
        * inode_dbl.c, inode_nat.c, hfs_fs.h, inode.c, inode_cap.c, file_dbl.c,
2035
          file_nat.c, hfs_btree.h, extent.c, file_cap.c, dir_cap.c, dir_dbl.c,
2036
          dir_nat.c, brec.c, catalog.c, dir.c, bins_del.c, bnode.c,
2037
          bfind.c:
2038
        Rewrite of all the (struct hfs_brec) stuff.
2039
 
2040
Mon Apr  8 21:50:01 1996  Paul H. Hargrove  
2041
 
2042
        * btree.c, extent.c, bnode.c:
2043
        Fixed format strings in a few debugging printk()'s.
2044
 
2045
        * brec.c, hfs_fs.h:
2046
        Removed hfs_brec_relse_one().
2047
 
2048
        * hfs_fs.h, bnode.c, brec.c, hfs_btree.h, bfind.c, bins_del.c, balloc.c:
2049
        (struct hfs_bnode_ref)s are now returned by value rather than reference
2050
        and they are in (struct hfs_brec) rather than pointed to.  Cuts down on
2051
        a lot of kmalloc() and kfree() traffic.
2052
 
2053
        * hfs_fs.h, dir.c, extent.c, bins_del.c:
2054
        Modified hfs_binsert() to be able to return the new record.
2055
 
2056
        * bins_del.c, hfs_btree.h:
2057
        Added shift_left(), still untested.
2058
 
2059
        * bins_del.c:
2060
        new_root() was missing its comment.
2061
 
2062
        * super.c, trans.c, hfs_fs_i.h, inode.c, inode_dbl.c, inode_nat.c,
2063
          file_nat.c, hfs_btree.h, hfs_fs.h, file.c, file_dbl.c, dir_dbl.c,
2064
          dir_nat.c, extent.c, dir.c, dir_cap.c, bitops.c, bnode.c, brec.c,
2065
          bfind.c, bins_del.c, bitmap.c, balloc.c:
2066
        Fixed lines over 80 characters and tabified files.
2067
 
2068
        * bins_del.c:
2069
        Fixed line(s) over 80 columns.
2070
 
2071
        * trans.c, inode_nat.c, string.c, super.c, inode.c, inode_cap.c,
2072
          inode_dbl.c, hfs_fs_i.h, hfs_fs_sb.h, hfs_btree.h, hfs_fs.h, file.c,
2073
          file_cap.c, file_dbl.c, file_nat.c, dir_dbl.c, extent.c, btree.c,
2074
          dir_cap.c, bitops.c, bnode.c, brec.c, bfind.c, bins_del.c, bitmap.c,
2075
          DOC, README, TODO, balloc.c, CHANGES:
2076
        About 150 spelling corrections.
2077
 
2078
Sun Apr  7 23:14:28 1996  Paul H. Hargrove  
2079
 
2080
        * dir_cap.c, dir_dbl.c, dir_nat.c, dir.c:
2081
        Cleaned-up check for special names in mkdir().
2082
 
2083
        * extent.c:
2084
        More verbose error message.
2085
 
2086
        * inode_dbl.c, inode_nat.c, hfs_fs_i.h, inode.c, inode_cap.c, dir.c,
2087
          hfs_fs.h:
2088
        Limit directories to 32767 entries, since Mac uses 16-bit integer.
2089
 
2090
Fri Apr  5 07:27:57 1996  Paul H. Hargrove  
2091
 
2092
        * FAQ:
2093
        Initial version.
2094
 
2095
        * dir_dbl.c, dir_nat.c, bins_del.c, dir.c, dir_cap.c:
2096
        Added missing function comments.
2097
 
2098
Wed Apr  3 06:38:36 1996  Paul H. Hargrove  
2099
 
2100
        * brec.c:
2101
        Cleaned-up code for brec->flags.
2102
 
2103
        * extent.c:
2104
        Added function comments.
2105
 
2106
        * bins_del.c:
2107
        Added function comments.
2108
        hfs_binsert() was incrementing record count even on failure.
2109
 
2110
Mon Apr  1 08:35:51 1996  Paul H. Hargrove  
2111
 
2112
        * extent.c:
2113
        Rewrote find_ext() and new_extent() for new hfs_btree_extend().
2114
        Moved hfs_btree_extend() to balloc.c
2115
        Fixed potential kernel OOPS in new_extent().
2116
 
2117
        * brec.c:
2118
        Fixed potential kernel OOPS in hfs_brec_get_root().
2119
        Removed hfs_brec_find_first().
2120
        Fixed return value of hfs_brec_find().
2121
 
2122
        * bins_del.c:
2123
        Updated call to hfs_btree_extend().
2124
 
2125
        * balloc.c:
2126
        Merged hfs_bnode_add() and hfs_btree_extend() into the later.
2127
        Commented init_mapnode().
2128
 
2129
        * bfind.c:
2130
        Removed hfs_bfind_first().
2131
 
2132
        * hfs_fs.h, hfs_btree.h:
2133
        Updated prototypes.
2134
 
2135
Sat Mar 30 22:56:47 1996  Paul H. Hargrove  
2136
 
2137
        * CHANGES, README, TODO:
2138
        Updated documentation in preparation for 0.6 release.
2139
 
2140
        * inode.c, hfs_fs.h:
2141
        Got rid of HFS_FAKE_EXEC in favor of noexec mount option.
2142
 
2143
        * inode.c, super.c, DOC, hfs_fs_sb.h:
2144
        Added "quiet" mount option, like the fat filesystem.
2145
 
2146
        * inode.c, dir_cap.c, dir_nat.c:
2147
        Pseudo-directories are read-only (at least for now).
2148
 
2149
        * hfs_fs.h, dir_dbl.c, dir_nat.c, dir.c, dir_cap.c:
2150
        mkdir() updated to check against reserved names, but the
2151
        AppleDouble scheme still has problems with names starting with '%'.
2152
 
2153
        * dir_dbl.c, dir_nat.c, hfs_fs.h, dir.c, dir_cap.c:
2154
        Added mkdir(). (It only took 2 tries to get it right!!)
2155
        Only works in "normal" directories and doesn't yet stop
2156
        one from creating dirs with the reserved names.
2157
 
2158
        * brec.c, extent.c, bins_del.c:
2159
        Now have a way to get an EEXIST back from hfs_binsert().
2160
 
2161
        * btree.c, inode.c, hfs_fs_i.h, file.c, bfind.c, bnode.c, balloc.c:
2162
        Added 'dev' field to struct hfs_file.
2163
 
2164
        * hfs_fs_i.h, inode.c, btree.c, extent.c, file.c, bnode.c, brec.c,
2165
          balloc.c:
2166
        Removed duplicated fields from struct hfs_file since
2167
        even B*-trees now have that information in the inode.
2168
 
2169
        * extent.c:
2170
        zero_blocks() neglected allocation block size in computing start.
2171
 
2172
Fri Mar 29 16:04:37 1996  Paul H. Hargrove  
2173
 
2174
        * super.c:
2175
        hfs_statfs(): f_files and f_ffree fields are now -1, which is
2176
        documented as the value for "undefined" fields in struct statfs.
2177
 
2178
        * trans.c, inode_nat.c, string.c, super.c, inode_dbl.c, inode_cap.c,
2179
          inode.c, file_nat.c, file_dbl.c, file_cap.c, file.c, dir_dbl.c,
2180
          extent.c, dir_cap.c, catalog.c, btree.c, brec.c, bnode.c, bitops.c,
2181
          bitmap.c, bins_del.c, balloc.c:
2182
        Stylistic editing: {} for all 'for', 'while' and 'if' blocks.
2183
        I hope I didn't screw-up anything.
2184
 
2185
        * hfs_fs.h, dir.c, dir_cap.c, dir_dbl.c, dir_nat.c:
2186
        Added creation of normal files to all three fork schemes!
2187
        Strange things may happen when trying to create "non-normal" files.
2188
 
2189
        * brec.c:
2190
        Cleaned up some debugging code.
2191
 
2192
        * hfs_fs_i.h:
2193
        File and directory counts could have overflown 16-bit integer.
2194
 
2195
        * hfs_btree.h:
2196
        Added HFS_BREC_RIGHT to help fix insertion problem.
2197
 
2198
        * extent.c:
2199
        Various fixes to hfs_{file,btree}_extend().
2200
 
2201
        * catalog.c:
2202
        Made hfs_build_cat_key() more "correct".
2203
 
2204
        * btree.c:
2205
        Added and fixed debugging code.
2206
 
2207
        * brec.c:
2208
        Fixed overflow detection.
2209
        Added some debugging code.
2210
 
2211
        * bnode.c:
2212
        Dirtied some buffers in places that might have been missed.
2213
        Fixed some debugging code that had broken.
2214
 
2215
        * bitops.c:
2216
        hfs_count_free_bits() was running off end of bitmap.
2217
 
2218
        * bins_del.c:
2219
        Fixed various bugs, mostly related to variable-length keys.
2220
 
2221
        * balloc.c:
2222
        Had forgotten to set a bit in new mapnodes.
2223
        Node counts were overflowing 16-bit integers.
2224
 
2225
        * bitmap.c:
2226
        Oops! clear/set did opposite operation on full words.
2227
 
2228
Wed Mar 27 10:59:07 1996  Paul H. Hargrove  
2229
 
2230
        * hfs_fs_i.h:
2231
        Updated struct hfs_extent for concurrent access.
2232
        Also caused a slight modification to struct hfs_file.
2233
 
2234
        * hfs_fs.h, hfs_btree.h:
2235
        Added/updated prototypes.
2236
 
2237
        * balloc.c:
2238
        hfs_bnode_alloc() finished but still untested.
2239
 
2240
        * bins_del.c:
2241
        Fixed up deadlock avoidance in hfs_binsert() again.
2242
        Perhaps I even got it right this time.
2243
 
2244
        * extent.c:
2245
        hfs_file_extend() now safe under concurrent operations?
2246
 
2247
        * file.c:
2248
        hfs_getblk() now safe under concurrent operations?
2249
 
2250
Tue Mar 26 23:26:35 1996  Paul H. Hargrove  
2251
 
2252
        * btree.c:
2253
        Added call to hfs_extent_trim() to fix memory leak.
2254
 
2255
        * extent.c:
2256
        Oops, had left a "#define static" in from debugging.
2257
 
2258
        * bins_del.c:
2259
        hfs_binsert() rewritten to avoid deadlock when extending
2260
        the extents B*-tree.
2261
 
2262
        * btree.c:
2263
        Moved hfs_btree_extend() to extent.c
2264
 
2265
        * inode_nat.c, inode_cap.c, inode_dbl.c:
2266
        hfs_*_put_inode() rewritten to call hfs_extent_trim().
2267
 
2268
        * extent.c:
2269
        Big rewrite for new struct hfs_extent:
2270
                Now keep linked list of extents.
2271
                Cache is now a pointer to a list element.
2272
                Now have 'end' field to aid decode_extent().
2273
        New functions:
2274
                hfs_extent_trim(): frees linked list.
2275
                hfs_btree_extend(): for extending B*-trees.
2276
        Improved debugging output.
2277
 
2278
        * balloc.c:
2279
        Added hfs_bnode_add() (incomplete and uncommented).
2280
 
2281
        * btree.c:
2282
        Moved some work from hfs_btree_extend() to hfs_bnode_add().
2283
 
2284
        * bfind.c:
2285
        Added hfs_bfind_first() as wrapper for hfs_brec_find_first().
2286
 
2287
        * brec.c:
2288
        Added hfs_brec_find_first() to search first leaf node.
2289
 
2290
        * bins_del.c:
2291
        Added error returns to hfs_binsert() and binsert().
2292
 
2293
        * bins_del.c:
2294
        Check to see that we really need ancestors before starting.
2295
        Check that hfs_btree_alloc() gave us enough nodes.
2296
        binsert() uses info precomputed by hfs_binsert().
2297
 
2298
Mon Mar 25 11:33:53 1996  Paul H. Hargrove  
2299
 
2300
        * bnode.c:
2301
        Collected together the error returns in hfs_bnode_lock().
2302
 
2303
        * Makefile:
2304
        Added ChangeLog to $(MISC).
2305
 
2306
Wed Mar 20 19:41:45 1996  Paul H. Hargrove  
2307
 
2308
        * super.c, hfs_fs.h, file.c, dir_dbl.c, dir_nat.c, dir.c, dir_cap.c:
2309
        Removed support for kernels older than about 1.3.70
2310
        Most of that support had been broken recently anyway.
2311
 
2312
        * super.c:
2313
        Fixed so DEBUG_MEM works w/o DEBUG_ALL.
2314
        Updated call to hfs_btree_init().
2315
 
2316
        * hfs_fs.h:
2317
        Updated/added prototypes.
2318
 
2319
        * hfs_btree.h:
2320
        HFS_BFIND_CHAIN removed.
2321
        struct hfs_brec gets new 'flags' field with bits:
2322
                HFS_BREC_{FIRST,OVERFLOW,UNDERFLOW,UNINITIALIZED}
2323
        Removed bitmap size constants.
2324
        Changes to struct hfs_btree:
2325
                'file' and 'cache' now structs rather than pointers.
2326
                Added 'reserved' field (used during insertion).
2327
                Added pointers to size and extent in MDB.
2328
 
2329
        * file.c:
2330
        Made hfs_getblk() public.
2331
        Removed (fil->inode == NULL) special cases.
2332
 
2333
        * extent.c:
2334
        {find,update}_ext() are no longer inline.
2335
        new_extent() fails when called for the extents tree;
2336
                previously it would hanging calling hfs_binsert().
2337
        extend_file():
2338
                renamed to hfs_file_extend() and made public.
2339
                fixed to work for B*-trees.
2340
                zeros-out blocks as they are allocated.
2341
                fixed bugs for (allocation block) != (physical block).
2342
 
2343
        * btree.c:
2344
        hfs_btree_{init,free}() modified for changes to struct:
2345
                'file' and 'cache' moved back into structure
2346
                file.inode initialized to reduce special cases
2347
        hfs_btree_init() gets pointer to size in MDB instead of size.
2348
        Added hfs_btree_extend() (incomplete and uncommented).
2349
 
2350
        * bnode.c:
2351
        hfs_bnode_{alloc,free}() moved to separate file.
2352
        Removed 'const' from some function arguments
2353
                due to change in struct hfs_btree.
2354
        hfs_bnode_lock(): added WRITE/RESRV->READ transition.
2355
 
2356
        * brec.c:
2357
        hfs_brec_get_{root,child}() now take a 'keep_mask' argument
2358
                indicating when to keep ancestor nodes, and store
2359
                information about why ancestors were kept.
2360
        HFS_BFIND_CHAIN eliminated in favor of HFS_BFIND_{INSERT,DELETE}
2361
                which are now implemented using 'keep_mask'.
2362
        Added hfs_brec_relse_one() that doesn't release ancestors.
2363
 
2364
        * bins_del.c:
2365
        Lots of rewrites to cleanup insertion.
2366
        Now tries to extend tree before insertion starts.
2367
        binsert() iterative rather than recursive.
2368
        No point in keeping track as it is still not "stable".
2369
 
2370
        * balloc.c:
2371
        New file: started with hfs_bnode_{free,alloc}()
2372
        Added hfs_bnode_init() to initialize a newly allocated bnode.
2373
        hfs_bnode_free():
2374
                Renamed hfs_bnode_bitop().
2375
                Can set or clear a specified bit.
2376
                Gets bitmap sizes from nodes directly.
2377
        hfs_bnode_alloc():
2378
                Returns actual node, calling hfs_bnode_init().
2379
                Gets bitmap sizes from nodes directly.
2380
 
2381
        * bfind.c:
2382
        Removed obsolete comment from hfs_bsucc()
2383
        Removed 'const' from tree arg of hfs_bfind()
2384
                due to changes in struct hfs_btree.
2385
 
2386
        * Makefile:
2387
        Added new file: balloc.c
2388
 
2389
Sat Mar  9 22:03:53 1996  Paul H. Hargrove  
2390
 
2391
        * Start of detailed CVS logging.
2392
 
2393
Mar 09, 1996: snapshot-09Mar96 hargrove@sccm.stanford.edu (Paul H. Hargrove)
2394
        NOT AN OFFICIAL RELEASE
2395
        Fixed up debugging code that was broken by split of btree.c
2396
        Added debugging kmalloc/kfree
2397
        Fixed memory leak in hfs_bnode_relse()
2398
 
2399
Mar 08, 1996: snapshot-08Mar96 hargrove@sccm.stanford.edu (Paul H. Hargrove)
2400
        NOT AN OFFICIAL RELEASE
2401
        now reset blocksize on device when done.
2402
        hfs_binsert done (except for the full tree case).
2403
        btree.c split up into manageable pieces (need to sort out hfs_btree.h)
2404
 
2405
Feb 26, 1996: snapshot-26Feb96 hargrove@sccm.stanford.edu (Paul H. Hargrove)
2406
        NOT AN OFFICIAL RELEASE
2407
        Some writability.
2408
        Bug with multiple opens of meta data fixed.
2409
        Netatalk support no longer considered experimental.
2410
 
2411
Virtually everything has changed, so I've lost track here.
2412
 
2413
Nov 16, 1995: snapshot-16Nov95 hargrove@sccm.stanford.edu (Paul H. Hargrove)
2414
        NOT AN OFFICIAL RELEASE
2415
        Still more comments.
2416
        btree.c back to 80 columns.  will do same to other files soon.
2417
        Starting with btree.c have begun to put file contents into some
2418
                sort of standard order.
2419
        Moved metadata reading to VFS open() routine and now free it in
2420
                the VFS release() routine.  Much cleaner than the old way.
2421
        Unified hfs_iget by shifting scheme-dependent code into a function
2422
                pointer in the superblock.  This could/should be shifted to
2423
                a VFS read_inode() routine if that can be done cleanly.
2424
        Probably lots of other changes; I've lost track.
2425
 
2426
Nov 05, 1995: version 0.5.3 hargrove@sccm.stanford.edu (Paul H. Hargrove)
2427
        NOT AN OFFICIAL RELEASE
2428
        1.2.x compatibility removed
2429
        Added lots of comments to btree.c and cleanup some code.  The result
2430
                is that the source file doubled in size while the object
2431
                file dropped in size by 20%.
2432
        Added some comments to super.c and dir.c as well.
2433
        Cleaned up some stuff in dir.c adding some additional error checking
2434
                and moving closer to using a unified hfs_iget by migrating
2435
                common code into lookup_parent().
2436
        Changed btree.c to use a separate bnode cache per filesystem.
2437
        Renamed a bunch of the bnode functions in btree.c
2438
 
2439
Jun 29, 1995: version 0.5.2 hargrove@sccm.stanford.edu (Paul H. Hargrove)
2440
        BUG FIX and 1.3.x-compatibility release.
2441
        Will compile under 1.2.x or 1.3.x by changing one line in Makefile.
2442
        Started adding magic numbers to structures for "safety".
2443
        Don't strip internal symbols when linking or loading, as this made
2444
                good bug reports rather difficult.
2445
        Fixed a bug that could cause the fs to lock-up after trying to open
2446
                a non-existent file.
2447
        Fixed a bug that allowed files to appear truncated, when in fact it
2448
                is still not possible to truncate a file.
2449
        Added more/better comments to header files.
2450
        Deal with volume and b-tree bitmaps in preparation for writing.
2451
        Fixed readdir() to deal properly with the case where the directory
2452
                changes while writing to user-space. (which can't yet
2453
                actually happen, until directories are writable).
2454
 
2455
Jun 23, 1995: version 0.5.1 hargrove@sccm.stanford.edu (Paul H. Hargrove)
2456
        BUG FIX RELEASE
2457
        Removed two debugging messages that didn't belong.
2458
        Fixed a typo that prevented modified inodes from being written to disk.
2459
        Added a missing line which prevented rmmod'ing sometimes.
2460
        Added a missing line which caused errors when modifying .finderinfo or
2461
                .resource under the CAP system.
2462
        Added a notify_change() to keep mode bits sensible, and to cause
2463
                changes to an inode to affect the data fork and resource fork
2464
                of a file together.
2465
 
2466
Jun 22, 1995: version 0.5 hargrove@sccm.stanford.edu (Paul H. Hargrove)
2467
        Fixed a bug that was giving wrong values for i_blocks
2468
        Partly writable (can only 'touch' existing files, so far)
2469
        Removed case= mount option.  It will be back eventually.
2470
        Can now deal with CDROMs (and hard disks?), many thanks to
2471
                Holger Schemel for this work.
2472
        Latin-1 filename conversion also due to Holger Schemel.
2473
        Rewritten btree operations.
2474
 
2475
Feb 28, 1995: version 0.4 hargrove@sccm.stanford.edu (Paul H. Hargrove)
2476
        Requires Linux >= 1.1.94: depends on changes made to asm/byteorder.h
2477
        Now using string comparison code donated by ARDI (see string.c)
2478
        Code reorganized to use data structures more like ARDI's.
2479
        More code reorganization to abstract the btree operations.
2480
        Added the fork= mount option.
2481
        Added AppleDouble support.  Executor, from ARDI, can now run programs
2482
                from HFS filesystems mounted with the HFS module.
2483
 
2484
Jan 28, 1995: version 0.3 hargrove@sccm.stanford.edu (Paul H. Hargrove)
2485
        Major code reorganization.
2486
        Known for certain to work ONLY on floppies.
2487
        Started caching extents, so got faster on long file reads.
2488
        Now compiles separate from kernel tree.
2489
        Supports 5 filename conversion methods.
2490
        Supports forks, using the method from CAP.
2491
        All external symbols now start with HFS_ or hfs_
2492
 
2493
Jan 12, 1995: version 0.2 hargrove@sccm.stanford.edu (Paul H. Hargrove)
2494
        Should now work on all HFS volumes, but still only tested on floppies.
2495
        Got smaller and faster with some code reorganization.
2496
        Since Linus moved htons() and friends to an asm file, should now be
2497
         truly endian-independent, but still only tested on Intel machines.
2498
        Requires Linux >= 1.1.77, since Linus moved htons().
2499
 
2500
Jan 05, 1995: version 0.1 hargrove@sccm.stanford.edu (Paul H. Hargrove)
2501
        First release.
2502
        1.44Mb floppies only
2503
        no resource forks
2504
        trivial name mangling only
2505
        read only
2506
        for Linux >= 1.1.75

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.