Whamcloud - gitweb
ChangeLog, jfs_user.h, mkjournal.c:
[tools/e2fsprogs.git] / lib / ext2fs / ChangeLog
1 2000-12-09    <tytso@snap.thunk.org>
2
3         * mkjournal.c (init_journal_superblock): Sync Stephen's changes
4                 which creates a V2 superblock instead of a V1 superblock.
5
6 2000-11-21    <tytso@snap.thunk.org>
7
8         * test_io.c (test_write_blk, test_write_byte): Fix typos pointed
9                 out by Andreas Dilger.
10
11 2000-11-05    <tytso@snap.thunk.org>
12
13         * imager.c (ext2fs_image_{inode,super,bitmap}_{read,write},
14                 ext2_fs.h, Makefile.in: New file that has routines that
15                 save ext2fs metadata to a file.
16
17         * ext2_err.et.in (EXT2_ET_MAGIC_E2IMAGE): New error code assigned.
18
19         * e2image.h: New file which defines the file format for the ext2
20                 image file.  (Saved copy of ext2 metadata to a file as a
21                 saving throw against worst-case damage.)
22
23 2000-11-01    <tytso@snap.thunk.org>
24
25         * inode.c (ext2fs_flush_icache): Add new function
26                 ext2fs_flush_icache() which flushes the internal inode
27                 cache.  Applications which modify the inode table blocks
28                 directly must call this function.
29
30 2000-10-26    <tytso@snap.thunk.org>
31
32         * mkjournal.c: Add #include of netinet/in.h, since Solaris
33                 requires it for ntohl().
34
35         * ext2_io.h (io_channel_write_byte): Add new interface to allow
36                 callers to write specific byte ranges.  This is an
37                 optional interface, which not all IO channels may
38                 implement.
39
40         * unix_io.c (unix_write_byte):
41         * test_io.c (test_write_byte): Add implementation of the
42                 write_byte function.
43
44         * closefs.c (write_primary_superblock, ext2fs_flush): Add a new
45                 function which writes the primary superblock.  If the IO
46                 channel supports writing raw bytes directly, only fields
47                 which were modified are written to the disk.  This makes
48                 it safe(r) to use utilities like tune2fs on a mounted
49                 filesystem. 
50
51         * freefs.c (ext2fs_free): Free the original superblock if it is
52                 available. 
53
54         * openfs.c (ext2fs_open): Store a copy of the original superblock
55                 when opening it.
56
57         * ext2fs.h: Add a field to store the original superblock in the
58                 ext2 context structure.
59
60 2000-10-24    <tytso@snap.thunk.org>
61
62         * llseek.c: Add #ifdef's for IA64 (it's a 64-bit platform, so we
63                 don't need to use llseek).
64
65 2000-10-24    <tytso@valinux.com>
66
67         * Makefile.in, ext2fs.h, jfs_dat.h, mkjournal.c: Add functions for
68                 creating an ext3 journal on a filesystem.
69
70 2000-08-21    <tytso@valinux.com>
71
72         * ext2_err.et.in (EXT2_JOURNAL_NOT_BLOCK): Add new error code.
73
74 2000-08-22    <tytso@valinux.com>
75
76         * unix_io.c: Make massive changes to support a multiple block
77                 writethrough cacheing.
78
79         * ext2_io.h: Added flags field to the io_channel structure.
80
81 2000-08-19    <tytso@valinux.com>
82
83         * finddev.c, ext2fs.h, Makefile.in: Add new file, finddev.c, which
84                 provides the function ext2fs_find_block_device().  This
85                 function returns the pathname to a block device, given its
86                 device number.
87
88 2000-07-13    <tytso@valinux.com>
89
90         * Release of E2fsprogs 1.19
91
92 2000-07-07  Theodore Ts'o  <tytso@valinux.com>
93
94         * ext2fs.h (EXT2_LIB_FEATURE_INCOMPAT_SUPP): Add
95                 EXT3_FEATURE_INCOMPAT_RECOVER (aka needs_recovery) to the
96                 list of filesystem flags supported by the library.
97
98 2000-07-04  Theodore Ts'o  <tytso@valinux.com>
99
100         * ext2fs.h: Update to include latest journalling additions to the
101                 superblock.
102
103         * dll/jump.funcs: Add new jumptable entries for
104                 ext2fs_write_bb_FILE, ext2fs_read_bb_FILE2, and
105                 ext2fs_badblocks_equal.
106
107         * tst_badblocks.c: Update test program to test
108                 ext2fs_read_bb_FILE2 and ext2fs_write_FILE.
109
110         * write_bb_file.c (ext2fs_write_bb_FILE): New function which
111                 writes out bad blocks list to a file.
112
113         * read_bb_file.c (ext2fs_read_bb_FILE2): Add new function which
114                 changes the callback function to take two additional
115                 arguments; a private blind pointer supplied by the caller,
116                 and pointer to a char * containing a pointer to the
117                 invalid string.
118
119         * badblocks.c (ext2fs_badblocks_equal): Add new function which
120                 returns true if two badblocks list are equal.
121
122         * Makefile.in: Remove explicit link of -lc in the shared library.
123                 (It shouldn't be necessary, and is harmful in some cases).
124
125 2000-06-10  Theodore Ts'o  <tytso@valinux.com>
126
127         * getsize.c (main): Add debugging code under #ifdef DEBUG
128
129 2000-05-27  Theodore Ts'o  <tytso@valinux.com>
130
131         * mkdir.c (ext2fs_mkdir): Read the parent directory's inode
132                 earlier, so that if there's an error reading it, we can
133                 more cleanly back out of the operation.
134
135 2000-05-25    <tytso@snap.thunk.org>
136
137         * getsize.c (ext2fs_get_device_size): Use open64() instead of
138                 open() if it exists.  Under linux, manually define the
139                 ioctl for BLKGETSIZE if it isn't already defined and it's
140                 safe to do so.
141
142         * unix_io.c (unix_open): Use open64() instead of open() if it
143                 exists. 
144
145         * llseek.c: Simplify header includes of unistd.h.  If lseek64 is
146                 available (and prototypes are defined) use it in
147                 preference to llseek.
148
149         * Makefile: Add hack dependency rule so that parallel makes work
150                 correctly. 
151
152 2000-05-18  Theodore Ts'o  <tytso@valinux.com>
153
154         * ext2fs.h: Add appropriate ifdef's to support C++ compilation.
155
156 2000-04-03  Theodore Ts'o  <tytso@valinux.com>
157
158         * block.c: Readibility tweak in conditionals involving
159                 ctx->fs->flags.
160
161         * ext2fs.h: Use AUTOCONF SIZEOF_* macros if available to determine
162                 how to define __s64 and __u64.  Turn off "compression is
163                 experimental" warning if the cpp macro
164                 I_KNOW_THAT_COMPRESSION_IS_EXPERIMENTAL is defined.
165
166 2000-02-11    <tytso@snap.thunk.org>
167
168         * ext2fs.h: Define EXT2FS_COMPRESSED_BLKADDR and HOLE_BLKADDR.
169                 Conditionally include Compression as a supported type if
170                 ENABLE_COMPRESSION (via --enable-compression) is turned on.
171
172         * swapfs.c (ext2fs_swap_super): Swap the compression usage bitmap.
173
174 2000-02-08    <tytso@snap.thunk.org>
175
176         * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap,
177                 ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
178                 ext2fs_mark_inode_bitmap, ext2fs_unmark_inode_bitmap):
179                 Change to return the previous state of the bit that is
180                 being marked or unmarked.  For speed optimization.
181         
182 2000-02-02  Theodore Ts'o  <tytso@valinux.com>
183
184         * getsize.c, ismounted.c: Remove unneeded include of linux/fs.h
185
186         * swapfs.c: Remove #ifdef HAVE_EXT2_INODE_VERSION since it's not
187                 needed any more; we know it will always be i_generation.
188                 Add support for swapping the high bits of the uid and gid.
189
190 1999-11-19    <tytso@valinux.com>
191
192         * mkdir.c (ext2fs_mkdir): Only update the parent's inode link
193                 counts if the link was successful.  Patch suggested by
194                 jeremy@goop.org.
195
196         * Makefile.in (distclean): Remove TAGS and Makefile.in.old from
197                 the source directory.
198
199 1999-11-10    <tytso@valinux.com>
200
201         * Release of E2fsprogs 1.18
202
203 1999-11-08    <tytso@valinux.com>
204
205         * Makefile.in (tst_badblocks): Add freefs.o to the object list,
206                 since ext2fs_badblocks_list_free was moved to freefs.c.
207
208         * tst_badblocks.c: Use the newer badblocks API names.  Add
209                 duplicate blocks to the test inputs to test dealing with
210                 adding blocks which are already in the badblocks list.
211
212         * badblocks.c (ext2fs_badblocks_list_add): If appending to the end
213                 of the list, use a shortcut O(1) operations instead of an
214                 O(n) operation.  (Idea suggested by David Beattie.)
215
216         * freefs.c (ext2fs_free): Use ext2fs_badblocks_list_free() instead
217                 of badblocks_list_free(), to save a procedure call.
218
219 1999-10-26    <tytso@valinux.com>
220
221         * Release of E2fsprogs 1.17
222
223 1999-10-26    <tytso@valinux.com>
224
225         * ext2fs.h: Add kludge to deal with the fact that egcs cpp doesn't
226                 seem to handle ~0UL the same way as they used to.
227
228 1999-10-25    <tytso@valinux.com>
229
230         * nt_io.c (_OpenNtName): Open the device using
231                 FILE_SYNCHRONOUS_IO_NONALERT instead of
232                 FILE_SYNCHRONOUS_IO_ALERT
233                 (nt_open): At the end of the device open routine, unlock 
234                 the drive but do not dismount it.
235
236         * initialize.c (CREATOR_OS): Use __GNU__ instead of __gnu__ to
237                 detect the Hurd OS.
238
239 1999-10-22    <tytso@valinux.com>
240
241         * Release of E2fsprogs 1.16
242
243 1999-10-22    <tytso@valinux.com>
244
245         * mkdir.c (ext2fs_mkdir): Pass EXT2_FT_DIR flag to ext2fs_link().
246
247         * link.c (ext2fs_link): This call now uses the low three bits of
248                 the flags parameter to pass the directory filetype
249                 information; it will set the directory entry FILETYPE
250                 information if the filesystem supports it.
251
252         * newdir.c (ext2fs_new_dir_block): If the FILETYPE superblock
253                 option is set, then create the '.' and '..' entries with
254                 the filetype set to EXT2_FT_DIR.
255
256 1999-09-24    <tytso@valinux.com>
257
258         * nt_io.c: New file which supports I/O under Windows NT.
259
260 1999-09-07    <tytso@valinux.com>
261
262         * ext2fs.h: Add new fields for journalling and define new
263                 feature bits used by newer filesystems: IMAGIC_INODES,
264                 HAS_JOURNAL, RECOVER.
265
266         * expanddir.c (ext2fs_expand_dir, expand_dir_proc): Change where
267                 we update the inode block count and size files so that the
268                 block count field is updated correctly when we create an
269                 indirect block.
270
271 1999-07-18  Theodore Ts'o  <tytso@valinux.com>
272
273         * Release of E2fsprogs 1.15
274
275 1999-06-23    <tytso@valinux.com>
276
277         * swapfs.c (ext2fs_swap_inode): Add compatibility for Linux 2.3
278                 kernels that use i_generation instead of i_version.  Patch
279                 supplied by Jon Bright <sircus@sircus.demon.co.uk>.
280
281 1999-06-21    <tytso@valinux.com>
282
283         * dir_iterate.c (ext2fs_process_dir_block): Check for corrupted
284                 directory entry before calling the callback function.
285                 This should prevent some core dumps of insufficiently
286                 paranoid callback functions.
287
288 1999-05-29    <tytso@rsts-11.mit.edu>
289
290         * ext2fs.h: Add feature definition for AFS IMAGIC inodes.
291
292         * fileio.c (ext2fs_file_open): Remove obsolete comment stating
293                 that we don't handle writing yet (we do).  Fixed bug where
294                 we weren't allocating a big enough buffer for ext2_bmap.
295
296 1999-05-03    <tytso@rsts-11.mit.edu>
297
298         * openfs.c (ext2fs_open): Check to make sure that the number of
299                 blocks per group is not zero --- if so, it must be a bad
300                 superblock!
301
302 1999-01-09  Theodore Ts'o  <tytso@rsts-11.mit.edu>
303
304         * Release of E2fsprogs 1.14
305
306 1999-01-07  Theodore Ts'o  <tytso@rsts-11.mit.edu>
307
308         * inode.c (ext2fs_read_inode, ext2fs_write_inode): Check to see if
309                 the inode number is zero; if it's zero, return
310                 EXT2_ET_BAD_INODE_NUM.
311
312 1998-12-30  Theodore Ts'o  <tytso@rsts-11.mit.edu>
313
314         * initialize.c (ext2fs_initialize): Use EXT2_FIRST_INODE instead
315                 of EXT2_FIRST_INO to ensure compatibility with Linux 1.2
316                 header files.
317
318 Mon Jan  4 02:32:09 1999  Theodore Y. Ts'o  <tytso@mit.edu>
319
320         * llseek.c (ext2fs_llseek): Change ext2fs_llseek() in the
321                 non-Linux case to use EINVAL by default, unless it isn't
322                 defined, in which case we use EXT2_ET_INVALID_ARGUMENT
323                 instead.
324
325 1998-12-15  Theodore Ts'o  <tytso@rsts-11.mit.edu>
326
327         * Release of E2fsprogs 1.13
328
329 1998-12-03  Theodore Ts'o  <tytso@rsts-11.mit.edu>
330
331         * Makefile.in: Updated dependencies.
332
333 1998-09-22  Theodore Ts'o  <tytso@rsts-11.mit.edu>
334
335         * initialize.c (ext2fs_initialize): Make sure that we allocate
336                 enough inodes so that we can make a valid filesystem.
337
338 1998-09-02  Theodore Ts'o  <tytso@rsts-11.mit.edu>
339
340         * rw_bitmaps.c: Fixed signed/unsigned warnings.
341
342         * fileio.c (ext2fs_file_set_size): Remove unneeded extern from the
343                 function declaration.
344
345         * dblist.c (make_dblist): Add safety check in case the dblist
346                 pointer passed in is null (in which case, assign it to
347                 fs->dblist).  Fixed some signed/unsigned warnings.
348
349         * bmap.c: Make addr_per_block be of type blk_t to avoid
350                 signed/unsigned warnings.
351
352         * namei.c (ext2fs_follow_link): Remove uneeded extern from the
353                 function declaration.
354
355         * get_pathname.c (get_pathname_proc): Use return value from
356                 ext2fs_get_mem, instead of checking if &gp->name is
357                 NULL.
358
359         * dir_iterate.c (ext2fs_process_dir_block): 
360         * dblist_dir.c (ext2fs_dblist_dir_iterate): Remove uneeded extern
361                 from the function declaration.
362
363         * block.c (ext2fs_block_iterate2): If the read_inode call fails,
364                 return the error directly instead of jumping to the
365                 cleanup routine, since we don't need to do any cleanup.
366
367         * alloc_table.c (ext2fs_allocate_group_table): Make this
368                 function take a dgrp_t for its group argument.
369
370         * ext2fs.h: Make dgrp_t an __u32 type, and make
371                 fs->desc_group_count be of type dgrp_t.
372
373 1998-07-27  Theodore Ts'o  <tytso@rsts-11.mit.edu>
374
375         * badblocks.c (ext2fs_badblocks_list_add): Use a bigger increment
376                 than 10 blocks when we need to expand the size of the
377                 badblocks list.
378
379 1998-07-09  Theodore Ts'o  <tytso@rsts-11.mit.edu>
380
381         * Release of E2fsprogs 1.12
382
383 1998-06-30  Theodore Ts'o  <tytso@rsts-11.mit.edu>
384
385         * closefs.c (ext2fs_flush): Update the s_block_group_nr field as
386                 appropriate for all of the block group copies, so that
387                 it's clear where the beginning of the filesystem is on the
388                 disk.  (For when the partition table gets scrod.)
389
390         * ext2fs.h: Change the name of the feature from
391                 EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE to
392                 EXT2_FEATURE_INCOMPAT_FILESIZE (to match with the kernel).
393
394 1998-06-18  Theodore Ts'o  <tytso@rsts-11.mit.edu>
395
396         * inode.c (get_next_blockgroup): Fix bug where if
397                 get_next_blockgroup() is called early because of a missing
398                 inode table in a block group, the current_inode counter
399                 wasn't incremented correctly.
400
401 1998-06-16  Theodore Ts'o  <tytso@rsts-11.mit.edu>
402
403         * read_bb.c (ext2fs_read_bb_inode): Make function more robust
404                 against a completely trashed bad block inode.
405
406 1998-06-10  Theodore Ts'o  <tytso@rsts-11.mit.edu>
407
408         * alloc_tables.c (ext2fs_allocate_group_table): Fix bug so that if
409                 the stride length hits a bad value, we retry the block
410                 allocation starting at the beginning of the block group.
411
412         * ext2fs.h, bb_inode.c, block.c, bmove.c, dir_iterate.c,
413                 expanddir.c, ext2fsP.h, read_bb.c: Change blkcnt_t to be
414                 e2_blkcnt_t to avoid collision with LFS API.
415
416 1998-05-01  Theodore Ts'o  <tytso@rsts-11.mit.edu>
417
418         * initialize.c (ext2fs_initialize): Initialize s_inodes_count in a
419                 way that avoids overflows on disk sizes greater than 4GB.
420
421 1998-04-28  Theodore Ts'o  <tytso@rsts-11.mit.edu>
422
423         * ext2fs.h: Define EXT2_QSORT_TYPE appropriately for the
424                 return type for comparison functions for qsort.
425
426         * dblist.c (dir_block_cmp): Use EXT2_QSORT_TYPE in function
427                 declaration.
428
429 1998-04-26  Theodore Ts'o  <tytso@rsts-11.mit.edu>
430
431         * ext2fs.h, bitops.h: Add support for the Watcom C compiler to do
432                 inline functions.
433
434         * ext2fs.h, dosio.c: Use asm/types.h instead of linux/types.h to
435                 evade a potential problem with glibc's header files trying
436                 to spike out linux/types.h.
437
438         * ext2fs.h (ext2fs_resize_mem): Change the function prototype to
439                 include the old size of the memory, which is needed for
440                 some braindamaged memory allocation systems that don't
441                 support realloc().
442
443         * badblocks.c (ext2fs_badblocks_list_add):
444           bb_inode.c (clear_bad_block_proc):
445           dblist.c (ext2fs_add_dir_block):
446           icount.c (insert_icount_el):
447           irel_ma.c (ima_put):
448           rs_bitmap.c (ext2fs_resize_generic_bitmap): Update functions to
449                   pass the old size of the memory to be resized to
450                   ext2fs_resize_mem(). 
451
452 1998-03-30  Theodore Ts'o  <tytso@rsts-11.mit.edu>
453
454         * Makefile.in: Change to use new installation directory variables
455                 convention.  Fix uninstall rules to take $(DESTDIR) into
456                 account.
457
458 1998-03-29  Theodore Ts'o  <tytso@rsts-11.mit.edu>
459
460         * ext2fs.h: If __STRICT_ANSI__ is defined and we're on a platform
461                 with 32 bit longs, then we need to manually define __s64
462                 and __u64, since the current kernel header files don't
463                 define these if __STRICT_ANSI__ is defined.  This is a
464                 problem if we are compiling with full GCC warnings, since
465                 we do need 64 bit support.
466         
467         * Makefile.in (OBJS): Remove bmove.o from files to be built,
468                 since we're not using ext2fs_move_blocks() and there
469                 is some question as to its usefulness in its current
470                 form.
471
472         * bmap.c (block_bmap): Remove unused function.
473
474         * bmove.c (process_block): Fix -Wall warning.
475
476 1998-03-23  Theodore Ts'o  <tytso@rsts-11.mit.edu>
477
478         * block.c (ext2fs_block_iterate3): Make the ref_offset field
479                 contain the offset into the inode.i_blocks array when
480                 ref_block is zero.  Since we haven't done a formal
481                 release of e2fsprogs since block_iterate2 was first
482                 introduced, I removed block_iterate2, and renamed
483                 block_iterate3 to be block_iterate2.
484
485         * bb_inode.c, bmove.c, dblist_dir.c, dir_iterate.c,
486                 expanddir.c, ext2fs.h, ext2fsP.h, read_bb.c: Change
487                 use of block_iterate and block_iterate2 to
488                 block_iterate2 with the new prototype for the
489                 interator function.  (using blkcnt_t forr blockcount)
490
491 1998-03-21  Theodore Ts'o  <tytso@rsts-11.mit.edu>
492
493         * ext2fs.h: Add new superblock fields (s_algorithm_usage_bitmap, 
494                 s_prealloc_blocks, s_prealloc_dir_blocks).  Added
495                 conditional defines of new features COMPAT_DIR_PREALLOC,
496                 RO_COMPAT_LARGE_FILE RO_COMPAT_BTREE_DIR,
497                 INCOMPAT_COMPRESSION, INCOMPAT_DIRNAME_SIZE.  Changed
498                 the library to declare that we support COMPAT_DIR_PREALLOC, 
499                 INCOMPAT_DIRNAME_SIZE, RO_COMPAT_LARGE_FILE.
500
501         * fileio.c: Rename function ext2fs_file_llseek to be
502                 ext2fs_file_lseek, which is more accurate.
503
504         * block.c: Add new function ext2fs_block_iterate3 which calls
505                 the iterator function with the blockcount argument of
506                 type blkcnt_t.  This version of the function is
507                 allowed to handle large files; the other fucntions are
508                 not.
509
510         * ext2fs.h: Add new type blkcnt_t
511
512         * ext2_err.et.in: Add error code EXT2_ET_FILE_TOO_BIG
513
514         * block.c (ext2fs_block_iterate2): Fix bug where the block count
515                 field wasn't getting correctly incremented for sparse
516                 files when the indirect or doubly-indirect block
517                 specified in the inode was zero.
518
519 Sun Mar  8 22:42:47 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
520
521         * unlink.c (unlink_proc): 
522         * lookup.c (lookup_proc): 
523         * link.c (link_proc): 
524         * get_pathname.c (get_pathname_proc): 
525         * dir_iterate.c (ext2fs_process_dir_block): Mask off high 8 bits
526                 from dirent->name_len, so it can be used for other
527                 purposes.
528
529         * ext2fs.h: Add definition of EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE,
530                 and indicate that we have support for this incompatible
531                 option.
532
533 Mon Feb 23 08:46:33 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
534
535         * ext2_err.et.in: Added new error code, EXT2_ET_CANCEL_REQUESTED.
536
537 Fri Feb 20 23:58:01 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
538
539         * dblist.c (ext2fs_get_num_dirs): Improve the estimation of the
540                 number of directories when the block group information is
541                 unreliable.
542
543 1998-02-20  Theodore Y. Ts'o  <tytso@edt.mit.edu>
544
545         * inode.c (ext2fs_get_next_inode): Always do the check to see if the
546                 inode table is missing so that we catch the case where the
547                 first block group is missing.
548
549         * getsize.c, ismounted.c, unix_io.c: #include errno.h since it's
550                 needed.
551
552 Mon Feb 16 16:16:00 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
553
554         * ext2_io.h, ext2fs.h: Protect against being included multiple times.
555
556         * bmove.c: #include ext2fsP.h instead of "ext2fs/ext2fs.h"
557
558         * test_io.c (test_flush): Add a debugging printf when the flush
559                 method is called.
560
561         * rw_bitmaps.c (ext2fs_read_bitmaps): If the bitmaps are already
562                 read in, return right away.
563
564 Sun Feb  1 08:20:24 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
565
566         * bitops.h: Don't try to do i386 inline asm functions if the
567                 compiler isn't GCC.
568
569         * ext2fs.h: If EXT2_FLAT_INCLUDES is defined, #include e2_types.h,
570                 instead of linux/types.h, and e2_bitops.h instead of
571                 ext2fs/bitops.h.
572
573         * icount.c, version.c: Don't #include <et/com_err.h>, as it isn't
574                 necessary. 
575
576 Sat Jan 17 13:13:31 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
577
578         * inode.c (ext2fs_open_inode_scan): Initialize the group variables
579                 so that we don't need to call get_next_blockgroup() the
580                 first time around.  Saves a bit of time, and prevents us
581                 from needing to assign -1 to current_group (which is an
582                 unsigned value).
583
584         * icount.c (insert_icount_el): Cast the estimated number of inodes
585                 from a float to an ino_t.
586
587         * alloc.c, alloc_tables.c, badlbocks.c, bb_compat.c, bb_inode.c,
588                 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
589                 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
590                 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
591                 expanddir.c, ext2fs.h, fileio.c, freefs.c,
592                 get_pathname.c, getsize.c, icount.c, initialize.c,
593                 inline.c, inode.c, irel_ma.c, ismounted.c, link.c,
594                 lookup.c, mkdir.c, namei.c, native.c, newdir.c,
595                 openfs.c, read_bb.c, read_bb_file.c, rs_bitmap.c,
596                 rw_bitmaps.c, swapfs.c, test_io.c, tst_badblocks.c,
597                 tst_getsize.c, tst_iscan.c, unix_io.c, unlink.c,
598                 valid_blk.c, version.c: If EXT2_FLAT_INCLUDES is
599                 defined, then assume all of the
600                 ext2-specific header files are in a flat directory.
601
602         * block.c, bmove.c, dirblock.c, fileio.c: Explicitly cast
603                 all assignments from void * to be compatible with C++.
604
605 Tue Jan  6 11:28:15 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
606
607         * closefs.c (ext2fs_flush): Add a call to io_channel_flush() to
608                 make sure the contents of the disk are flushed to disk.
609
610 Mon Dec 29 14:39:13 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
611
612         * dblist.c (ext2fs_add_dir_block): Change new to be new_entry to
613                 avoid C++ namespace clash.
614
615         * bitmaps.c (ext2fs_copy_bitmap): Change new to be new_map to
616                 avoid C++ namespace clash.
617
618         * ext2fs.h, bb_inode.c, block.c, bmove.c, brel.h, brel_ma.c,
619                 irel.h, irel_ma.c, dblist.c, dblist_dir.c, dir_iterate.c,
620                 ext2fsP.h, expanddir.c, get_pathname.c, inode.c, link.c,
621                 unlink.c: Change private to be priv_data (to avoid C++
622                 namespace clash)
623
624 Fri Nov 28 09:26:31 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
625
626         * dblist.c (ext2fs_get_num_dirs): Make ext2fs_get_num_dirs more
627                 paranoid about validating the directory counts from the
628                 block group information.
629
630         * all files: Don't include stdlib.h anymore; include it in
631                 ext2_fs.h, since that file requires stdlib.h
632
633 Thu Nov 20 16:07:38 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
634
635         * expanddir.c (ext2fs_expand_dir): Check to make sure the block
636                 bitmap is loaded, and return an error if it is not.
637                 (expand_dir_proc): Only use ext2fs_write_dir_block when
638                 writing a directory block, not when writing out a fresh
639                 indirect block.
640
641 Tue Nov 11 22:46:45 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
642
643         * Makefile.in, tst_getsize.c: Added new file which is used to test
644                 the ext2fs_get_device_size function.
645
646         * ext2_err.et.in (EXT2_ET_UNIMPLEMENTED): Added new error code.
647
648 Sun Nov  2 20:36:13 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
649
650         * ext2fs.h: Make ext2fs_get_mem take an unsigned argument.
651
652         * fileio.c (ext2fs_file_get_size, ext2fs_file_set_size,
653                 ext2fs_file_get_fs): New functions added.
654
655
656 Fri Oct 31 12:16:52 1997    <tytso@EDT.MIT.EDU>
657
658         * bitops.c (ext2fs_warn_bitmap, ext2fs_warn_bitmap2): Don't call
659                 com_err if OMIT_COM_ERR is defined.
660
661 Thu Oct 30 11:33:57 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
662
663         * Rename new error codes to _ET_ in them for consistency.
664
665 Sat Oct 25 00:06:58 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
666
667         * [all files, basically]: Added definition of ext2fs_get_mem, 
668                 ext2fs_free_mem, and ext2fs_resize_mem in ext2fs.h, and
669                 changed all library routines to use these wrapper functions.
670
671         * dblist.c, mkdir.c: use EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND
672                 instead of the system error messages.
673         
674         * ext2_err.et.in: Added new error messages EXT2_DIR_EXISTS and
675                 EXT2_DB_NOT_FOUND
676
677         * ext2fs.h: Added function declarations and constants for bmap.c
678                 and fileio.c.
679
680         * ext2_err.et.in: Added new error messages EXT2_FILE_RO and
681                 EXT2_ET_MAGIC_EXT2_FILE
682
683         * Makefile.in: Added files bmap.c and fileio.c, and temporarily
684                 commented out brel_ma.c and irel_ma.c
685
686         * bmap.c: New file which maps a file's logical block number to its
687                 physical block number.
688
689         * fileio.c: New file which implements simple file reading and
690                 writing primitives.
691
692         * alloc.c (ext2fs_alloc_block): New function which allocates a
693                 block, zeros it, and updates the filesystem accounting
694                 records appropriately.
695
696 Wed Oct 22 16:47:27 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
697
698         * ext2_err.et.in: Added new error codes: EXT2_NO_MEMORY,
699                 EXT2_INVALID_ARGUMENT, EXT2_BLOCK_ALLOC_FAIL,
700                 EXT2_INODE_ALLOC_FAIL, EXT2_NOT_DIRECTORY
701
702         * Change various library files to use these functions instead of
703                 EINVAL, ENOENT, etc.
704
705 Mon Oct 20 19:32:40 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
706
707         * llseek.c: Check HAVE_LLSEEK_PROTOTYPE to see whether or not we
708                 need to declare llseek().
709
710 Sun Oct 19 18:56:22 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
711
712         * Rename io.h to be ext2_io.h (avoid namespace collisions)
713
714         * Add #ifdef's for HAVE_SYS_STAT_H and HAVE_SYS_TYPES_H
715
716 Fri Oct  3 13:35:59 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
717
718         * llseek.c (ext2fs_llseek): Fix type error for ext2fs_llseek()
719
720         * icount.c (ext2fs_icount_validate): 
721         * bmove.c (process_block): Fix lint error in type for fprintf().
722
723 Mon Sep 15 11:45:09 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
724
725         * inode.c (ext2fs_check_directory): Add support for the callback
726                 to return the error code EXT2_ET_CALLBACK_NOTHANDLED.
727
728 Thu Sep  4 12:28:22 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
729
730         * bitmaps.c (ext2fs_set_bitmap_padding): New function which sets the
731                 padding of the bitmap to be all one's.
732
733 Wed Sep  3 14:27:30 1997  Theodore Y. Ts'o  <tytso@edt.mit.edu>
734
735         * llseek.c: Added missing semicolon to glibc fixup declaration of
736         llseek().
737
738         * bmove.c: Add #include of errno.h
739
740 Sat Aug 23 22:47:46 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
741
742         * Makefile.in (ELF_SO_VERSION): Bump version to be 2.4 since we've
743                 added a new field to the io_channel (app_data).
744
745         * io.h: Add a new element to the io_channel structure, app_data.
746
747         * initialize.c, openfs.c: Set io->app_data to point at the
748                 filesystem handle.
749
750 Thu Aug 14 08:14:17 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
751
752         * io.h: Change the prototype of ext2fs_llseek() to use int's
753                 instead of unsigned int's.
754
755         * llseek.c: Change to allow PIC and !HAVE_LLSEEK.  Add a prototype
756                 to make life easer for GNU Libc 2.
757
758         * rw_bitmaps.c: On the PowerPC, the big-endian variant of the ext2
759                 filesystem has its bitmaps stored as 32-bit words with bit
760                 0 as the LSB of each word.  Thus a bitmap with only bit 0
761                 set would be, as a string of bytes, 00 00 00 01 00 ...  To
762                 cope with this, we byte-reverse each word of a bitmap if
763                 we have a big-endian filesystem, that is, if we are *not*
764                 byte-swapping other word-sized numbers.
765
766 Mon Aug 11 03:30:48 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
767
768         * dosio.c: New file to do DOS/BIOS disk accesses.
769
770         * namei.c (open_namei): Make pathlen be of type size_t.
771
772         * llseek.c: Always #include stdlib.h since it's need to define
773                 size_t.  
774
775         * io.h: Use errcode_t for magic numbers.
776
777         * icount.c (get_icount_el): Use size_t where appropriate
778         
779         * dupfs.c (ext2fs_dup_handle): 
780         * dblist.c (dir_block_cmp): Use size_t where appropriate.
781
782         * read_bb.c (ext2fs_read_bb_inode): 
783         * cmp_bitmaps.c (ext2fs_compare_inode_bitmap): Use blk_t, ino_t
784                 and size_t where appropriate.
785
786         * closefs.c (ext2fs_flush): Use dgrp_t instead of int where
787                 appropriate.
788
789         * openfs.c (ext2fs_open): 
790         * check_desc.c (ext2fs_check_desc): Use blk_t instead of int where
791                 appropriate.
792
793         * rw_bitmaps.c (read_bitmaps): 
794         * irel_ma.c: 
795         * inode.c (ext2fs_write_inode): 
796         * initialize.c (ext2fs_initialize):
797         * brel_ma.c: Fix to make be 16-bit safe.
798
799         * link.c (ext2fs_link): 
800         * unlink.c (ext2fs_unlink):
801         * lookup.c (lookup_proc): 
802         * ismounted.c (ext2fs_check_if_mounted): 
803         * block.c (xlate_func): Add #pragma argsused for Turbo C.
804
805 Sun Aug 10 10:05:22 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
806
807         * block.c (ext2fs_block_iterate2): Use retval which is a errcode_t
808                 type.
809
810         * bitmaps.c (make_bitmap): Use size_t instead of int where
811                 appropriate.
812
813         * bb_inode.c (set_bad_block_proc): Add #pragma argsused for Turbo C.
814
815         * alloc.c (ext2fs_new_inode): Use ino_t instead of int for the
816                 group number.
817
818         * get_pathname.c: Use ino_t instead of int where appropriate.
819
820         * ext2fs.h: Make the magic structure element be errcode_t instead
821                 of int.
822
823         * alloc.c alloc_tables.c badblocks.c bb_compat.c bb_inode.c
824                 bitmaps.c block.c bmove.c brel_ma.c check_desc.c closefs.c
825                 cmp_bitmaps.c dblist.c dblist_dir.c dir_iterate.c
826                 dirblock.c dupfs.c expanddir.c freefs.c get_pathname.c
827                 icount.c initialize.c inline.c inode.c irel_ma.c link.c
828                 llseek.c lookup.c mkdir.c namei.c newdir.c read_bb.c
829                 read_bb_file.c rs_bitmap.c rw_bitmaps.c swapfs.c 
830                 test_io.c tst_badblocks.c tst_iscan.c unix_io.c unlink.c
831                 valid_blk.c version.c: Add an #ifdef for HAVE_UNISTD_H
832
833 Tue Jun 17 01:33:20 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
834
835         * unix_io.c (unix_read_blk): If ext2fs_llseek() fails, but errno
836                 is zero, then return EXT2_IO_LLSEEK_FAILED.
837
838         * ext2_err.et.in: Add a new error code, EXT2_IO_LLSEEK_FAILED.
839
840         * Release of E2fsprogs 1.11
841
842 Mon Jun 16 23:53:06 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
843
844         * dblist.c (ext2fs_dblist_count): Added new function which returns
845                 the number of directory blocks in dblist.
846
847 Sat Jun 14 01:39:13 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
848
849         * unix_io.c (unix_flush): Make the io_channel flush function do a
850                 fsync to flush the kernel buffers to disk.
851
852 Wed Jun 11 18:25:31 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
853
854         * inode.c (ext2fs_inode_scan_goto_blockgroup): Fix bug; the
855                 current inode number wasn't being set by the
856                 goto_blockgroup function.
857
858 Mon Jun  9 10:45:48 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
859
860         * bmove.c (ext2fs_move_blocks): New function which takes a bitmap
861                 of blocks which need to be moved, and moves those blocks
862                 to another location in the filesystem.
863
864         * rs_bitmap.c (ext2fs_resize_generic_bitmap): When expanding a
865                 bitmap, make sure all of the new parts of the bitmap are
866                 zero. 
867
868 Sun Jun  8 16:24:39 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
869
870         * bitmaps.c (ext2fs_copy_bitmap): Fix bug; the destination bitmap
871                 wasn't being returned to the caller.
872
873         * alloc_tables.c (ext2fs_allocate_group_table): Add new function
874                 ext2fs_allocate_group_table() which sets the group tables
875                 for a particular block group.  The relevant code was
876                 factored out of ext2fs_allocate_tables().
877
878         * dblist.c (make_dblist): Adjust the initial size of the directory
879                 block list to be a bit more realistic (ten plus twice the
880                 number of directories in the filesystem).
881
882 Thu May  8 22:19:09 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
883
884         * badblocks.c (ext2fs_badblocks_list_test): Fix bug where
885                 ext2fs_badblocks_list_test would test the list (and exceed
886                 array boundaries) if there were no bad blocks on the bad
887                 blocks list.  (Showed up when user tried: mke2fs -c -b 4096).
888
889 Thu Apr 24 12:16:42 1997  Theodre Ts'o  <tytso@localhost.mit.edu>
890
891         * Release of E2fsprogs version 1.10
892
893 Thu Apr 24 10:13:42 1997  Theodre Ts'o  <tytso@localhost.mit.edu>
894
895         * alloc_tables.c (ext2fs_allocate_tables): Correctly place the
896                 inode and block bitmaps based on the RAID 0 stride
897                 parameter (which is passed by mke2fs).
898
899         * ext2fs.h: Add "stride" parameter to ext2_filsys, to be used by
900                 mke2fs to communicate the stride length to
901                 ext2fs_allocate_tables()
902
903 Wed Apr 23 21:50:42 1997  Theodre Ts'o  <tytso@localhost.mit.edu>
904
905         * initialize.c (ext2fs_initialize): Fix to compile under Linux 1.2
906                 systems.  (We can't assume that the new filesystem types
907                 are supported.)
908
909 Wed Apr 23 18:40:53 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
910
911         * alloc_tables.c (ext2fs_allocate_tables): Make sure that we
912                 allocate the inode and block bitmaps inside block group at
913                 all times.
914
915 Mon Apr 21 00:06:28 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
916
917         * alloc.c (ext2fs_new_block): Fix bug where if goal==0 and the
918                 filesystem has no free blocks, ext2fs_new_block would loop
919                 forever.
920
921         * dupfs.c (ext2fs_dup_handle): Duplicate an ext2 filesystem handle
922
923         * freefs.c (ext2fs_free_inode_cache): Decrement refcount and only
924                 free if refcount goes to zero.
925
926         * inode.c (create_icache): Initialize refcount to 1.
927
928         * ext2fsP.h: Added refcount to ext2_inode_cache
929
930         * dblist.c (ext2fs_copy_dblist): New function to copy a directory
931                 block list.
932
933         * badblocks.c (ext2fs_badblocks_copy): New function to copy a
934                 badblocks structure.
935
936 Sun Apr 20 23:19:51 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
937
938         * bitmaps.c (ext2fs_copy_bitmap): New function to copy a bitmap.
939
940         * unix_io.c, test_io.c (unix_open, test_open): Initialize the
941                 refcount to 1.
942                 (unix_close, test_close): Decrement the refcount and only
943                 close the io_channel if the refcount goes to 0.
944
945         * io.h: Add refcount to the io_channel structure.  Add new macro
946                 interface io_channel_bumpcount() to bump the refcount.
947
948 Thu Apr 17 20:25:03 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
949
950         * inode.c (ext2fs_read_inode, ext2fs_write_inode): Use the inode
951                 cache in the filesystem handle, instead of the inode cache
952                 in a static variable.
953
954         * freefs.c: Added static function to free the inode cache (called by
955                 ext2fs_free). 
956
957         * ext2fsP.h: Added definition of the ext2_inode_cache structures.
958
959         * ext2fs.h: Added pointer to the inode_cache structure.
960
961         * block.c (block_iterate_ind, block_iterate_dind, 
962                 block_iterate_tind): If there are holes in the indirect,
963                 doubly indirect, or triply indirect blocks, increment the
964                 block count field automatically.
965
966 Thu Apr 17 12:23:38 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
967
968         * Release of E2fsprogs version 1.09
969
970 Mon Apr 14 20:38:56 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
971
972         * version.c (ext2fs_parse_version_string): Check the passed in
973                 version string (instead of the hard-coded one).
974
975         * alloc_tables.c (ext2fs_allocate_tables): If the last block is
976                 greater filesystem size, clamp it to prevent allocating a
977                 block or inode bitmap beyond the filesystem.
978
979         * initialize.c (ext2fs_initialize): Fix bug where the metatdata
980                 overhead calculation was accidentally removed.
981
982 Fri Apr 11 18:56:26 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
983
984         * Release of E2fsprogs version 1.08
985
986 Thu Apr 10 13:15:15 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
987
988         * dblist.c (ext2fs_set_dir_block): New function which sets the
989                 block of a dblist entry, given the directory inode and
990                 blockcnt.
991
992 Sat Apr  5 12:42:42 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
993
994         * alloc_tables.c (ext2fs_allocate_tables): Allocate the bitmap and
995                 inode bitmaps at staggered locations across the block
996                 groups, to avoid concentrating the bitmaps on a small
997                 number of disks when using striped RAID arrays.
998
999         * initialize.c (ext2fs_initialize): By default, choose the maximum
1000                 possible number of blocks per group (based on the size of
1001                 the bitmaps in the blocksize).
1002
1003 Fri Apr  4 11:28:16 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1004
1005         * initialize.c (ext2fs_initialize): Add support for
1006                 EXT2_COMPAT_SPARSE_SUPER feature.
1007
1008         * closefs.c (ext2fs_bg_has_super): New function to determine
1009                 whether or a particular block group should have a
1010                 superblock and block group descriptor.  Used for the
1011                 EXT2_COMPAT_SPARSE_SUPER feature is turned on.
1012                 (ext2fs_flush):  Check ext2fs_bg_has_super to see whether
1013                 or not the superblock should be written out for the block
1014                 group. 
1015
1016         * ext2fs.h (EXT2_COMPAT_SPARSE_SUPER): Define compatibility flag
1017                 for sparse duplicate superblocks.
1018
1019         * version.c (ext2fs_get_library_version): New function which
1020                 returns the library version.
1021
1022         * version.c (ext2fs_parse_version_string): New function which
1023                 parses a version string and returns a version number,
1024                 so application programs can compare version numbers as
1025                 integers.
1026
1027 Wed Mar 26 00:43:52 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1028
1029         * icount.c (ext2fs_create_icount): Change function so that it also
1030                 takes a new argument which contains a "hint" icount
1031                 structure.  This "hint" icount allows the create function
1032                 to set up the sorted list in advance.  This reduces
1033                 significantly the amount of data moving needed to insert
1034                 these inodes into the list later.
1035         
1036         * icount.c (ext2fs_icount_validate): New function which validates
1037                 that the icount structure's rep invariant.
1038
1039         * icount.c (get_icount_el): Completely revamped implementation
1040                 to subsume put_icount_el().  Put_icount_el() used to
1041                 use an O(N) implementation to insert in the middle
1042                 of the icount list.  It now uses a O(ln N) to search
1043                 for where the icount should be inserted, and then uses
1044                 a memcpy to move the list down (instead of a for loop).
1045         
1046         * icount.c (ext2fs_icount_fetch, ext2fs_icount_store,
1047                 ext2fs_icount_increment, ext2fs_icount_decrement): Check
1048                 to see if the inode is within bounds; if it isn't, return
1049                 EINVAL.
1050
1051         * bitops.h (ext2fs_test_generic_bitmap): Fix error message given
1052                 when a bad inode number is passed to test_generic_bitmap
1053                 to be EXT2FS_TEST_ERROR instead of the wrong
1054                 EXT2FS_UNMARK_ERROR.
1055
1056 Wed Mar 12 13:32:05 1997  Theodore Y. Ts'o  <tytso@mit.edu>
1057
1058         * Release of E2fsprogs version 1.07
1059
1060 Sun Mar  2 16:46:18 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1061
1062         * Makefile.in (ELF_VERSION): Change version to be 2.2
1063
1064 Tue Feb 11 14:54:02 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1065
1066         * alloc.c (ext2fs_get_free_blocks): Change routine to use
1067                 ext2fs_fast_test_block_bitmap_range().
1068
1069         * bitops.h (ext2fs_fast_test_block_bitmap_range,
1070                 ext2fs_test_block_bitmap_range: New inline functions which
1071                 test to see whether a contiguous range of blocks is
1072                 available.
1073
1074 Thu Feb  6 10:00:13 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1075
1076         * badblocks.c (ext2fs_badblocks_list_create): Rename sybmols to use
1077                 use ext2fs_badblocks_* instead of badblocks_*
1078
1079         * bb_compat.c: New file which translates between old badblocks_*()
1080                 names to ext2fs_badblocks_*()
1081
1082         * unlink.c (ext2fs_unlink): New file, moved ext2fs_unlink() from
1083                 link.c (since e2fsck doesn't use ext2fs_unlink()).
1084
1085         * rs_bitmap.c (ext2fs_resize_generic_bitmap): New file, contains
1086                 bitmap resizing routine moved from bitmaps.c, since e2fsck
1087                 doesn't need to use this function.
1088
1089         * lookup.c (ext2fs_lookup): Moved ext2fs_lookup to its own file,
1090                 since e2fsck only needs ext2fs_lookup.
1091
1092 Mon Feb  3 10:11:40 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1093
1094         * inode.c (ext2fs_open_inode_scan): Set fs->badblocks if it is not
1095                 already set; this is needed so that programs like dump
1096                 which use the inode scan functions will deal with
1097                 filesystems that have bad blocks in the inode table.
1098
1099 Sun Feb  2 00:17:36 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1100
1101         * ext2fs.h (struct_badblocks_list, struct_badblocks_iterate): 
1102                 Moved to ext2fsP.h, since it doesn't need to be part of
1103                 the public interface.
1104
1105         * dir_iterate.c: Move ext2_dir_iterate out of namei.c.
1106
1107 Sat Feb  1 10:14:55 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1108
1109         * dblist.c (ext2fs_get_num_dirs): New file, which implements a
1110                 directory block list abstraction.  (Code moved from
1111                 e2fsck).
1112
1113         * ext2fs.h, inode.c: Moved definition of ext2_struct_inode_scan to
1114                 to inode.c (since no one else should be peeking inside it!)
1115
1116         * valid_blk.c (ext2_inode_has_valid_blocks): New function.
1117
1118         * openfs.c (ext2fs_open): Check the feature set in the ext2
1119                 superblock, and refuse to open filesystems if they contain
1120                 incompatible features.  (Can be overriden with the
1121                 EXT2_FLAG_FORCE 
1122
1123 Sun Jan 12 11:31:46 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1124
1125         * block.c (ext2fs_block_iterate2): Added new function
1126                 ext2fs_block_iterate2 which changes the function
1127                 signature of the callback function to include the
1128                 referencing block and offset.
1129
1130         * inode.c (ext2fs_inode_scan_goto_blockgroup): Added new function
1131                 ext2fs_inode_scan_goto_blockgroup which allows an
1132                 application to jump to a particular block group while
1133                 doing an inode scan.
1134
1135 Wed Jan  1 23:50:12 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1136
1137         * dirblock.c: Include string.h, since we use memcpy().
1138
1139 Tue Dec  3 12:27:29 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1140
1141         * getsize.c (ext2fs_get_device_size): The ioctl BLKGETSIZE returns
1142                 a long not an int; this doesn't matter on i386 machines,
1143                 but it does on Alpha's.
1144         
1145 Fri Nov 29 20:57:37 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1146
1147         * inode.c (ext2fs_write_inode, ext2fs_read_inode): If the inode
1148                 table pointer is NULL, then return an error indicating
1149                 that the inode table is missing.
1150                 (get_next_blockgroup, get_next_blocks,
1151                 ext2fs_get_next_inode): Don't treat a missing inode table
1152                 as permanent error.  Return MISSING_INODE_TABLE, but as an
1153                 advisory error code, much like BAD_BLOCK_IN_INODE_TABLE.
1154
1155         * rw_bitmaps.c (ext2fs_write_block_bitmap,
1156                 ext2fs_write_inode_bitmap): If the inode or block bitmap
1157                 block is zero, then don't write out the inode or block
1158                 bitmap.  The idea here is to avoid stomping on the
1159                 superblock.
1160                 (read_bitmaps): If the inode or block bitmap block is
1161                 zero, then fill in that portion of the inode or block
1162                 bitmap with all zeros.
1163
1164         * inode.c (ext2fs_get_next_inode): Fix bug in handling of bad
1165                 blocks in inode table when the inode table size is
1166                 non-standard (and can therefore span blocks).
1167
1168 Tue Oct 29 20:13:14 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1169
1170         * alloc.c (ext2fs_new_block): Fix fencepost error in
1171                 ext2fs_new_block; make sure we don't try to allocate the
1172                 first block beyond the end of the filesystem.
1173
1174 Mon Oct 14 11:00:48 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1175
1176         * inode.c (check_for_inode_bad_blocks): New function called by
1177                 get_next_blocks() to avoid reading in bad blocks marked in
1178                 fs->badblocks.  Inodes located in bad blocks are returned
1179                 by ext2fs_get_next_inode() returns the error code 
1180                 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE.
1181         
1182         * alloc_tables.c (ext2fs_allocate_tables): New function which
1183                 performs the part of mke2fs's job of allocating the 
1184                 filesystem tables.
1185
1186         * test_io.c (test_close): IO manager which is used for testing
1187                 purposes.
1188
1189 Sun Oct 13 04:31:57 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1190
1191         * inode.c (ext2fs_get_next_inode): Separate out the function of
1192                 setting up for a new block group to get_next_blockgroup().
1193                 Separate out the function of reading in blocks of the
1194                 inode table to get_next_blocks().
1195
1196         * ext2fs.h: Add the badblocks list to the ext2_filsys entry
1197
1198         * badblocks.c (badblocks_list_add, badblocks_list_test): Add
1199                 blocks to the badblock list in sorted order.  This allows
1200                 badblocks_list_test to be coded using a binary search for
1201                 speed.
1202
1203 Tue Oct  8 02:02:03 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1204
1205         * Release of E2fsprogs version 1.06
1206
1207 Mon Oct  7 00:44:17 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1208
1209         * ext2fs.h, block.c, closefs.c, dirblock.c, inode.c, native.c,
1210                 open.c: Change EXT2_SWAP to EXT2_FLAG_SWAP for
1211                 consistency's sake.
1212         
1213         * closefs.c (ext2fs_flush): If the flag EXT2_MASTER_SB_ONLY is
1214                 set, then only write out the master superblock.
1215
1216 Sun Oct  6 21:45:26 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1217
1218         * block.c (ext2fs_block_iterate): Fixed bug which caused
1219                 block_iterate to fail to handle HURD created filesystems;
1220                 it tested the inode translator field before the inode was
1221                 loaded.
1222
1223 Tue Sep 17 14:08:24 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1224
1225         * initialize.c (ext2fs_initialize): Make sure the description for
1226                 the inode bitmap is set correctly.
1227
1228         * bitmaps.c (ext2fs_allocate_generic_bitmap): Fix minor type typo.
1229
1230 Thu Sep 12 15:23:07 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1231
1232         * Release of E2fsprogs version 1.05
1233
1234 Sat Sep  7 07:36:03 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1235
1236         * initialize.c: Override the kernel's idea of default
1237                 checkinterval from 0 (never) to 180 days.
1238
1239 Wed Aug 28 03:20:03 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1240
1241         * namei.c (ext2fs_namei_follow): New function which follows
1242                 symbolic link (if any) at the target.
1243
1244 Tue Aug 27 01:48:43 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1245
1246         * inode.c (ext2fs_read_inode, ext2fs_write_inode): Add support
1247                 for shortcut function fs->read_inode() and fs->write_inode().
1248                 Added inode_cache to reduce CPU time spent in doing
1249                 byte swapping.
1250
1251         * swapfs.c (ext2fs_swap_super): Swap the new fields in a V2
1252                 superblock.
1253
1254         * namei.c (ext2fs_follow_link): New function.
1255                 (ext2fs_namei): Extended to have support for chasing
1256                 symbolic links.  ext2fs_namei() still returns an inode
1257                 which is a symbolic link.  Symbolic links are only chased
1258                 while resolving the containing directory.  To chase
1259                 symbolic links of the final result, use
1260                 ext2fs_follow_link().
1261
1262 Mon Aug 26 23:46:07 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1263
1264         * ext2_err.et.in: Added new error code EXT2_ET_SYMLINK_LOOP.
1265
1266         * bitops.h (ext2fs_set_bit, ext2fs_celar_bit): Use asm inlines
1267                 provided by Pete A. Zaitcev (zaitcev@lab.sun.mcst.ru).
1268
1269 Thu Aug 22 00:40:18 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1270
1271         * initialize.c (ext2fs_initialize): On systems where the byte
1272                 order is not i386 compatible, set the swap_byte flag.
1273
1274         * inode.c (inocpy_with_swap): Check to see if inode contains a
1275                 fast symlink before swapping the inode block fields.  This
1276                 required adding a new argument to inocpy_with_swap to
1277                 determine whether the mode field is in host order or not.
1278
1279 Wed Aug 21 00:45:42 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1280
1281         * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit): On
1282                 the sparc, if EXT2_STD_BITOPS set, use the standard
1283                 i386-compatible bitmask operations, instead on the
1284                 non-standard native bitmask operators.
1285
1286 Fri Aug  9 11:11:35 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1287
1288         * block.c (ext2fs_block_iterate): Cause block iterator to return
1289                 the HURD translator block (along with everything else).
1290                 If the flag BLOCK_FLAG_DATA_ONLY is passed to the block
1291                 iterator, then don't return any meta data blocks
1292                 (including the HURD translator).
1293
1294 Wed Jul 17 17:13:34 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1295
1296         * gen_uuid.c: New file, which generates DCE-compatible UUIDs.
1297
1298         * uuid.c: New file, containing UUID utility functions.
1299
1300 Tue Jul 16 10:19:16 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1301
1302         * ext2fs.h: Add a definition of the "real" ext2 superblock.
1303
1304 Fri May 24 14:54:55 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1305
1306         * ext2fs.h: Fix erroneous ino_t type used in block_bitmap type.
1307
1308 Sun May 19 15:39:03 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1309
1310         * openfs.c (ext2fs_open): If the blocksize in the superblock is
1311                 zero, return the error EXT2_ET_CORRUPT_SUPERBLOCK, since
1312                 that's a basic value that must be correct for the rest of
1313                 the library to work.
1314
1315         * ext2_err.et.in (EXT2_ET_CORRUPT_SUPERBLOCK): Added new error
1316                 code.
1317
1318 Thu May 16 11:12:30 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1319
1320         * Release of E2fsprogs version 1.04
1321
1322 Wed Mar 27 00:33:40 1996    <tytso@rsts-11.mit.edu>
1323
1324         * Release of E2fsprogs version 1.03
1325
1326 Tue Mar 26 12:06:32 1996    <tytso@rsts-11.mit.edu>
1327
1328         * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit):
1329                 Change the m68k bit numbering for bitmasks to match with
1330                 the bit numbering used by all other ext2 implementations.
1331
1332 Thu Mar  7 03:37:00 1996    <tytso@rsts-11.mit.edu>
1333
1334         * inode.c (ext2fs_get_next_inode, ext2fs_close_inode_scan, 
1335         ext2fs_open_inode_scan): Support dynamically-sized inodes.
1336
1337 Wed Mar  6 12:26:29 1996    <tytso@rsts-11.mit.edu>
1338
1339         * inode.c (ext2fs_read_inode, ext2fs_write_inode): Support
1340                 dynamically-sized inodes.
1341
1342         * openfs.c (ext2fs_open): Allow dynamic revision filesystem to be
1343                 loaded.
1344
1345 Tue Mar  5 03:49:37 1996    <tytso@rsts-11.mit.edu>
1346
1347         * initialize.c (ext2fs_initialize): Catch an error condition where
1348                 the passed in size is *really* too small.
1349
1350         * alloc.c (ext2fs_new_inode): 
1351         * ext2fs.h (EXT2_FIRST_INODE): Add support for dynamic revision to
1352                 get first inode.
1353
1354 Wed Feb 21 15:56:17 1996    <tytso@rsts-11.mit.edu>
1355
1356         * getsize.c (ext2fs_get_device_size): Open the device read-only
1357                 when trying to determine its size.
1358
1359 Wed Jan 31 11:06:08 1996    <tytso@rsts-11.mit.edu>
1360
1361         * Release of E2fsprogs version 1.02
1362
1363 Sat Dec  9 09:57:50 1995    <tytso@rsts-11.mit.edu>
1364
1365         * rw_bitops.c (ext2fs_write_block_bitmap):
1366         * bitops.c (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
1367         * bitops.h (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
1368                 Rename {test,set,clear}_bit to ext2fs_{test,set,clear}_bit, 
1369                 to avoid conflicts with with kernel include files.  Also
1370                 rename ADDR and CONST_ADDR to EXT2FS_ADDR and
1371                 EXT2FS_CONST_ADDR. 
1372
1373 Thu Oct 26 12:09:16 1995    <tytso@rsts-11.mit.edu>
1374
1375         * ext2_err.et: Updated message in EXT2_ET_BASE to say version 0.5c
1376
1377         * swapfs.c (ext2fs_swap_super): Put an #ifdef check around
1378                 s_def_resuid and s_def_resgid for backwards compatibility.
1379
1380 Fri Oct 20 23:33:31 1995    <tytso@rsts-11.mit.edu>
1381
1382         * bitops.h: Added #ifdef's for Sparc.
1383
1384 Wed Sep  6 22:14:46 1995    <tytso@rsts-11.mit.edu>
1385
1386         * getsize.c: #include <sys/ioctl.h> under Linux to pick up ioctl()
1387                 declaration
1388
1389         * closefs.c: #include <string.h> to pick up memset() declaration
1390
1391 Mon Sep  4 21:45:29 1995  Remy Card  <card@bbj>
1392
1393         * Makefile.in: Added support for BSD shared libraries.
1394
1395         * initialize.c (ext2fs_initialize): Correctly set the s_creator_os
1396                 flag.
1397
1398 Mon Sep  4 09:55:30 1995    <tytso@rsts-11.mit.edu>
1399
1400         * unix_io.c (unix_open): Add a double check; if the passed in name
1401                 is NULL, return EXT2_ET_BAD_DEVICE_NAME.
1402
1403         * ext2_err.et (EXT2_ET_BAD_DEVICE_NAME): Added new error code
1404
1405 Wed Aug 16 15:44:10 1995    <tytso@rsts-11.mit.edu>
1406
1407         * inode.c (ext2fs_check_directory): Use LINUX_S_ISDIR instead of
1408                 S_ISDIR.
1409
1410 Tue Aug 15 13:08:36 1995    <tytso@rsts-11.mit.edu>
1411
1412         * getsize.c (ext2fs_get_device_size): Add support for reading the
1413                 partition size from a BSD disk label.
1414
1415 Thu Aug 10 09:33:26 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
1416
1417         * getsize.c (ext2fs_get_device_size): New function that determins
1418                 the size of a device.  Used by mke2fs and e2fsck.
1419
1420 Sat Aug 12 03:09:54 1995  Remy Card  <card@bbj>
1421
1422         * Makefile.in (install): Install static libraries in $(ulibdir)
1423                 (/usr/lib on Linux) instead of $(libdir) (/lib on Linux).
1424
1425 Wed Aug  9 17:04:23 1995  Theodore Y. Ts'o  <tytso@dcl>
1426
1427         * bitmaps.c (ext2fs_free_inode_bitmap, ext2fs_free_block_bitmap):
1428                 Move these functions to freefs.c.
1429
1430         * closefs.c (ext2fs_flush): If swapping blocks, clear the group
1431                 descriptors shadow memory to keep purify quiet.  (This
1432                 also has the nice benefit that the unused portion of the
1433                 shadow descriptors are zeroed out.)
1434
1435         * dirblock.c (ext2fs_write_dir_block): We need to use
1436                 dirent->rec_len *before* it's byteswapped to find the
1437                 location of the next directory structure!
1438
1439         * alloc.c (ext2fs_new_inode): Fix bug which could potentially
1440                 cause ext2fs_new_inode to loop infinitely if we're trying
1441                 to allocate an inode in group #0 and there are no free
1442                 inodes at all in the system.
1443
1444         * closefs.c: #include <errno.h> if it exists.
1445
1446 Sun Aug  6 13:27:50 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
1447
1448         * ext2fs.h (BLOCK_FLAG_HOLE): Added new definition for
1449                 BLOCK_FLAG_APPEND.  Added documentation for the block
1450                 interator flags.
1451
1452 Sat Aug  5 11:44:05 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
1453
1454         * Makefile.in (DLL_INSTALL_DIR, ELF_INSTALL_DIR): Set the
1455                 installation directories correctly.
1456
1457 Tue Jul 18 09:27:38 1995    <tytso@rsx-11.mit.edu>
1458
1459         * namei.c (process_dir_block): 
1460         * mkdir.c (ext2fs_mkdir): 
1461         * expanddir.c (expand_dir_proc): Use ext2fs_{read,write}_dir_block
1462                 to read/write the directory block.
1463
1464         * dirblock.c (ext2fs_read_dir_block), ext2fs_write_dir_block): New
1465                 file containing functions for reading and writing
1466                 directory blocks (byte swapping if necesssary)
1467
1468         * block.c (block_iterate_ind, block_iterate_dind, 
1469                 block_iterate_tind): Byte swap the block addresses if
1470                 EXT2_SWAP_BYTES is set (and swap them back before writing
1471                 them out.)
1472
1473         * inode.c (inocpy_with_swap): New function.
1474         (ext2fs_get_next_inode, ext2fs_read_inode, ext2fs_write_inode):
1475                 Call inocpy_with_swap if EXT2_SWAP_BYTES if set.
1476
1477         * closefs.c (ext2fs_flush): If EXT2_SWAP_BYTES is set, then swap
1478                 the superblock and group descriptors before writing it out.
1479
1480         * openfs.c (ext2fs_open): If the magic number is byte-swapped,
1481                 then set the EXT2_SWAP_BYTES and byte-swap the superblock
1482                 and group descriptors.
1483
1484         * swapfs.c (ext2fs_swap_super, ext2fs_swap_group_desc): New functions
1485                 to desp ext2 filesystem structures.
1486
1487         * bitops.c (set_bit, clear_bit, test_bit): Use modifications
1488                 supplied by Pete A. Zaitcev so that the C language
1489                 versions of these functions are more portable.  They will
1490                 now work on both little and big endian systems, and the
1491                 assumption that 32-bit integers are used is gone.
1492
1493         * bitops.h (ext2_swab16, ext2_swab32): Added new functions for
1494                 doing byte swapping.
1495
1496         * ext2fs.h (EXT2_SWAP_BYTES): Add new flag which indicates that
1497                 byte swapping should take place.
1498
1499 Sun Jul 16 06:21:43 1995    <tytso@rsx-11.mit.edu>
1500
1501         * Makefile.in, cmp_bitmaps.c (ext2fs_compare_block_bitmap_end,
1502                 ext2fs_compare_inode_bitmap_end): Added new file
1503                 containing routines to compare bitmaps.
1504
1505         * ext2_err.et (EXT2_ET_NEQ_BLOCK_BITMAP, EXT2_ET_NEQ_INODE_BITMAP): 
1506                 Added new error codes.
1507
1508 Sat Jul 15 04:23:37 1995    <tytso@rsx-11.mit.edu>
1509
1510         * inode.c (ext2fs_get_next_inode): Don't check scan->inode_buffer;
1511                 if the magic number is correct, it will be allocated.
1512
1513 Fri Jul 14 19:02:59 1995    <tytso@rsx-11.mit.edu>
1514
1515         * block.c (block_iterate_ind, block_iterate_dind, 
1516                 block_iterate_tind): Don't recompute block_nr each loop;
1517                 just increment it!  Factor check of BLOCK_FLAG_APPEND out
1518                 of the loop.  Factor mask of BLOCK_CHANGED into changed
1519                 variable out of the loop.  (block_iterate_ind, in
1520                 particular, gets called a lot, so every little
1521                 optimization helps.)
1522
1523 Thu Jul 13 08:02:45 1995    <tytso@rsx-11.mit.edu>
1524
1525         * block.c (block_iterate_ind, block_iterate_dind, 
1526                 block_iterate_tind): Precompute limit of loop to speed up
1527                 block_iterate_ind and company.
1528
1529         * bitops.h (ext2fs_fast_mark_block_bitmap, 
1530                 ext2fs_fast_unmark_block_bitmap, ext2fs_fast_test_block_bitmap,
1531                 ext2fs_fast_mark_inode_bitmap, ext2fs_fast_unmark_inode_bitmap,
1532                 ext2fs_fast_test_inode_bitmap): Add fast version of these
1533                 functions, which don't do range checking.
1534
1535         * bitops.h (ext2fs_get_block_bitmap_start, 
1536                 ext2fs_get_inode_bitmap_start, ext2fs_get_block_bitmap_end,
1537                 ext2fs_get_inode_bitmap_end): Add new accessor functions
1538                 which return the start and end points of the bitmaps.
1539
1540 Tue Jul 11 18:59:41 1995    <tytso@rsx-11.mit.edu>
1541
1542         * llseek.c (ext2_llseek): If the offset is small enough, use lseek
1543                 instead of llseek.  The errno if the offset is too large
1544                 and lseek is not supported should be EINVAL, not -EINVAL.
1545
1546 Thu Jun 15 23:43:02 1995  Remy Card  <card@bbj>
1547
1548         * Makefile.in: Added support for ELF shared libraries.
1549                 Fixed typos in the compilation rules.
1550                 (distclean): Added Makefile.
1551
1552         * llseek.c (llseek): New function, if llseek() does not exist in the
1553         C library.
1554         (ext2_llseek): Changed to call llseek().
1555
1556 Mon Jun 12 08:29:07 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
1557
1558         * ext2fs.h: Use __u32 to define blk_t, instead of unsigned long.
1559
1560 Sun Jun 11 15:02:54 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
1561
1562         * mkdir.c (ext2fs_mkdir): Use LINUX_S_IFDIR instead of S_IFDIR.
1563
1564         * ext2fs.h (LINUX_S_IFDIR): Define a linux specific versions of
1565                 the S_*, which are normally defined in <sys/stat.h>.  This
1566                 allows us to compile e2fsprogs on a non-Linux system,
1567                 which may have a different value for S_IFDIR.
1568
1569 Sat Jun 10 23:47:05 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
1570
1571         * bitops.c (clear_bit, set_bit): Remove calls to cli() and sti();
1572                 this is a user-mode application!
1573
1574 Thu Jun  8 13:13:22 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>
1575
1576         * llseek.c: Put the include of <linux/unistd.h> inside the #ifdef
1577         __linux__ so that non-linux systems won't see it.
1578
1579         * alloc.c: Include <errno.h> if possible.
1580         * badblocks.c: Ditto.
1581         * bb_inode.c: Ditto.
1582         * bitmaps.c: Ditto.
1583         * block.c: Ditto.
1584         * expanddir.c: Ditto.
1585         * get_pathname.c: Ditto.
1586         * initialize.c: Ditto.
1587         * inode.c: Ditto.
1588         * llseek.c: Ditto.
1589         * mkdir.c: Ditto.
1590         * namei.c: Ditto.
1591         * newdir.c: Ditto.
1592         * openfs.c: Ditto.
1593         * rw_bitmaps.c: Ditto.
1594         * unix_io.c: Ditto.
1595
1596         * Makefile.in: Rewritten to conform to GNU coding standards and
1597         support separate compilation directories.
1598
1599 Thu May 11 04:13:12 1995    <tytso@rsx-11.mit.edu>
1600
1601         * initialize.c (ext2fs_initialize): Don't allow more than one
1602                 bitmaps's worth of inodes in a group.
1603
1604 Sat Mar 11 14:07:11 1995  Theodore Y. Ts'o  <tytso@localhost>
1605
1606         * llseek.c (ext2_llseek): Added error checking to the llseek()
1607                 compat code to protect against overflow.  This only
1608                 applies to 1.0 and early 1.1 kernels, which don't support
1609                 the llseek() system call.
1610
1611 Thu Nov 24 16:29:00 1994  Theodore Y. Ts'o  (tytso@rt-11)
1612
1613         * unix_io.c (unix_open): Initialize the read_error and write_error
1614                 io_channel pointers to be null.
1615
1616         * bb_inode.c (clear_bad_block_proc): If an illegal block number is
1617                 found, clear it but don't try to update the filesystem
1618                 accounting information, since that's hopeless anyway.
1619
1620         * block.c (bloblock_iterate_ind, bloblock_iterate_dind,
1621         bloblock_iterate_tind): Check to see if the indirect blocks are
1622                 valid before trying to read them.
1623
1624         * ext2_err.et (EXT2_ET_BAD_IND_BLOCK, EX2_ET_BAD_DIND_BLOCK,
1625         EXT2_ET_BAD_TIND_BLOCK): Add new error codes.
1626
1627         * bitops.h (ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
1628         ext2fs_test_block_bitmap, ext2fs_mark_inode_bitmap,
1629         ext2fs_unmark_inode_bitmap, ext2fs_test_inode_bitmap):  If an
1630                 illegal block or inode number is passed in, return instead
1631                 of trying to test, set, or clear the bit.
1632
1633 Mon Nov  7 21:32:33 1994  Remy Card  <card@bbj>
1634
1635         * Makefile: Added a dummy install target in case shared libraries
1636                 are not built.
1637
1638 Mon Oct 24 14:11:44 1994    (tytso@rsx-11)
1639
1640         * bitmaps.c (ext2fs_allocate_block_bitmap): Fix calculation of how
1641                 the real last block of the bitmap should be calculated.
1642
1643 Wed Sep  7 10:05:36 1994    (tytso@rsx-11)
1644
1645         * bitmaps.c (ext2fs_fudge_inode_bitmap_end, 
1646                 ext2fs_fudge_block_bitmap_end, ext2fs_clear_inode_bitmap,
1647                 ext2fs_clear_block_bitmap, ext2fs_free_inode_bitmap,
1648                 ext2fs_free_block_bitmap): Add magic number checking for
1649                 the inode and block bitmaps.
1650
1651         * bitmaps.c (ext2fs_allocate_block_bitmap): Fix to set the correct
1652                 magic number for a block bitmap instead of an inode bitmap.
1653
1654         * inode.c (ext2fs_close_inode_scan, ext2fs_get_next_inode):  Add
1655                 magic number checking for the inode_scan structure.
1656
1657         * badblocks.c (badblocks_list_free, badblocks_list_add, 
1658                 badblocks_list_test, badblocks_list_iterate_begin,
1659                 badblocks_list_iterate, badblocks_list_iterate_end): Add
1660                 magic number checking for the badblocks_list and
1661                 badblocks_iterate structures.
1662
1663         * ext2_err.et (EXT2_ET_MAGIC_UNIX_IO_CHANNEL): 
1664         * unix_io.c (unix_open, unix_close, unix_set_blksize, unix_read_blk,
1665                 unix_write_blk, unix_flush): Add magic number checking
1666                 both for io_channel structure and unix_private_data
1667                 structure.
1668
1669         * openfs.c (ext2fs_open): Add check for io_manager structure's
1670                 magic number.
1671
1672         * rw_bitmaps.c (ext2fs_write_inode_bitmap, ext2fs_write_block_bitmap,
1673                 ext2fs_read_inode_bitmap, ext2fs_read_block_bitmap,
1674                 ext2fs_read_bitmaps, ext2fs_write_bitmaps): 
1675         * read_bb.c (ext2fs_read_bb_inode): 
1676         * read_bb_file.c (ext2fs_read_bb_FILE): 
1677         * newdir.c (ext2fs_new_dir_block): 
1678         * namei.c (ext2fs_dir_iterate, ext2fs_lookup, ext2fs_namei): 
1679         * link.c (ext2fs_link, ext2fs_unlink): 
1680         * inode.c (ext2fs_open_inode_scan, ext2fs_read_inode,
1681                 ext2fs_write_inode, ext2fs_get_blocks, 
1682                 ext2fs_check_directory): 
1683         * get_pathname.c (ext2fs_get_pathname): 
1684         * expanddir.c (ext2fs_expand_dir): 
1685         * block.c (ext2fs_block_iterate): 
1686         * bitmaps.c (ext2fs_allocate_inode_bitmap, 
1687                 ext2fs_allocate_block_bitmap): 
1688         * bb_inode.c (ext2fs_update_bb_inode): 
1689         * alloc.c (ext2fs_new_inode,ext2fs_new_block,ext2fs_get_free_blocks): 
1690         * check_desc.c (ext2fs_check_desc): 
1691         * closefs.c (ext2fs_close, ext2fs_flush): 
1692         * freefs.c (ext2fs_free): Add check for ext2_filsys magic number.
1693
1694         * Makefile:
1695         * ext2fs.h:
1696         * openfs.c:
1697         * check_desc.c (ext2fs_check_desc): Move ext2fs_check_desc from
1698         openfs.c into its own file.
1699
1700         * ext2fs.h (EXT2_CHECK_MAGIC): Added macro for checking for
1701         structure magic numbers.
1702
1703         * closefs.c (ext2fs_flush): Folded in Remy Card's changes to clear
1704         the EXT2_VALID_FS flag in the backup superblock blocks, so that if
1705         someone uses the -b option to specify the use of the backup
1706         superblock --- this usually means that the main superblock is
1707         toast.  :-)
1708
1709         * ext2fs.h: 
1710         * ext2_err.et (EXT2_ET_REV_TOO_HIGH): 
1711         * openfs.c (ext2fs_open): Folded in Remy Card's changes to add a
1712         revision level to the superblock.
1713
1714 Sun Aug 21 00:50:08 1994  Theodore Y. Ts'o  (tytso@rt-11)
1715
1716         * ext2fs.h:
1717         * bitmaps.c:
1718         * bitops.c
1719         * bitops.h:
1720         * openfs.c:
1721         * initialize.c: Completely revamped the inode and block bitmap
1722         structures, so that they can be better chance of being extensible
1723         in a shared library.  They are now their own type, instead of
1724         being a char *.  Also, the function signatures of
1725         ext2fs_test_block_bitmap, ext2fs_mark_block_bitmap,
1726         ext2fs_unmark_block_bitmap, ext2fs_test_inode_bitmap,
1727         ext2fs_mark_inode_bitmap, and ext2fs_unmark_inode_bitmap were
1728         changed to eliminate the ext2_filsys argument, since it is no
1729         longer necessary.
1730
1731 Wed Aug 17 21:46:44 1994  Remy Card  (card@bbj)
1732
1733         * unix_io.c (unix_read_blk and unix_write_blk): use the llseek
1734         system call if available.
1735
1736         * llseek.c: new file.  This is the stub calling the llseek system
1737         call which allows supports for 2GB+ file systems.
1738
1739         * initialize.c (ext2fs_initialize): Ext2fs_initialize now stores
1740         the creator operating system.
1741
1742 Wed Aug 17 10:03:24 1994  Theodore Y. Ts'o  (tytso@rt-11)
1743
1744         * initialize.c (ext2fs_initialize): Ext2fs_initialize now sets up
1745         the group descriptor statistics in addition to everything else.
1746         This relieves mke2fs of the responsibility of doing it.
1747
1748         * bitops.c, bitops.h: Add assembly inline functions for the 68000.
1749         Added a new #define, _EXT2_HAVE_ASM_BITOPS_ to control whether or
1750         not the generic C function equivalents should be included or not.
1751
1752         * openfs.c (ext2fs_open): If a superblock is specified, then use
1753         the backup group descriptors that go along with this superblock,
1754         instead of using the primary group descriptors.  This allows
1755         e2fsck to recover filesystems where the primary group descriptors
1756         have been trashed.
1757
1758