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