Whamcloud - gitweb
454a00fbfa0fbaffbccab2f2bcc0abbc3a8f3839
[tools/e2fsprogs.git] / lib / ext2fs / ChangeLog
1 1998-02-20  Theodore Y. Ts'o  <tytso@edt.mit.edu>
2
3         * getsize.c, ismounted.c, unix_io.c: #include errno.h since it's
4                 needed.
5
6 Mon Feb 16 16:16:00 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
7
8         * ext2_io.h, ext2fs.h: Protect against being included multiple times.
9
10         * bmove.c: #include ext2fsP.h instead of "ext2fs/ext2fs.h"
11
12         * test_io.c (test_flush): Add a debugging printf when the flush
13                 method is called.
14
15         * rw_bitmaps.c (ext2fs_read_bitmaps): If the bitmaps are already
16                 read in, return right away.
17
18 Sun Feb  1 08:20:24 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
19
20         * bitops.h: Don't try to do i386 inline asm functions if the
21                 compiler isn't GCC.
22
23         * ext2fs.h: If EXT2_FLAT_INCLUDES is defined, #include e2_types.h,
24                 instead of linux/types.h, and e2_bitops.h instead of
25                 ext2fs/bitops.h.
26
27         * icount.c, version.c: Don't #include <et/com_err.h>, as it isn't
28                 necessary. 
29
30 Sat Jan 17 13:13:31 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
31
32         * inode.c (ext2fs_open_inode_scan): Initialize the group variables
33                 so that we don't need to call get_next_blockgroup() the
34                 first time around.  Saves a bit of time, and prevents us
35                 from needing to assign -1 to current_group (which is an
36                 unsigned value).
37
38         * icount.c (insert_icount_el): Cast the estimated number of inodes
39                 from a float to an ino_t.
40
41         * alloc.c, alloc_tables.c, badlbocks.c, bb_compat.c, bb_inode.c,
42                 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
43                 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
44                 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
45                 expanddir.c, ext2fs.h, fileio.c, freefs.c,
46                 get_pathname.c, getsize.c, icount.c, initialize.c,
47                 inline.c, inode.c, irel_ma.c, ismounted.c, link.c,
48                 lookup.c, mkdir.c, namei.c, native.c, newdir.c,
49                 openfs.c, read_bb.c, read_bb_file.c, rs_bitmap.c,
50                 rw_bitmaps.c, swapfs.c, test_io.c, tst_badblocks.c,
51                 tst_getsize.c, tst_iscan.c, unix_io.c, unlink.c,
52                 valid_blk.c, version.c: If EXT2_FLAT_INCLUDES is
53                 defined, then assume all of the
54                 ext2-specific header files are in a flat directory.
55
56         * block.c, bmove.c, dirblock.c, fileio.c: Explicitly cast
57                 all assignments from void * to be compatible with C++.
58
59 Tue Jan  6 11:28:15 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
60
61         * closefs.c (ext2fs_flush): Add a call to io_channel_flush() to
62                 make sure the contents of the disk are flushed to disk.
63
64 Mon Dec 29 14:39:13 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
65
66         * dblist.c (ext2fs_add_dir_block): Change new to be new_entry to
67                 avoid C++ namespace clash.
68
69         * bitmaps.c (ext2fs_copy_bitmap): Change new to be new_map to
70                 avoid C++ namespace clash.
71
72         * ext2fs.h, bb_inode.c, block.c, bmove.c, brel.h, brel_ma.c,
73                 irel.h, irel_ma.c, dblist.c, dblist_dir.c, dir_iterate.c,
74                 ext2fsP.h, expanddir.c, get_pathname.c, inode.c, link.c,
75                 unlink.c: Change private to be priv_data (to avoid C++
76                 namespace clash)
77
78 Fri Nov 28 09:26:31 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
79
80         * dblist.c (ext2fs_get_num_dirs): Make ext2fs_get_num_dirs more
81                 paranoid about validating the directory counts from the
82                 block group information.
83
84         * all files: Don't include stdlib.h anymore; include it in
85                 ext2_fs.h, since that file requires stdlib.h
86
87 Thu Nov 20 16:07:38 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
88
89         * expanddir.c (ext2fs_expand_dir): Check to make sure the block
90                 bitmap is loaded, and return an error if it is not.
91                 (expand_dir_proc): Only use ext2fs_write_dir_block when
92                 writing a directory block, not when writing out a fresh
93                 indirect block.
94
95 Tue Nov 11 22:46:45 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
96
97         * Makefile.in, tst_getsize.c: Added new file which is used to test
98                 the ext2fs_get_device_size function.
99
100         * ext2_err.et.in (EXT2_ET_UNIMPLEMENTED): Added new error code.
101
102 Sun Nov  2 20:36:13 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
103
104         * ext2fs.h: Make ext2fs_get_mem take an unsigned argument.
105
106         * fileio.c (ext2fs_file_get_size, ext2fs_file_set_size,
107                 ext2fs_file_get_fs): New functions added.
108
109
110 Fri Oct 31 12:16:52 1997    <tytso@EDT.MIT.EDU>
111
112         * bitops.c (ext2fs_warn_bitmap, ext2fs_warn_bitmap2): Don't call
113                 com_err if OMIT_COM_ERR is defined.
114
115 Thu Oct 30 11:33:57 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
116
117         * Rename new error codes to _ET_ in them for consistency.
118
119 Sat Oct 25 00:06:58 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
120
121         * [all files, basically]: Added definition of ext2fs_get_mem, 
122                 ext2fs_free_mem, and ext2fs_resize_mem in ext2fs.h, and
123                 changed all library routines to use these wrapper functions.
124
125         * dblist.c, mkdir.c: use EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND
126                 instead of the system error messages.
127         
128         * ext2_err.et.in: Added new error messages EXT2_DIR_EXISTS and
129                 EXT2_DB_NOT_FOUND
130
131         * ext2fs.h: Added function declarations and constants for bmap.c
132                 and fileio.c.
133
134         * ext2_err.et.in: Added new error messages EXT2_FILE_RO and
135                 EXT2_ET_MAGIC_EXT2_FILE
136
137         * Makefile.in: Added files bmap.c and fileio.c, and temporarily
138                 commented out brel_ma.c and irel_ma.c
139
140         * bmap.c: New file which maps a file's logical block number to its
141                 physical block number.
142
143         * fileio.c: New file which implements simple file reading and
144                 writing primitives.
145
146         * alloc.c (ext2fs_alloc_block): New function which allocates a
147                 block, zeros it, and updates the filesystem accounting
148                 records appropriately.
149
150 Wed Oct 22 16:47:27 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
151
152         * ext2_err.et.in: Added new error codes: EXT2_NO_MEMORY,
153                 EXT2_INVALID_ARGUMENT, EXT2_BLOCK_ALLOC_FAIL,
154                 EXT2_INODE_ALLOC_FAIL, EXT2_NOT_DIRECTORY
155
156         * Change various library files to use these functions instead of
157                 EINVAL, ENOENT, etc.
158
159 Mon Oct 20 19:32:40 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
160
161         * llseek.c: Check HAVE_LLSEEK_PROTOTYPE to see whether or not we
162                 need to declare llseek().
163
164 Sun Oct 19 18:56:22 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
165
166         * Rename io.h to be ext2_io.h (avoid namespace collisions)
167
168         * Add #ifdef's for HAVE_SYS_STAT_H and HAVE_SYS_TYPES_H
169
170 Fri Oct  3 13:35:59 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
171
172         * llseek.c (ext2fs_llseek): Fix type error for ext2fs_llseek()
173
174         * icount.c (ext2fs_icount_validate): 
175         * bmove.c (process_block): Fix lint error in type for fprintf().
176
177 Mon Sep 15 11:45:09 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
178
179         * inode.c (ext2fs_check_directory): Add support for the callback
180                 to return the error code EXT2_ET_CALLBACK_NOTHANDLED.
181
182 Thu Sep  4 12:28:22 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
183
184         * bitmaps.c (ext2fs_set_bitmap_padding): New function which sets the
185                 padding of the bitmap to be all one's.
186
187 Wed Sep  3 14:27:30 1997  Theodore Y. Ts'o  <tytso@edt.mit.edu>
188
189         * llseek.c: Added missing semicolon to glibc fixup declaration of
190         llseek().
191
192         * bmove.c: Add #include of errno.h
193
194 Sat Aug 23 22:47:46 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
195
196         * Makefile.in (ELF_SO_VERSION): Bump version to be 2.4 since we've
197                 added a new field to the io_channel (app_data).
198
199         * io.h: Add a new element to the io_channel structure, app_data.
200
201         * initialize.c, openfs.c: Set io->app_data to point at the
202                 filesystem handle.
203
204 Thu Aug 14 08:14:17 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
205
206         * io.h: Change the prototype of ext2fs_llseek() to use int's
207                 instead of unsigned int's.
208
209         * llseek.c: Change to allow PIC and !HAVE_LLSEEK.  Add a prototype
210                 to make life easer for GNU Libc 2.
211
212         * rw_bitmaps.c: On the PowerPC, the big-endian variant of the ext2
213                 filesystem has its bitmaps stored as 32-bit words with bit
214                 0 as the LSB of each word.  Thus a bitmap with only bit 0
215                 set would be, as a string of bytes, 00 00 00 01 00 ...  To
216                 cope with this, we byte-reverse each word of a bitmap if
217                 we have a big-endian filesystem, that is, if we are *not*
218                 byte-swapping other word-sized numbers.
219
220 Mon Aug 11 03:30:48 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
221
222         * dosio.c: New file to do DOS/BIOS disk accesses.
223
224         * namei.c (open_namei): Make pathlen be of type size_t.
225
226         * llseek.c: Always #include stdlib.h since it's need to define
227                 size_t.  
228
229         * io.h: Use errcode_t for magic numbers.
230
231         * icount.c (get_icount_el): Use size_t where appropriate
232         
233         * dupfs.c (ext2fs_dup_handle): 
234         * dblist.c (dir_block_cmp): Use size_t where appropriate.
235
236         * read_bb.c (ext2fs_read_bb_inode): 
237         * cmp_bitmaps.c (ext2fs_compare_inode_bitmap): Use blk_t, ino_t
238                 and size_t where appropriate.
239
240         * closefs.c (ext2fs_flush): Use dgrp_t instead of int where
241                 appropriate.
242
243         * openfs.c (ext2fs_open): 
244         * check_desc.c (ext2fs_check_desc): Use blk_t instead of int where
245                 appropriate.
246
247         * rw_bitmaps.c (read_bitmaps): 
248         * irel_ma.c: 
249         * inode.c (ext2fs_write_inode): 
250         * initialize.c (ext2fs_initialize):
251         * brel_ma.c: Fix to make be 16-bit safe.
252
253         * link.c (ext2fs_link): 
254         * unlink.c (ext2fs_unlink):
255         * lookup.c (lookup_proc): 
256         * ismounted.c (ext2fs_check_if_mounted): 
257         * block.c (xlate_func): Add #pragma argsused for Turbo C.
258
259 Sun Aug 10 10:05:22 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
260
261         * block.c (ext2fs_block_iterate2): Use retval which is a errcode_t
262                 type.
263
264         * bitmaps.c (make_bitmap): Use size_t instead of int where
265                 appropriate.
266
267         * bb_inode.c (set_bad_block_proc): Add #pragma argsused for Turbo C.
268
269         * alloc.c (ext2fs_new_inode): Use ino_t instead of int for the
270                 group number.
271
272         * get_pathname.c: Use ino_t instead of int where appropriate.
273
274         * ext2fs.h: Make the magic structure element be errcode_t instead
275                 of int.
276
277         * alloc.c alloc_tables.c badblocks.c bb_compat.c bb_inode.c
278                 bitmaps.c block.c bmove.c brel_ma.c check_desc.c closefs.c
279                 cmp_bitmaps.c dblist.c dblist_dir.c dir_iterate.c
280                 dirblock.c dupfs.c expanddir.c freefs.c get_pathname.c
281                 icount.c initialize.c inline.c inode.c irel_ma.c link.c
282                 llseek.c lookup.c mkdir.c namei.c newdir.c read_bb.c
283                 read_bb_file.c rs_bitmap.c rw_bitmaps.c swapfs.c 
284                 test_io.c tst_badblocks.c tst_iscan.c unix_io.c unlink.c
285                 valid_blk.c version.c: Add an #ifdef for HAVE_UNISTD_H
286
287 Tue Jun 17 01:33:20 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
288
289         * unix_io.c (unix_read_blk): If ext2fs_llseek() fails, but errno
290                 is zero, then return EXT2_IO_LLSEEK_FAILED.
291
292         * ext2_err.et.in: Add a new error code, EXT2_IO_LLSEEK_FAILED.
293
294         * Release of E2fsprogs 1.11
295
296 Mon Jun 16 23:53:06 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
297
298         * dblist.c (ext2fs_dblist_count): Added new function which returns
299                 the number of directory blocks in dblist.
300
301 Sat Jun 14 01:39:13 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
302
303         * unix_io.c (unix_flush): Make the io_channel flush function do a
304                 fsync to flush the kernel buffers to disk.
305
306 Wed Jun 11 18:25:31 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
307
308         * inode.c (ext2fs_inode_scan_goto_blockgroup): Fix bug; the
309                 current inode number wasn't being set by the
310                 goto_blockgroup function.
311
312 Mon Jun  9 10:45:48 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
313
314         * bmove.c (ext2fs_move_blocks): New function which takes a bitmap
315                 of blocks which need to be moved, and moves those blocks
316                 to another location in the filesystem.
317
318         * rs_bitmap.c (ext2fs_resize_generic_bitmap): When expanding a
319                 bitmap, make sure all of the new parts of the bitmap are
320                 zero. 
321
322 Sun Jun  8 16:24:39 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
323
324         * bitmaps.c (ext2fs_copy_bitmap): Fix bug; the destination bitmap
325                 wasn't being returned to the caller.
326
327         * alloc_tables.c (ext2fs_allocate_group_table): Add new function
328                 ext2fs_allocate_group_table() which sets the group tables
329                 for a particular block group.  The relevant code was
330                 factored out of ext2fs_allocate_tables().
331
332         * dblist.c (make_dblist): Adjust the initial size of the directory
333                 block list to be a bit more realistic (ten plus twice the
334                 number of directories in the filesystem).
335
336 Thu May  8 22:19:09 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
337
338         * badblocks.c (ext2fs_badblocks_list_test): Fix bug where
339                 ext2fs_badblocks_list_test would test the list (and exceed
340                 array boundaries) if there were no bad blocks on the bad
341                 blocks list.  (Showed up when user tried: mke2fs -c -b 4096).
342
343 Thu Apr 24 12:16:42 1997  Theodre Ts'o  <tytso@localhost.mit.edu>
344
345         * Release of E2fsprogs version 1.10
346
347 Thu Apr 24 10:13:42 1997  Theodre Ts'o  <tytso@localhost.mit.edu>
348
349         * alloc_tables.c (ext2fs_allocate_tables): Correctly place the
350                 inode and block bitmaps based on the RAID 0 stride
351                 parameter (which is passed by mke2fs).
352
353         * ext2fs.h: Add "stride" parameter to ext2_filsys, to be used by
354                 mke2fs to communicate the stride length to
355                 ext2fs_allocate_tables()
356
357 Wed Apr 23 21:50:42 1997  Theodre Ts'o  <tytso@localhost.mit.edu>
358
359         * initialize.c (ext2fs_initialize): Fix to compile under Linux 1.2
360                 systems.  (We can't assume that the new filesystem types
361                 are supported.)
362
363 Wed Apr 23 18:40:53 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
364
365         * alloc_tables.c (ext2fs_allocate_tables): Make sure that we
366                 allocate the inode and block bitmaps inside block group at
367                 all times.
368
369 Mon Apr 21 00:06:28 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
370
371         * alloc.c (ext2fs_new_block): Fix bug where if goal==0 and the
372                 filesystem has no free blocks, ext2fs_new_block would loop
373                 forever.
374
375         * dupfs.c (ext2fs_dup_handle): Duplicate an ext2 filesystem handle
376
377         * freefs.c (ext2fs_free_inode_cache): Decrement refcount and only
378                 free if refcount goes to zero.
379
380         * inode.c (create_icache): Initialize refcount to 1.
381
382         * ext2fsP.h: Added refcount to ext2_inode_cache
383
384         * dblist.c (ext2fs_copy_dblist): New function to copy a directory
385                 block list.
386
387         * badblocks.c (ext2fs_badblocks_copy): New function to copy a
388                 badblocks structure.
389
390 Sun Apr 20 23:19:51 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
391
392         * bitmaps.c (ext2fs_copy_bitmap): New function to copy a bitmap.
393
394         * unix_io.c, test_io.c (unix_open, test_open): Initialize the
395                 refcount to 1.
396                 (unix_close, test_close): Decrement the refcount and only
397                 close the io_channel if the refcount goes to 0.
398
399         * io.h: Add refcount to the io_channel structure.  Add new macro
400                 interface io_channel_bumpcount() to bump the refcount.
401
402 Thu Apr 17 20:25:03 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
403
404         * inode.c (ext2fs_read_inode, ext2fs_write_inode): Use the inode
405                 cache in the filesystem handle, instead of the inode cache
406                 in a static variable.
407
408         * freefs.c: Added static function to free the inode cache (called by
409                 ext2fs_free). 
410
411         * ext2fsP.h: Added definition of the ext2_inode_cache structures.
412
413         * ext2fs.h: Added pointer to the inode_cache structure.
414
415         * block.c (block_iterate_ind, block_iterate_dind, 
416                 block_iterate_tind): If there are holes in the indirect,
417                 doubly indirect, or triply indirect blocks, increment the
418                 block count field automatically.
419
420 Thu Apr 17 12:23:38 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
421
422         * Release of E2fsprogs version 1.09
423
424 Mon Apr 14 20:38:56 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
425
426         * version.c (ext2fs_parse_version_string): Check the passed in
427                 version string (instead of the hard-coded one).
428
429         * alloc_tables.c (ext2fs_allocate_tables): If the last block is
430                 greater filesystem size, clamp it to prevent allocating a
431                 block or inode bitmap beyond the filesystem.
432
433         * initialize.c (ext2fs_initialize): Fix bug where the metatdata
434                 overhead calculation was accidentally removed.
435
436 Fri Apr 11 18:56:26 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
437
438         * Release of E2fsprogs version 1.08
439
440 Thu Apr 10 13:15:15 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
441
442         * dblist.c (ext2fs_set_dir_block): New function which sets the
443                 block of a dblist entry, given the directory inode and
444                 blockcnt.
445
446 Sat Apr  5 12:42:42 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
447
448         * alloc_tables.c (ext2fs_allocate_tables): Allocate the bitmap and
449                 inode bitmaps at staggered locations across the block
450                 groups, to avoid concentrating the bitmaps on a small
451                 number of disks when using striped RAID arrays.
452
453         * initialize.c (ext2fs_initialize): By default, choose the maximum
454                 possible number of blocks per group (based on the size of
455                 the bitmaps in the blocksize).
456
457 Fri Apr  4 11:28:16 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
458
459         * initialize.c (ext2fs_initialize): Add support for
460                 EXT2_COMPAT_SPARSE_SUPER feature.
461
462         * closefs.c (ext2fs_bg_has_super): New function to determine
463                 whether or a particular block group should have a
464                 superblock and block group descriptor.  Used for the
465                 EXT2_COMPAT_SPARSE_SUPER feature is turned on.
466                 (ext2fs_flush):  Check ext2fs_bg_has_super to see whether
467                 or not the superblock should be written out for the block
468                 group. 
469
470         * ext2fs.h (EXT2_COMPAT_SPARSE_SUPER): Define compatibility flag
471                 for sparse duplicate superblocks.
472
473         * version.c (ext2fs_get_library_version): New function which
474                 returns the library version.
475
476         * version.c (ext2fs_parse_version_string): New function which
477                 parses a version string and returns a version number,
478                 so application programs can compare version numbers as
479                 integers.
480
481 Wed Mar 26 00:43:52 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
482
483         * icount.c (ext2fs_create_icount): Change function so that it also
484                 takes a new argument which contains a "hint" icount
485                 structure.  This "hint" icount allows the create function
486                 to set up the sorted list in advance.  This reduces
487                 significantly the amount of data moving needed to insert
488                 these inodes into the list later.
489         
490         * icount.c (ext2fs_icount_validate): New function which validates
491                 that the icount structure's rep invariant.
492
493         * icount.c (get_icount_el): Completely revamped implementation
494                 to subsume put_icount_el().  Put_icount_el() used to
495                 use an O(N) implementation to insert in the middle
496                 of the icount list.  It now uses a O(ln N) to search
497                 for where the icount should be inserted, and then uses
498                 a memcpy to move the list down (instead of a for loop).
499         
500         * icount.c (ext2fs_icount_fetch, ext2fs_icount_store,
501                 ext2fs_icount_increment, ext2fs_icount_decrement): Check
502                 to see if the inode is within bounds; if it isn't, return
503                 EINVAL.
504
505         * bitops.h (ext2fs_test_generic_bitmap): Fix error message given
506                 when a bad inode number is passed to test_generic_bitmap
507                 to be EXT2FS_TEST_ERROR instead of the wrong
508                 EXT2FS_UNMARK_ERROR.
509
510 Wed Mar 12 13:32:05 1997  Theodore Y. Ts'o  <tytso@mit.edu>
511
512         * Release of E2fsprogs version 1.07
513
514 Sun Mar  2 16:46:18 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
515
516         * Makefile.in (ELF_VERSION): Change version to be 2.2
517
518 Tue Feb 11 14:54:02 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
519
520         * alloc.c (ext2fs_get_free_blocks): Change routine to use
521                 ext2fs_fast_test_block_bitmap_range().
522
523         * bitops.h (ext2fs_fast_test_block_bitmap_range,
524                 ext2fs_test_block_bitmap_range: New inline functions which
525                 test to see whether a contiguous range of blocks is
526                 available.
527
528 Thu Feb  6 10:00:13 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
529
530         * badblocks.c (ext2fs_badblocks_list_create): Rename sybmols to use
531                 use ext2fs_badblocks_* instead of badblocks_*
532
533         * bb_compat.c: New file which translates between old badblocks_*()
534                 names to ext2fs_badblocks_*()
535
536         * unlink.c (ext2fs_unlink): New file, moved ext2fs_unlink() from
537                 link.c (since e2fsck doesn't use ext2fs_unlink()).
538
539         * rs_bitmap.c (ext2fs_resize_generic_bitmap): New file, contains
540                 bitmap resizing routine moved from bitmaps.c, since e2fsck
541                 doesn't need to use this function.
542
543         * lookup.c (ext2fs_lookup): Moved ext2fs_lookup to its own file,
544                 since e2fsck only needs ext2fs_lookup.
545
546 Mon Feb  3 10:11:40 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
547
548         * inode.c (ext2fs_open_inode_scan): Set fs->badblocks if it is not
549                 already set; this is needed so that programs like dump
550                 which use the inode scan functions will deal with
551                 filesystems that have bad blocks in the inode table.
552
553 Sun Feb  2 00:17:36 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
554
555         * ext2fs.h (struct_badblocks_list, struct_badblocks_iterate): 
556                 Moved to ext2fsP.h, since it doesn't need to be part of
557                 the public interface.
558
559         * dir_iterate.c: Move ext2_dir_iterate out of namei.c.
560
561 Sat Feb  1 10:14:55 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
562
563         * dblist.c (ext2fs_get_num_dirs): New file, which implements a
564                 directory block list abstraction.  (Code moved from
565                 e2fsck).
566
567         * ext2fs.h, inode.c: Moved definition of ext2_struct_inode_scan to
568                 to inode.c (since no one else should be peeking inside it!)
569
570         * valid_blk.c (ext2_inode_has_valid_blocks): New function.
571
572         * openfs.c (ext2fs_open): Check the feature set in the ext2
573                 superblock, and refuse to open filesystems if they contain
574                 incompatible features.  (Can be overriden with the
575                 EXT2_FLAG_FORCE 
576
577 Sun Jan 12 11:31:46 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
578
579         * block.c (ext2fs_block_iterate2): Added new function
580                 ext2fs_block_iterate2 which changes the function
581                 signature of the callback function to include the
582                 referencing block and offset.
583
584         * inode.c (ext2fs_inode_scan_goto_blockgroup): Added new function
585                 ext2fs_inode_scan_goto_blockgroup which allows an
586                 application to jump to a particular block group while
587                 doing an inode scan.
588
589 Wed Jan  1 23:50:12 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
590
591         * dirblock.c: Include string.h, since we use memcpy().
592
593 Tue Dec  3 12:27:29 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
594
595         * getsize.c (ext2fs_get_device_size): The ioctl BLKGETSIZE returns
596                 a long not an int; this doesn't matter on i386 machines,
597                 but it does on Alpha's.
598         
599 Fri Nov 29 20:57:37 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
600
601         * inode.c (ext2fs_write_inode, ext2fs_read_inode): If the inode
602                 table pointer is NULL, then return an error indicating
603                 that the inode table is missing.
604                 (get_next_blockgroup, get_next_blocks,
605                 ext2fs_get_next_inode): Don't treat a missing inode table
606                 as permanent error.  Return MISSING_INODE_TABLE, but as an
607                 advisory error code, much like BAD_BLOCK_IN_INODE_TABLE.
608
609         * rw_bitmaps.c (ext2fs_write_block_bitmap,
610                 ext2fs_write_inode_bitmap): If the inode or block bitmap
611                 block is zero, then don't write out the inode or block
612                 bitmap.  The idea here is to avoid stomping on the
613                 superblock.
614                 (read_bitmaps): If the inode or block bitmap block is
615                 zero, then fill in that portion of the inode or block
616                 bitmap with all zeros.
617
618         * inode.c (ext2fs_get_next_inode): Fix bug in handling of bad
619                 blocks in inode table when the inode table size is
620                 non-standard (and can therefore span blocks).
621
622 Tue Oct 29 20:13:14 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
623
624         * alloc.c (ext2fs_new_block): Fix fencepost error in
625                 ext2fs_new_block; make sure we don't try to allocate the
626                 first block beyond the end of the filesystem.
627
628 Mon Oct 14 11:00:48 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
629
630         * inode.c (check_for_inode_bad_blocks): New function called by
631                 get_next_blocks() to avoid reading in bad blocks marked in
632                 fs->badblocks.  Inodes located in bad blocks are returned
633                 by ext2fs_get_next_inode() returns the error code 
634                 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE.
635         
636         * alloc_tables.c (ext2fs_allocate_tables): New function which
637                 performs the part of mke2fs's job of allocating the 
638                 filesystem tables.
639
640         * test_io.c (test_close): IO manager which is used for testing
641                 purposes.
642
643 Sun Oct 13 04:31:57 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
644
645         * inode.c (ext2fs_get_next_inode): Separate out the function of
646                 setting up for a new block group to get_next_blockgroup().
647                 Separate out the function of reading in blocks of the
648                 inode table to get_next_blocks().
649
650         * ext2fs.h: Add the badblocks list to the ext2_filsys entry
651
652         * badblocks.c (badblocks_list_add, badblocks_list_test): Add
653                 blocks to the badblock list in sorted order.  This allows
654                 badblocks_list_test to be coded using a binary search for
655                 speed.
656
657 Tue Oct  8 02:02:03 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
658
659         * Release of E2fsprogs version 1.06
660
661 Mon Oct  7 00:44:17 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
662
663         * ext2fs.h, block.c, closefs.c, dirblock.c, inode.c, native.c,
664                 open.c: Change EXT2_SWAP to EXT2_FLAG_SWAP for
665                 consistency's sake.
666         
667         * closefs.c (ext2fs_flush): If the flag EXT2_MASTER_SB_ONLY is
668                 set, then only write out the master superblock.
669
670 Sun Oct  6 21:45:26 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
671
672         * block.c (ext2fs_block_iterate): Fixed bug which caused
673                 block_iterate to fail to handle HURD created filesystems;
674                 it tested the inode translator field before the inode was
675                 loaded.
676
677 Tue Sep 17 14:08:24 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
678
679         * initialize.c (ext2fs_initialize): Make sure the description for
680                 the inode bitmap is set correctly.
681
682         * bitmaps.c (ext2fs_allocate_generic_bitmap): Fix minor type typo.
683
684 Thu Sep 12 15:23:07 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
685
686         * Release of E2fsprogs version 1.05
687
688 Sat Sep  7 07:36:03 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
689
690         * initialize.c: Override the kernel's idea of default
691                 checkinterval from 0 (never) to 180 days.
692
693 Wed Aug 28 03:20:03 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
694
695         * namei.c (ext2fs_namei_follow): New function which follows
696                 symbolic link (if any) at the target.
697
698 Tue Aug 27 01:48:43 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
699
700         * inode.c (ext2fs_read_inode, ext2fs_write_inode): Add support
701                 for shortcut function fs->read_inode() and fs->write_inode().
702                 Added inode_cache to reduce CPU time spent in doing
703                 byte swapping.
704
705         * swapfs.c (ext2fs_swap_super): Swap the new fields in a V2
706                 superblock.
707
708         * namei.c (ext2fs_follow_link): New function.
709                 (ext2fs_namei): Extended to have support for chasing
710                 symbolic links.  ext2fs_namei() still returns an inode
711                 which is a symbolic link.  Symbolic links are only chased
712                 while resolving the containing directory.  To chase
713                 symbolic links of the final result, use
714                 ext2fs_follow_link().
715
716 Mon Aug 26 23:46:07 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
717
718         * ext2_err.et.in: Added new error code EXT2_ET_SYMLINK_LOOP.
719
720         * bitops.h (ext2fs_set_bit, ext2fs_celar_bit): Use asm inlines
721                 provided by Pete A. Zaitcev (zaitcev@lab.sun.mcst.ru).
722
723 Thu Aug 22 00:40:18 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
724
725         * initialize.c (ext2fs_initialize): On systems where the byte
726                 order is not i386 compatible, set the swap_byte flag.
727
728         * inode.c (inocpy_with_swap): Check to see if inode contains a
729                 fast symlink before swapping the inode block fields.  This
730                 required adding a new argument to inocpy_with_swap to
731                 determine whether the mode field is in host order or not.
732
733 Wed Aug 21 00:45:42 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
734
735         * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit): On
736                 the sparc, if EXT2_STD_BITOPS set, use the standard
737                 i386-compatible bitmask operations, instead on the
738                 non-standard native bitmask operators.
739
740 Fri Aug  9 11:11:35 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
741
742         * block.c (ext2fs_block_iterate): Cause block iterator to return
743                 the HURD translator block (along with everything else).
744                 If the flag BLOCK_FLAG_DATA_ONLY is passed to the block
745                 iterator, then don't return any meta data blocks
746                 (including the HURD translator).
747
748 Wed Jul 17 17:13:34 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
749
750         * gen_uuid.c: New file, which generates DCE-compatible UUIDs.
751
752         * uuid.c: New file, containing UUID utility functions.
753
754 Tue Jul 16 10:19:16 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
755
756         * ext2fs.h: Add a definition of the "real" ext2 superblock.
757
758 Fri May 24 14:54:55 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
759
760         * ext2fs.h: Fix erroneous ino_t type used in block_bitmap type.
761
762 Sun May 19 15:39:03 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
763
764         * openfs.c (ext2fs_open): If the blocksize in the superblock is
765                 zero, return the error EXT2_ET_CORRUPT_SUPERBLOCK, since
766                 that's a basic value that must be correct for the rest of
767                 the library to work.
768
769         * ext2_err.et.in (EXT2_ET_CORRUPT_SUPERBLOCK): Added new error
770                 code.
771
772 Thu May 16 11:12:30 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
773
774         * Release of E2fsprogs version 1.04
775
776 Wed Mar 27 00:33:40 1996    <tytso@rsts-11.mit.edu>
777
778         * Release of E2fsprogs version 1.03
779
780 Tue Mar 26 12:06:32 1996    <tytso@rsts-11.mit.edu>
781
782         * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit):
783                 Change the m68k bit numbering for bitmasks to match with
784                 the bit numbering used by all other ext2 implementations.
785
786 Thu Mar  7 03:37:00 1996    <tytso@rsts-11.mit.edu>
787
788         * inode.c (ext2fs_get_next_inode, ext2fs_close_inode_scan, 
789         ext2fs_open_inode_scan): Support dynamically-sized inodes.
790
791 Wed Mar  6 12:26:29 1996    <tytso@rsts-11.mit.edu>
792
793         * inode.c (ext2fs_read_inode, ext2fs_write_inode): Support
794                 dynamically-sized inodes.
795
796         * openfs.c (ext2fs_open): Allow dynamic revision filesystem to be
797                 loaded.
798
799 Tue Mar  5 03:49:37 1996    <tytso@rsts-11.mit.edu>
800
801         * initialize.c (ext2fs_initialize): Catch an error condition where
802                 the passed in size is *really* too small.
803
804         * alloc.c (ext2fs_new_inode): 
805         * ext2fs.h (EXT2_FIRST_INODE): Add support for dynamic revision to
806                 get first inode.
807
808 Wed Feb 21 15:56:17 1996    <tytso@rsts-11.mit.edu>
809
810         * getsize.c (ext2fs_get_device_size): Open the device read-only
811                 when trying to determine its size.
812
813 Wed Jan 31 11:06:08 1996    <tytso@rsts-11.mit.edu>
814
815         * Release of E2fsprogs version 1.02
816
817 Sat Dec  9 09:57:50 1995    <tytso@rsts-11.mit.edu>
818
819         * rw_bitops.c (ext2fs_write_block_bitmap):
820         * bitops.c (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
821         * bitops.h (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
822                 Rename {test,set,clear}_bit to ext2fs_{test,set,clear}_bit, 
823                 to avoid conflicts with with kernel include files.  Also
824                 rename ADDR and CONST_ADDR to EXT2FS_ADDR and
825                 EXT2FS_CONST_ADDR. 
826
827 Thu Oct 26 12:09:16 1995    <tytso@rsts-11.mit.edu>
828
829         * ext2_err.et: Updated message in EXT2_ET_BASE to say version 0.5c
830
831         * swapfs.c (ext2fs_swap_super): Put an #ifdef check around
832                 s_def_resuid and s_def_resgid for backwards compatibility.
833
834 Fri Oct 20 23:33:31 1995    <tytso@rsts-11.mit.edu>
835
836         * bitops.h: Added #ifdef's for Sparc.
837
838 Wed Sep  6 22:14:46 1995    <tytso@rsts-11.mit.edu>
839
840         * getsize.c: #include <sys/ioctl.h> under Linux to pick up ioctl()
841                 declaration
842
843         * closefs.c: #include <string.h> to pick up memset() declaration
844
845 Mon Sep  4 21:45:29 1995  Remy Card  <card@bbj>
846
847         * Makefile.in: Added support for BSD shared libraries.
848
849         * initialize.c (ext2fs_initialize): Correctly set the s_creator_os
850                 flag.
851
852 Mon Sep  4 09:55:30 1995    <tytso@rsts-11.mit.edu>
853
854         * unix_io.c (unix_open): Add a double check; if the passed in name
855                 is NULL, return EXT2_ET_BAD_DEVICE_NAME.
856
857         * ext2_err.et (EXT2_ET_BAD_DEVICE_NAME): Added new error code
858
859 Wed Aug 16 15:44:10 1995    <tytso@rsts-11.mit.edu>
860
861         * inode.c (ext2fs_check_directory): Use LINUX_S_ISDIR instead of
862                 S_ISDIR.
863
864 Tue Aug 15 13:08:36 1995    <tytso@rsts-11.mit.edu>
865
866         * getsize.c (ext2fs_get_device_size): Add support for reading the
867                 partition size from a BSD disk label.
868
869 Thu Aug 10 09:33:26 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
870
871         * getsize.c (ext2fs_get_device_size): New function that determins
872                 the size of a device.  Used by mke2fs and e2fsck.
873
874 Sat Aug 12 03:09:54 1995  Remy Card  <card@bbj>
875
876         * Makefile.in (install): Install static libraries in $(ulibdir)
877                 (/usr/lib on Linux) instead of $(libdir) (/lib on Linux).
878
879 Wed Aug  9 17:04:23 1995  Theodore Y. Ts'o  <tytso@dcl>
880
881         * bitmaps.c (ext2fs_free_inode_bitmap, ext2fs_free_block_bitmap):
882                 Move these functions to freefs.c.
883
884         * closefs.c (ext2fs_flush): If swapping blocks, clear the group
885                 descriptors shadow memory to keep purify quiet.  (This
886                 also has the nice benefit that the unused portion of the
887                 shadow descriptors are zeroed out.)
888
889         * dirblock.c (ext2fs_write_dir_block): We need to use
890                 dirent->rec_len *before* it's byteswapped to find the
891                 location of the next directory structure!
892
893         * alloc.c (ext2fs_new_inode): Fix bug which could potentially
894                 cause ext2fs_new_inode to loop infinitely if we're trying
895                 to allocate an inode in group #0 and there are no free
896                 inodes at all in the system.
897
898         * closefs.c: #include <errno.h> if it exists.
899
900 Sun Aug  6 13:27:50 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
901
902         * ext2fs.h (BLOCK_FLAG_HOLE): Added new definition for
903                 BLOCK_FLAG_APPEND.  Added documentation for the block
904                 interator flags.
905
906 Sat Aug  5 11:44:05 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
907
908         * Makefile.in (DLL_INSTALL_DIR, ELF_INSTALL_DIR): Set the
909                 installation directories correctly.
910
911 Tue Jul 18 09:27:38 1995    <tytso@rsx-11.mit.edu>
912
913         * namei.c (process_dir_block): 
914         * mkdir.c (ext2fs_mkdir): 
915         * expanddir.c (expand_dir_proc): Use ext2fs_{read,write}_dir_block
916                 to read/write the directory block.
917
918         * dirblock.c (ext2fs_read_dir_block), ext2fs_write_dir_block): New
919                 file containing functions for reading and writing
920                 directory blocks (byte swapping if necesssary)
921
922         * block.c (block_iterate_ind, block_iterate_dind, 
923                 block_iterate_tind): Byte swap the block addresses if
924                 EXT2_SWAP_BYTES is set (and swap them back before writing
925                 them out.)
926
927         * inode.c (inocpy_with_swap): New function.
928         (ext2fs_get_next_inode, ext2fs_read_inode, ext2fs_write_inode):
929                 Call inocpy_with_swap if EXT2_SWAP_BYTES if set.
930
931         * closefs.c (ext2fs_flush): If EXT2_SWAP_BYTES is set, then swap
932                 the superblock and group descriptors before writing it out.
933
934         * openfs.c (ext2fs_open): If the magic number is byte-swapped,
935                 then set the EXT2_SWAP_BYTES and byte-swap the superblock
936                 and group descriptors.
937
938         * swapfs.c (ext2fs_swap_super, ext2fs_swap_group_desc): New functions
939                 to desp ext2 filesystem structures.
940
941         * bitops.c (set_bit, clear_bit, test_bit): Use modifications
942                 supplied by Pete A. Zaitcev so that the C language
943                 versions of these functions are more portable.  They will
944                 now work on both little and big endian systems, and the
945                 assumption that 32-bit integers are used is gone.
946
947         * bitops.h (ext2_swab16, ext2_swab32): Added new functions for
948                 doing byte swapping.
949
950         * ext2fs.h (EXT2_SWAP_BYTES): Add new flag which indicates that
951                 byte swapping should take place.
952
953 Sun Jul 16 06:21:43 1995    <tytso@rsx-11.mit.edu>
954
955         * Makefile.in, cmp_bitmaps.c (ext2fs_compare_block_bitmap_end,
956                 ext2fs_compare_inode_bitmap_end): Added new file
957                 containing routines to compare bitmaps.
958
959         * ext2_err.et (EXT2_ET_NEQ_BLOCK_BITMAP, EXT2_ET_NEQ_INODE_BITMAP): 
960                 Added new error codes.
961
962 Sat Jul 15 04:23:37 1995    <tytso@rsx-11.mit.edu>
963
964         * inode.c (ext2fs_get_next_inode): Don't check scan->inode_buffer;
965                 if the magic number is correct, it will be allocated.
966
967 Fri Jul 14 19:02:59 1995    <tytso@rsx-11.mit.edu>
968
969         * block.c (block_iterate_ind, block_iterate_dind, 
970                 block_iterate_tind): Don't recompute block_nr each loop;
971                 just increment it!  Factor check of BLOCK_FLAG_APPEND out
972                 of the loop.  Factor mask of BLOCK_CHANGED into changed
973                 variable out of the loop.  (block_iterate_ind, in
974                 particular, gets called a lot, so every little
975                 optimization helps.)
976
977 Thu Jul 13 08:02:45 1995    <tytso@rsx-11.mit.edu>
978
979         * block.c (block_iterate_ind, block_iterate_dind, 
980                 block_iterate_tind): Precompute limit of loop to speed up
981                 block_iterate_ind and company.
982
983         * bitops.h (ext2fs_fast_mark_block_bitmap, 
984                 ext2fs_fast_unmark_block_bitmap, ext2fs_fast_test_block_bitmap,
985                 ext2fs_fast_mark_inode_bitmap, ext2fs_fast_unmark_inode_bitmap,
986                 ext2fs_fast_test_inode_bitmap): Add fast version of these
987                 functions, which don't do range checking.
988
989         * bitops.h (ext2fs_get_block_bitmap_start, 
990                 ext2fs_get_inode_bitmap_start, ext2fs_get_block_bitmap_end,
991                 ext2fs_get_inode_bitmap_end): Add new accessor functions
992                 which return the start and end points of the bitmaps.
993
994 Tue Jul 11 18:59:41 1995    <tytso@rsx-11.mit.edu>
995
996         * llseek.c (ext2_llseek): If the offset is small enough, use lseek
997                 instead of llseek.  The errno if the offset is too large
998                 and lseek is not supported should be EINVAL, not -EINVAL.
999
1000 Thu Jun 15 23:43:02 1995  Remy Card  <card@bbj>
1001
1002         * Makefile.in: Added support for ELF shared libraries.
1003                 Fixed typos in the compilation rules.
1004                 (distclean): Added Makefile.
1005
1006         * llseek.c (llseek): New function, if llseek() does not exist in the
1007         C library.
1008         (ext2_llseek): Changed to call llseek().
1009
1010 Mon Jun 12 08:29:07 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
1011
1012         * ext2fs.h: Use __u32 to define blk_t, instead of unsigned long.
1013
1014 Sun Jun 11 15:02:54 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
1015
1016         * mkdir.c (ext2fs_mkdir): Use LINUX_S_IFDIR instead of S_IFDIR.
1017
1018         * ext2fs.h (LINUX_S_IFDIR): Define a linux specific versions of
1019                 the S_*, which are normally defined in <sys/stat.h>.  This
1020                 allows us to compile e2fsprogs on a non-Linux system,
1021                 which may have a different value for S_IFDIR.
1022
1023 Sat Jun 10 23:47:05 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
1024
1025         * bitops.c (clear_bit, set_bit): Remove calls to cli() and sti();
1026                 this is a user-mode application!
1027
1028 Thu Jun  8 13:13:22 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>
1029
1030         * llseek.c: Put the include of <linux/unistd.h> inside the #ifdef
1031         __linux__ so that non-linux systems won't see it.
1032
1033         * alloc.c: Include <errno.h> if possible.
1034         * badblocks.c: Ditto.
1035         * bb_inode.c: Ditto.
1036         * bitmaps.c: Ditto.
1037         * block.c: Ditto.
1038         * expanddir.c: Ditto.
1039         * get_pathname.c: Ditto.
1040         * initialize.c: Ditto.
1041         * inode.c: Ditto.
1042         * llseek.c: Ditto.
1043         * mkdir.c: Ditto.
1044         * namei.c: Ditto.
1045         * newdir.c: Ditto.
1046         * openfs.c: Ditto.
1047         * rw_bitmaps.c: Ditto.
1048         * unix_io.c: Ditto.
1049
1050         * Makefile.in: Rewritten to conform to GNU coding standards and
1051         support separate compilation directories.
1052
1053 Thu May 11 04:13:12 1995    <tytso@rsx-11.mit.edu>
1054
1055         * initialize.c (ext2fs_initialize): Don't allow more than one
1056                 bitmaps's worth of inodes in a group.
1057
1058 Sat Mar 11 14:07:11 1995  Theodore Y. Ts'o  <tytso@localhost>
1059
1060         * llseek.c (ext2_llseek): Added error checking to the llseek()
1061                 compat code to protect against overflow.  This only
1062                 applies to 1.0 and early 1.1 kernels, which don't support
1063                 the llseek() system call.
1064
1065 Thu Nov 24 16:29:00 1994  Theodore Y. Ts'o  (tytso@rt-11)
1066
1067         * unix_io.c (unix_open): Initialize the read_error and write_error
1068                 io_channel pointers to be null.
1069
1070         * bb_inode.c (clear_bad_block_proc): If an illegal block number is
1071                 found, clear it but don't try to update the filesystem
1072                 accounting information, since that's hopeless anyway.
1073
1074         * block.c (bloblock_iterate_ind, bloblock_iterate_dind,
1075         bloblock_iterate_tind): Check to see if the indirect blocks are
1076                 valid before trying to read them.
1077
1078         * ext2_err.et (EXT2_ET_BAD_IND_BLOCK, EX2_ET_BAD_DIND_BLOCK,
1079         EXT2_ET_BAD_TIND_BLOCK): Add new error codes.
1080
1081         * bitops.h (ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
1082         ext2fs_test_block_bitmap, ext2fs_mark_inode_bitmap,
1083         ext2fs_unmark_inode_bitmap, ext2fs_test_inode_bitmap):  If an
1084                 illegal block or inode number is passed in, return instead
1085                 of trying to test, set, or clear the bit.
1086
1087 Mon Nov  7 21:32:33 1994  Remy Card  <card@bbj>
1088
1089         * Makefile: Added a dummy install target in case shared libraries
1090                 are not built.
1091
1092 Mon Oct 24 14:11:44 1994    (tytso@rsx-11)
1093
1094         * bitmaps.c (ext2fs_allocate_block_bitmap): Fix calculation of how
1095                 the real last block of the bitmap should be calculated.
1096
1097 Wed Sep  7 10:05:36 1994    (tytso@rsx-11)
1098
1099         * bitmaps.c (ext2fs_fudge_inode_bitmap_end, 
1100                 ext2fs_fudge_block_bitmap_end, ext2fs_clear_inode_bitmap,
1101                 ext2fs_clear_block_bitmap, ext2fs_free_inode_bitmap,
1102                 ext2fs_free_block_bitmap): Add magic number checking for
1103                 the inode and block bitmaps.
1104
1105         * bitmaps.c (ext2fs_allocate_block_bitmap): Fix to set the correct
1106                 magic number for a block bitmap instead of an inode bitmap.
1107
1108         * inode.c (ext2fs_close_inode_scan, ext2fs_get_next_inode):  Add
1109                 magic number checking for the inode_scan structure.
1110
1111         * badblocks.c (badblocks_list_free, badblocks_list_add, 
1112                 badblocks_list_test, badblocks_list_iterate_begin,
1113                 badblocks_list_iterate, badblocks_list_iterate_end): Add
1114                 magic number checking for the badblocks_list and
1115                 badblocks_iterate structures.
1116
1117         * ext2_err.et (EXT2_ET_MAGIC_UNIX_IO_CHANNEL): 
1118         * unix_io.c (unix_open, unix_close, unix_set_blksize, unix_read_blk,
1119                 unix_write_blk, unix_flush): Add magic number checking
1120                 both for io_channel structure and unix_private_data
1121                 structure.
1122
1123         * openfs.c (ext2fs_open): Add check for io_manager structure's
1124                 magic number.
1125
1126         * rw_bitmaps.c (ext2fs_write_inode_bitmap, ext2fs_write_block_bitmap,
1127                 ext2fs_read_inode_bitmap, ext2fs_read_block_bitmap,
1128                 ext2fs_read_bitmaps, ext2fs_write_bitmaps): 
1129         * read_bb.c (ext2fs_read_bb_inode): 
1130         * read_bb_file.c (ext2fs_read_bb_FILE): 
1131         * newdir.c (ext2fs_new_dir_block): 
1132         * namei.c (ext2fs_dir_iterate, ext2fs_lookup, ext2fs_namei): 
1133         * link.c (ext2fs_link, ext2fs_unlink): 
1134         * inode.c (ext2fs_open_inode_scan, ext2fs_read_inode,
1135                 ext2fs_write_inode, ext2fs_get_blocks, 
1136                 ext2fs_check_directory): 
1137         * get_pathname.c (ext2fs_get_pathname): 
1138         * expanddir.c (ext2fs_expand_dir): 
1139         * block.c (ext2fs_block_iterate): 
1140         * bitmaps.c (ext2fs_allocate_inode_bitmap, 
1141                 ext2fs_allocate_block_bitmap): 
1142         * bb_inode.c (ext2fs_update_bb_inode): 
1143         * alloc.c (ext2fs_new_inode,ext2fs_new_block,ext2fs_get_free_blocks): 
1144         * check_desc.c (ext2fs_check_desc): 
1145         * closefs.c (ext2fs_close, ext2fs_flush): 
1146         * freefs.c (ext2fs_free): Add check for ext2_filsys magic number.
1147
1148         * Makefile:
1149         * ext2fs.h:
1150         * openfs.c:
1151         * check_desc.c (ext2fs_check_desc): Move ext2fs_check_desc from
1152         openfs.c into its own file.
1153
1154         * ext2fs.h (EXT2_CHECK_MAGIC): Added macro for checking for
1155         structure magic numbers.
1156
1157         * closefs.c (ext2fs_flush): Folded in Remy Card's changes to clear
1158         the EXT2_VALID_FS flag in the backup superblock blocks, so that if
1159         someone uses the -b option to specify the use of the backup
1160         superblock --- this usually means that the main superblock is
1161         toast.  :-)
1162
1163         * ext2fs.h: 
1164         * ext2_err.et (EXT2_ET_REV_TOO_HIGH): 
1165         * openfs.c (ext2fs_open): Folded in Remy Card's changes to add a
1166         revision level to the superblock.
1167
1168 Sun Aug 21 00:50:08 1994  Theodore Y. Ts'o  (tytso@rt-11)
1169
1170         * ext2fs.h:
1171         * bitmaps.c:
1172         * bitops.c
1173         * bitops.h:
1174         * openfs.c:
1175         * initialize.c: Completely revamped the inode and block bitmap
1176         structures, so that they can be better chance of being extensible
1177         in a shared library.  They are now their own type, instead of
1178         being a char *.  Also, the function signatures of
1179         ext2fs_test_block_bitmap, ext2fs_mark_block_bitmap,
1180         ext2fs_unmark_block_bitmap, ext2fs_test_inode_bitmap,
1181         ext2fs_mark_inode_bitmap, and ext2fs_unmark_inode_bitmap were
1182         changed to eliminate the ext2_filsys argument, since it is no
1183         longer necessary.
1184
1185 Wed Aug 17 21:46:44 1994  Remy Card  (card@bbj)
1186
1187         * unix_io.c (unix_read_blk and unix_write_blk): use the llseek
1188         system call if available.
1189
1190         * llseek.c: new file.  This is the stub calling the llseek system
1191         call which allows supports for 2GB+ file systems.
1192
1193         * initialize.c (ext2fs_initialize): Ext2fs_initialize now stores
1194         the creator operating system.
1195
1196 Wed Aug 17 10:03:24 1994  Theodore Y. Ts'o  (tytso@rt-11)
1197
1198         * initialize.c (ext2fs_initialize): Ext2fs_initialize now sets up
1199         the group descriptor statistics in addition to everything else.
1200         This relieves mke2fs of the responsibility of doing it.
1201
1202         * bitops.c, bitops.h: Add assembly inline functions for the 68000.
1203         Added a new #define, _EXT2_HAVE_ASM_BITOPS_ to control whether or
1204         not the generic C function equivalents should be included or not.
1205
1206         * openfs.c (ext2fs_open): If a superblock is specified, then use
1207         the backup group descriptors that go along with this superblock,
1208         instead of using the primary group descriptors.  This allows
1209         e2fsck to recover filesystems where the primary group descriptors
1210         have been trashed.
1211
1212