1 Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
3 * Release of E2fsprogs version 1.02
5 Sat Dec 9 09:57:50 1995 <tytso@rsts-11.mit.edu>
7 * rw_bitops.c (ext2fs_write_block_bitmap):
8 * bitops.c (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
9 * bitops.h (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
10 Rename {test,set,clear}_bit to ext2fs_{test,set,clear}_bit,
11 to avoid conflicts with with kernel include files. Also
12 rename ADDR and CONST_ADDR to EXT2FS_ADDR and
15 Thu Oct 26 12:09:16 1995 <tytso@rsts-11.mit.edu>
17 * ext2_err.et: Updated message in EXT2_ET_BASE to say version 0.5c
19 * swapfs.c (ext2fs_swap_super): Put an #ifdef check around
20 s_def_resuid and s_def_resgid for backwards compatibility.
22 Fri Oct 20 23:33:31 1995 <tytso@rsts-11.mit.edu>
24 * bitops.h: Added #ifdef's for Sparc.
26 Wed Sep 6 22:14:46 1995 <tytso@rsts-11.mit.edu>
28 * getsize.c: #include <sys/ioctl.h> under Linux to pick up ioctl()
31 * closefs.c: #include <string.h> to pick up memset() declaration
33 Mon Sep 4 21:45:29 1995 Remy Card <card@bbj>
35 * Makefile.in: Added support for BSD shared libraries.
37 * initialize.c (ext2fs_initialize): Correctly set the s_creator_os
40 Mon Sep 4 09:55:30 1995 <tytso@rsts-11.mit.edu>
42 * unix_io.c (unix_open): Add a double check; if the passed in name
43 is NULL, return EXT2_ET_BAD_DEVICE_NAME.
45 * ext2_err.et (EXT2_ET_BAD_DEVICE_NAME): Added new error code
47 Wed Aug 16 15:44:10 1995 <tytso@rsts-11.mit.edu>
49 * inode.c (ext2fs_check_directory): Use LINUX_S_ISDIR instead of
52 Tue Aug 15 13:08:36 1995 <tytso@rsts-11.mit.edu>
54 * getsize.c (ext2fs_get_device_size): Add support for reading the
55 partition size from a BSD disk label.
57 Thu Aug 10 09:33:26 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
59 * getsize.c (ext2fs_get_device_size): New function that determins
60 the size of a device. Used by mke2fs and e2fsck.
62 Sat Aug 12 03:09:54 1995 Remy Card <card@bbj>
64 * Makefile.in (install): Install static libraries in $(ulibdir)
65 (/usr/lib on Linux) instead of $(libdir) (/lib on Linux).
67 Wed Aug 9 17:04:23 1995 Theodore Y. Ts'o <tytso@dcl>
69 * bitmaps.c (ext2fs_free_inode_bitmap, ext2fs_free_block_bitmap):
70 Move these functions to freefs.c.
72 * closefs.c (ext2fs_flush): If swapping blocks, clear the group
73 descriptors shadow memory to keep purify quiet. (This
74 also has the nice benefit that the unused portion of the
75 shadow descriptors are zeroed out.)
77 * dirblock.c (ext2fs_write_dir_block): We need to use
78 dirent->rec_len *before* it's byteswapped to find the
79 location of the next directory structure!
81 * alloc.c (ext2fs_new_inode): Fix bug which could potentially
82 cause ext2fs_new_inode to loop infinitely if we're trying
83 to allocate an inode in group #0 and there are no free
84 inodes at all in the system.
86 * closefs.c: #include <errno.h> if it exists.
88 Sun Aug 6 13:27:50 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
90 * ext2fs.h (BLOCK_FLAG_HOLE): Added new definition for
91 BLOCK_FLAG_APPEND. Added documentation for the block
94 Sat Aug 5 11:44:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
96 * Makefile.in (DLL_INSTALL_DIR, ELF_INSTALL_DIR): Set the
97 installation directories correctly.
99 Tue Jul 18 09:27:38 1995 <tytso@rsx-11.mit.edu>
101 * namei.c (process_dir_block):
102 * mkdir.c (ext2fs_mkdir):
103 * expanddir.c (expand_dir_proc): Use ext2fs_{read,write}_dir_block
104 to read/write the directory block.
106 * dirblock.c (ext2fs_read_dir_block), ext2fs_write_dir_block): New
107 file containing functions for reading and writing
108 directory blocks (byte swapping if necesssary)
110 * block.c (block_iterate_ind, block_iterate_dind,
111 block_iterate_tind): Byte swap the block addresses if
112 EXT2_SWAP_BYTES is set (and swap them back before writing
115 * inode.c (inocpy_with_swap): New function.
116 (ext2fs_get_next_inode, ext2fs_read_inode, ext2fs_write_inode):
117 Call inocpy_with_swap if EXT2_SWAP_BYTES if set.
119 * closefs.c (ext2fs_flush): If EXT2_SWAP_BYTES is set, then swap
120 the superblock and group descriptors before writing it out.
122 * openfs.c (ext2fs_open): If the magic number is byte-swapped,
123 then set the EXT2_SWAP_BYTES and byte-swap the superblock
124 and group descriptors.
126 * swapfs.c (ext2fs_swap_super, ext2fs_swap_group_desc): New functions
127 to desp ext2 filesystem structures.
129 * bitops.c (set_bit, clear_bit, test_bit): Use modifications
130 supplied by Pete A. Zaitcev so that the C language
131 versions of these functions are more portable. They will
132 now work on both little and big endian systems, and the
133 assumption that 32-bit integers are used is gone.
135 * bitops.h (ext2_swab16, ext2_swab32): Added new functions for
138 * ext2fs.h (EXT2_SWAP_BYTES): Add new flag which indicates that
139 byte swapping should take place.
141 Sun Jul 16 06:21:43 1995 <tytso@rsx-11.mit.edu>
143 * Makefile.in, cmp_bitmaps.c (ext2fs_compare_block_bitmap_end,
144 ext2fs_compare_inode_bitmap_end): Added new file
145 containing routines to compare bitmaps.
147 * ext2_err.et (EXT2_ET_NEQ_BLOCK_BITMAP, EXT2_ET_NEQ_INODE_BITMAP):
148 Added new error codes.
150 Sat Jul 15 04:23:37 1995 <tytso@rsx-11.mit.edu>
152 * inode.c (ext2fs_get_next_inode): Don't check scan->inode_buffer;
153 if the magic number is correct, it will be allocated.
155 Fri Jul 14 19:02:59 1995 <tytso@rsx-11.mit.edu>
157 * block.c (block_iterate_ind, block_iterate_dind,
158 block_iterate_tind): Don't recompute block_nr each loop;
159 just increment it! Factor check of BLOCK_FLAG_APPEND out
160 of the loop. Factor mask of BLOCK_CHANGED into changed
161 variable out of the loop. (block_iterate_ind, in
162 particular, gets called a lot, so every little
165 Thu Jul 13 08:02:45 1995 <tytso@rsx-11.mit.edu>
167 * block.c (block_iterate_ind, block_iterate_dind,
168 block_iterate_tind): Precompute limit of loop to speed up
169 block_iterate_ind and company.
171 * bitops.h (ext2fs_fast_mark_block_bitmap,
172 ext2fs_fast_unmark_block_bitmap, ext2fs_fast_test_block_bitmap,
173 ext2fs_fast_mark_inode_bitmap, ext2fs_fast_unmark_inode_bitmap,
174 ext2fs_fast_test_inode_bitmap): Add fast version of these
175 functions, which don't do range checking.
177 * bitops.h (ext2fs_get_block_bitmap_start,
178 ext2fs_get_inode_bitmap_start, ext2fs_get_block_bitmap_end,
179 ext2fs_get_inode_bitmap_end): Add new accessor functions
180 which return the start and end points of the bitmaps.
182 Tue Jul 11 18:59:41 1995 <tytso@rsx-11.mit.edu>
184 * llseek.c (ext2_llseek): If the offset is small enough, use lseek
185 instead of llseek. The errno if the offset is too large
186 and lseek is not supported should be EINVAL, not -EINVAL.
188 Thu Jun 15 23:43:02 1995 Remy Card <card@bbj>
190 * Makefile.in: Added support for ELF shared libraries.
191 Fixed typos in the compilation rules.
192 (distclean): Added Makefile.
194 * llseek.c (llseek): New function, if llseek() does not exist in the
196 (ext2_llseek): Changed to call llseek().
198 Mon Jun 12 08:29:07 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
200 * ext2fs.h: Use __u32 to define blk_t, instead of unsigned long.
202 Sun Jun 11 15:02:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
204 * mkdir.c (ext2fs_mkdir): Use LINUX_S_IFDIR instead of S_IFDIR.
206 * ext2fs.h (LINUX_S_IFDIR): Define a linux specific versions of
207 the S_*, which are normally defined in <sys/stat.h>. This
208 allows us to compile e2fsprogs on a non-Linux system,
209 which may have a different value for S_IFDIR.
211 Sat Jun 10 23:47:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
213 * bitops.c (clear_bit, set_bit): Remove calls to cli() and sti();
214 this is a user-mode application!
216 Thu Jun 8 13:13:22 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
218 * llseek.c: Put the include of <linux/unistd.h> inside the #ifdef
219 __linux__ so that non-linux systems won't see it.
221 * alloc.c: Include <errno.h> if possible.
222 * badblocks.c: Ditto.
226 * expanddir.c: Ditto.
227 * get_pathname.c: Ditto.
228 * initialize.c: Ditto.
235 * rw_bitmaps.c: Ditto.
238 * Makefile.in: Rewritten to conform to GNU coding standards and
239 support separate compilation directories.
241 Thu May 11 04:13:12 1995 <tytso@rsx-11.mit.edu>
243 * initialize.c (ext2fs_initialize): Don't allow more than one
244 bitmaps's worth of inodes in a group.
246 Sat Mar 11 14:07:11 1995 Theodore Y. Ts'o <tytso@localhost>
248 * llseek.c (ext2_llseek): Added error checking to the llseek()
249 compat code to protect against overflow. This only
250 applies to 1.0 and early 1.1 kernels, which don't support
251 the llseek() system call.
253 Thu Nov 24 16:29:00 1994 Theodore Y. Ts'o (tytso@rt-11)
255 * unix_io.c (unix_open): Initialize the read_error and write_error
256 io_channel pointers to be null.
258 * bb_inode.c (clear_bad_block_proc): If an illegal block number is
259 found, clear it but don't try to update the filesystem
260 accounting information, since that's hopeless anyway.
262 * block.c (bloblock_iterate_ind, bloblock_iterate_dind,
263 bloblock_iterate_tind): Check to see if the indirect blocks are
264 valid before trying to read them.
266 * ext2_err.et (EXT2_ET_BAD_IND_BLOCK, EX2_ET_BAD_DIND_BLOCK,
267 EXT2_ET_BAD_TIND_BLOCK): Add new error codes.
269 * bitops.h (ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
270 ext2fs_test_block_bitmap, ext2fs_mark_inode_bitmap,
271 ext2fs_unmark_inode_bitmap, ext2fs_test_inode_bitmap): If an
272 illegal block or inode number is passed in, return instead
273 of trying to test, set, or clear the bit.
275 Mon Nov 7 21:32:33 1994 Remy Card <card@bbj>
277 * Makefile: Added a dummy install target in case shared libraries
280 Mon Oct 24 14:11:44 1994 (tytso@rsx-11)
282 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix calculation of how
283 the real last block of the bitmap should be calculated.
285 Wed Sep 7 10:05:36 1994 (tytso@rsx-11)
287 * bitmaps.c (ext2fs_fudge_inode_bitmap_end,
288 ext2fs_fudge_block_bitmap_end, ext2fs_clear_inode_bitmap,
289 ext2fs_clear_block_bitmap, ext2fs_free_inode_bitmap,
290 ext2fs_free_block_bitmap): Add magic number checking for
291 the inode and block bitmaps.
293 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix to set the correct
294 magic number for a block bitmap instead of an inode bitmap.
296 * inode.c (ext2fs_close_inode_scan, ext2fs_get_next_inode): Add
297 magic number checking for the inode_scan structure.
299 * badblocks.c (badblocks_list_free, badblocks_list_add,
300 badblocks_list_test, badblocks_list_iterate_begin,
301 badblocks_list_iterate, badblocks_list_iterate_end): Add
302 magic number checking for the badblocks_list and
303 badblocks_iterate structures.
305 * ext2_err.et (EXT2_ET_MAGIC_UNIX_IO_CHANNEL):
306 * unix_io.c (unix_open, unix_close, unix_set_blksize, unix_read_blk,
307 unix_write_blk, unix_flush): Add magic number checking
308 both for io_channel structure and unix_private_data
311 * openfs.c (ext2fs_open): Add check for io_manager structure's
314 * rw_bitmaps.c (ext2fs_write_inode_bitmap, ext2fs_write_block_bitmap,
315 ext2fs_read_inode_bitmap, ext2fs_read_block_bitmap,
316 ext2fs_read_bitmaps, ext2fs_write_bitmaps):
317 * read_bb.c (ext2fs_read_bb_inode):
318 * read_bb_file.c (ext2fs_read_bb_FILE):
319 * newdir.c (ext2fs_new_dir_block):
320 * namei.c (ext2fs_dir_iterate, ext2fs_lookup, ext2fs_namei):
321 * link.c (ext2fs_link, ext2fs_unlink):
322 * inode.c (ext2fs_open_inode_scan, ext2fs_read_inode,
323 ext2fs_write_inode, ext2fs_get_blocks,
324 ext2fs_check_directory):
325 * get_pathname.c (ext2fs_get_pathname):
326 * expanddir.c (ext2fs_expand_dir):
327 * block.c (ext2fs_block_iterate):
328 * bitmaps.c (ext2fs_allocate_inode_bitmap,
329 ext2fs_allocate_block_bitmap):
330 * bb_inode.c (ext2fs_update_bb_inode):
331 * alloc.c (ext2fs_new_inode,ext2fs_new_block,ext2fs_get_free_blocks):
332 * check_desc.c (ext2fs_check_desc):
333 * closefs.c (ext2fs_close, ext2fs_flush):
334 * freefs.c (ext2fs_free): Add check for ext2_filsys magic number.
339 * check_desc.c (ext2fs_check_desc): Move ext2fs_check_desc from
340 openfs.c into its own file.
342 * ext2fs.h (EXT2_CHECK_MAGIC): Added macro for checking for
343 structure magic numbers.
345 * closefs.c (ext2fs_flush): Folded in Remy Card's changes to clear
346 the EXT2_VALID_FS flag in the backup superblock blocks, so that if
347 someone uses the -b option to specify the use of the backup
348 superblock --- this usually means that the main superblock is
352 * ext2_err.et (EXT2_ET_REV_TOO_HIGH):
353 * openfs.c (ext2fs_open): Folded in Remy Card's changes to add a
354 revision level to the superblock.
356 Sun Aug 21 00:50:08 1994 Theodore Y. Ts'o (tytso@rt-11)
363 * initialize.c: Completely revamped the inode and block bitmap
364 structures, so that they can be better chance of being extensible
365 in a shared library. They are now their own type, instead of
366 being a char *. Also, the function signatures of
367 ext2fs_test_block_bitmap, ext2fs_mark_block_bitmap,
368 ext2fs_unmark_block_bitmap, ext2fs_test_inode_bitmap,
369 ext2fs_mark_inode_bitmap, and ext2fs_unmark_inode_bitmap were
370 changed to eliminate the ext2_filsys argument, since it is no
373 Wed Aug 17 21:46:44 1994 Remy Card (card@bbj)
375 * unix_io.c (unix_read_blk and unix_write_blk): use the llseek
376 system call if available.
378 * llseek.c: new file. This is the stub calling the llseek system
379 call which allows supports for 2GB+ file systems.
381 * initialize.c (ext2fs_initialize): Ext2fs_initialize now stores
382 the creator operating system.
384 Wed Aug 17 10:03:24 1994 Theodore Y. Ts'o (tytso@rt-11)
386 * initialize.c (ext2fs_initialize): Ext2fs_initialize now sets up
387 the group descriptor statistics in addition to everything else.
388 This relieves mke2fs of the responsibility of doing it.
390 * bitops.c, bitops.h: Add assembly inline functions for the 68000.
391 Added a new #define, _EXT2_HAVE_ASM_BITOPS_ to control whether or
392 not the generic C function equivalents should be included or not.
394 * openfs.c (ext2fs_open): If a superblock is specified, then use
395 the backup group descriptors that go along with this superblock,
396 instead of using the primary group descriptors. This allows
397 e2fsck to recover filesystems where the primary group descriptors