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