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