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