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