blob: 9a088dceb87edc5031adeaff75f15555e2d0f79d [file] [log] [blame]
Theodore Ts'of9e67062000-07-13 23:25:54 +000012000-07-13 <tytso@valinux.com>
2
3 * Release of E2fsprogs 1.19
4
Theodore Ts'oab146762000-07-07 04:37:35 +000052000-07-07 Theodore Ts'o <tytso@valinux.com>
6
7 * ext2fs.h (EXT2_LIB_FEATURE_INCOMPAT_SUPP): Add
8 EXT3_FEATURE_INCOMPAT_RECOVER (aka needs_recovery) to the
9 list of filesystem flags supported by the library.
10
Theodore Ts'o57dca852000-07-04 19:20:25 +0000112000-07-04 Theodore Ts'o <tytso@valinux.com>
12
Theodore Ts'o8f13d8c2000-07-04 19:41:29 +000013 * ext2fs.h: Update to include latest journalling additions to the
14 superblock.
15
Theodore Ts'o57dca852000-07-04 19:20:25 +000016 * dll/jump.funcs: Add new jumptable entries for
17 ext2fs_write_bb_FILE, ext2fs_read_bb_FILE2, and
18 ext2fs_badblocks_equal.
19
20 * tst_badblocks.c: Update test program to test
21 ext2fs_read_bb_FILE2 and ext2fs_write_FILE.
22
23 * write_bb_file.c (ext2fs_write_bb_FILE): New function which
24 writes out bad blocks list to a file.
25
26 * read_bb_file.c (ext2fs_read_bb_FILE2): Add new function which
27 changes the callback function to take two additional
28 arguments; a private blind pointer supplied by the caller,
29 and pointer to a char * containing a pointer to the
30 invalid string.
31
32 * badblocks.c (ext2fs_badblocks_equal): Add new function which
33 returns true if two badblocks list are equal.
34
35 * Makefile.in: Remove explicit link of -lc in the shared library.
36 (It shouldn't be necessary, and is harmful in some cases).
37
Theodore Ts'oabf7d382000-06-10 19:27:17 +0000382000-06-10 Theodore Ts'o <tytso@valinux.com>
39
40 * getsize.c (main): Add debugging code under #ifdef DEBUG
41
Theodore Ts'o2e8d40d2000-05-27 15:15:40 +0000422000-05-27 Theodore Ts'o <tytso@valinux.com>
43
44 * mkdir.c (ext2fs_mkdir): Read the parent directory's inode
45 earlier, so that if there's an error reading it, we can
46 more cleanly back out of the operation.
47
Theodore Ts'of0f4acb2000-05-25 23:22:11 +0000482000-05-25 <tytso@snap.thunk.org>
49
Theodore Ts'odc5f68c2000-05-25 23:31:54 +000050 * getsize.c (ext2fs_get_device_size): Use open64() instead of
Theodore Ts'o7fd86d32000-05-25 23:42:22 +000051 open() if it exists. Under linux, manually define the
52 ioctl for BLKGETSIZE if it isn't already defined and it's
53 safe to do so.
Theodore Ts'odc5f68c2000-05-25 23:31:54 +000054
55 * unix_io.c (unix_open): Use open64() instead of open() if it
56 exists.
57
58 * llseek.c: Simplify header includes of unistd.h. If lseek64 is
59 available (and prototypes are defined) use it in
60 preference to llseek.
61
Theodore Ts'of0f4acb2000-05-25 23:22:11 +000062 * Makefile: Add hack dependency rule so that parallel makes work
63 correctly.
64
Theodore Ts'ofa7ef712000-05-19 02:11:41 +0000652000-05-18 Theodore Ts'o <tytso@valinux.com>
66
67 * ext2fs.h: Add appropriate ifdef's to support C++ compilation.
68
Theodore Ts'oe589f672000-04-03 13:45:40 +0000692000-04-03 Theodore Ts'o <tytso@valinux.com>
70
Theodore Ts'o06af47f2000-04-03 13:51:00 +000071 * block.c: Readibility tweak in conditionals involving
72 ctx->fs->flags.
73
Theodore Ts'oe589f672000-04-03 13:45:40 +000074 * ext2fs.h: Use AUTOCONF SIZEOF_* macros if available to determine
75 how to define __s64 and __u64. Turn off "compression is
76 experimental" warning if the cpp macro
77 I_KNOW_THAT_COMPRESSION_IS_EXPERIMENTAL is defined.
78
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +0000792000-02-11 <tytso@snap.thunk.org>
80
Theodore Ts'o5a63dd22000-02-11 15:44:08 +000081 * ext2fs.h: Define EXT2FS_COMPRESSED_BLKADDR and HOLE_BLKADDR.
82 Conditionally include Compression as a supported type if
83 ENABLE_COMPRESSION (via --enable-compression) is turned on.
84
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +000085 * swapfs.c (ext2fs_swap_super): Swap the compression usage bitmap.
86
Theodore Ts'o28ffafb2000-02-08 19:14:02 +0000872000-02-08 <tytso@snap.thunk.org>
88
89 * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap,
90 ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
91 ext2fs_mark_inode_bitmap, ext2fs_unmark_inode_bitmap):
92 Change to return the previous state of the bit that is
93 being marked or unmarked. For speed optimization.
94
Theodore Ts'o80e808f2000-02-02 16:19:59 +0000952000-02-02 Theodore Ts'o <tytso@valinux.com>
96
97 * getsize.c, ismounted.c: Remove unneeded include of linux/fs.h
98
99 * swapfs.c: Remove #ifdef HAVE_EXT2_INODE_VERSION since it's not
100 needed any more; we know it will always be i_generation.
101 Add support for swapping the high bits of the uid and gid.
102
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +00001031999-11-19 <tytso@valinux.com>
104
Theodore Ts'odab278a1999-11-19 18:49:27 +0000105 * mkdir.c (ext2fs_mkdir): Only update the parent's inode link
106 counts if the link was successful. Patch suggested by
107 jeremy@goop.org.
108
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +0000109 * Makefile.in (distclean): Remove TAGS and Makefile.in.old from
110 the source directory.
111
Theodore Ts'ocd086361999-11-10 16:00:39 +00001121999-11-10 <tytso@valinux.com>
113
114 * Release of E2fsprogs 1.18
115
Theodore Ts'o9b9fe8a1999-11-08 22:05:04 +00001161999-11-08 <tytso@valinux.com>
117
118 * Makefile.in (tst_badblocks): Add freefs.o to the object list,
119 since ext2fs_badblocks_list_free was moved to freefs.c.
120
121 * tst_badblocks.c: Use the newer badblocks API names. Add
122 duplicate blocks to the test inputs to test dealing with
123 adding blocks which are already in the badblocks list.
124
125 * badblocks.c (ext2fs_badblocks_list_add): If appending to the end
126 of the list, use a shortcut O(1) operations instead of an
127 O(n) operation. (Idea suggested by David Beattie.)
128
129 * freefs.c (ext2fs_free): Use ext2fs_badblocks_list_free() instead
130 of badblocks_list_free(), to save a procedure call.
131
Theodore Ts'o416c93d1999-10-26 04:49:54 +00001321999-10-26 <tytso@valinux.com>
133
Theodore Ts'o28e11941999-10-26 18:17:20 +0000134 * Release of E2fsprogs 1.17
135
1361999-10-26 <tytso@valinux.com>
137
Theodore Ts'o416c93d1999-10-26 04:49:54 +0000138 * ext2fs.h: Add kludge to deal with the fact that egcs cpp doesn't
139 seem to handle ~0UL the same way as they used to.
140
Theodore Ts'o601002b1999-10-26 02:06:39 +00001411999-10-25 <tytso@valinux.com>
142
Theodore Ts'ofe70fd31999-10-26 02:34:47 +0000143 * nt_io.c (_OpenNtName): Open the device using
144 FILE_SYNCHRONOUS_IO_NONALERT instead of
145 FILE_SYNCHRONOUS_IO_ALERT
146 (nt_open): At the end of the device open routine, unlock
147 the drive but do not dismount it.
148
Theodore Ts'o601002b1999-10-26 02:06:39 +0000149 * initialize.c (CREATOR_OS): Use __GNU__ instead of __gnu__ to
150 detect the Hurd OS.
151
Theodore Ts'oe6198e51999-10-23 00:58:54 +00001521999-10-22 <tytso@valinux.com>
153
Theodore Ts'o614fdfd1999-10-23 03:19:51 +0000154 * Release of E2fsprogs 1.16
155
1561999-10-22 <tytso@valinux.com>
157
Theodore Ts'oe6198e51999-10-23 00:58:54 +0000158 * mkdir.c (ext2fs_mkdir): Pass EXT2_FT_DIR flag to ext2fs_link().
159
160 * link.c (ext2fs_link): This call now uses the low three bits of
161 the flags parameter to pass the directory filetype
162 information; it will set the directory entry FILETYPE
163 information if the filesystem supports it.
164
165 * newdir.c (ext2fs_new_dir_block): If the FILETYPE superblock
166 option is set, then create the '.' and '..' entries with
167 the filetype set to EXT2_FT_DIR.
168
Theodore Ts'oaa4115a1999-10-21 19:33:18 +00001691999-09-24 <tytso@valinux.com>
170
171 * nt_io.c: New file which supports I/O under Windows NT.
172
Theodore Ts'o3a5f8ea1999-09-14 20:21:26 +00001731999-09-07 <tytso@valinux.com>
174
175 * ext2fs.h: Add new fields for journalling and define new
176 feature bits used by newer filesystems: IMAGIC_INODES,
177 HAS_JOURNAL, RECOVER.
178
179 * expanddir.c (ext2fs_expand_dir, expand_dir_proc): Change where
180 we update the inode block count and size files so that the
181 block count field is updated correctly when we create an
182 indirect block.
183
1841999-07-18 Theodore Ts'o <tytso@valinux.com>
Theodore Ts'o657cb971999-07-30 23:19:10 +0000185
186 * Release of E2fsprogs 1.15
187
Theodore Ts'oe72a9ba1999-06-25 15:40:18 +00001881999-06-23 <tytso@valinux.com>
189
190 * swapfs.c (ext2fs_swap_inode): Add compatibility for Linux 2.3
191 kernels that use i_generation instead of i_version. Patch
192 supplied by Jon Bright <sircus@sircus.demon.co.uk>.
193
1941999-06-21 <tytso@valinux.com>
Theodore Ts'o813bbb21999-06-22 03:17:45 +0000195
196 * dir_iterate.c (ext2fs_process_dir_block): Check for corrupted
197 directory entry before calling the callback function.
198 This should prevent some core dumps of insufficiently
199 paranoid callback functions.
200
Theodore Ts'oa4bf69d1999-05-29 21:53:30 +00002011999-05-29 <tytso@rsts-11.mit.edu>
202
203 * ext2fs.h: Add feature definition for AFS IMAGIC inodes.
204
205 * fileio.c (ext2fs_file_open): Remove obsolete comment stating
206 that we don't handle writing yet (we do). Fixed bug where
207 we weren't allocating a big enough buffer for ext2_bmap.
208
Theodore Ts'of0687a51999-05-29 21:48:03 +00002091999-05-03 <tytso@rsts-11.mit.edu>
210
211 * openfs.c (ext2fs_open): Check to make sure that the number of
212 blocks per group is not zero --- if so, it must be a bad
213 superblock!
214
Theodore Ts'o9e51eca1999-01-09 16:32:31 +00002151999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
216
217 * Release of E2fsprogs 1.14
218
Theodore Ts'o665f7101999-01-08 13:33:39 +00002191999-01-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
220
221 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Check to see if
222 the inode number is zero; if it's zero, return
223 EXT2_ET_BAD_INODE_NUM.
224
Theodore Ts'o7a469521999-01-04 08:50:59 +00002251998-12-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
226
227 * initialize.c (ext2fs_initialize): Use EXT2_FIRST_INODE instead
228 of EXT2_FIRST_INO to ensure compatibility with Linux 1.2
229 header files.
230
Theodore Ts'o73f17cf1999-01-04 07:35:45 +0000231Mon Jan 4 02:32:09 1999 Theodore Y. Ts'o <tytso@mit.edu>
232
233 * llseek.c (ext2fs_llseek): Change ext2fs_llseek() in the
234 non-Linux case to use EINVAL by default, unless it isn't
235 defined, in which case we use EXT2_ET_INVALID_ARGUMENT
236 instead.
237
Theodore Ts'o556ad131998-12-19 08:10:58 +00002381998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu>
239
240 * Release of E2fsprogs 1.13
241
Theodore Ts'o5a679c81998-12-03 16:40:38 +00002421998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
243
244 * Makefile.in: Updated dependencies.
245
Theodore Ts'o8d7e83b1998-09-23 00:27:26 +00002461998-09-22 Theodore Ts'o <tytso@rsts-11.mit.edu>
247
248 * initialize.c (ext2fs_initialize): Make sure that we allocate
249 enough inodes so that we can make a valid filesystem.
250
Theodore Ts'o2eb374c1998-09-03 01:22:57 +00002511998-09-02 Theodore Ts'o <tytso@rsts-11.mit.edu>
252
253 * rw_bitmaps.c: Fixed signed/unsigned warnings.
254
255 * fileio.c (ext2fs_file_set_size): Remove unneeded extern from the
256 function declaration.
257
258 * dblist.c (make_dblist): Add safety check in case the dblist
259 pointer passed in is null (in which case, assign it to
260 fs->dblist). Fixed some signed/unsigned warnings.
261
262 * bmap.c: Make addr_per_block be of type blk_t to avoid
263 signed/unsigned warnings.
264
265 * namei.c (ext2fs_follow_link): Remove uneeded extern from the
266 function declaration.
267
268 * get_pathname.c (get_pathname_proc): Use return value from
269 ext2fs_get_mem, instead of checking if &gp->name is
270 NULL.
271
272 * dir_iterate.c (ext2fs_process_dir_block):
273 * dblist_dir.c (ext2fs_dblist_dir_iterate): Remove uneeded extern
274 from the function declaration.
275
276 * block.c (ext2fs_block_iterate2): If the read_inode call fails,
277 return the error directly instead of jumping to the
278 cleanup routine, since we don't need to do any cleanup.
279
280 * alloc_table.c (ext2fs_allocate_group_table): Make this
281 function take a dgrp_t for its group argument.
282
283 * ext2fs.h: Make dgrp_t an __u32 type, and make
284 fs->desc_group_count be of type dgrp_t.
285
Theodore Ts'of75c28d1998-08-01 04:18:06 +00002861998-07-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
287
288 * badblocks.c (ext2fs_badblocks_list_add): Use a bigger increment
289 than 10 blocks when we need to expand the size of the
290 badblocks list.
291
Theodore Ts'o4a5fa191998-07-09 05:42:45 +00002921998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
293
294 * Release of E2fsprogs 1.12
295
Theodore Ts'o30c42611998-06-30 05:33:11 +00002961998-06-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
297
298 * closefs.c (ext2fs_flush): Update the s_block_group_nr field as
299 appropriate for all of the block group copies, so that
300 it's clear where the beginning of the filesystem is on the
301 disk. (For when the partition table gets scrod.)
302
303 * ext2fs.h: Change the name of the feature from
304 EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE to
305 EXT2_FEATURE_INCOMPAT_FILESIZE (to match with the kernel).
306
Theodore Ts'o818180c1998-06-27 05:11:14 +00003071998-06-18 Theodore Ts'o <tytso@rsts-11.mit.edu>
308
309 * inode.c (get_next_blockgroup): Fix bug where if
310 get_next_blockgroup() is called early because of a missing
311 inode table in a block group, the current_inode counter
312 wasn't incremented correctly.
313
Theodore Ts'o4faba5b1998-06-16 05:23:41 +00003141998-06-16 Theodore Ts'o <tytso@rsts-11.mit.edu>
315
316 * read_bb.c (ext2fs_read_bb_inode): Make function more robust
317 against a completely trashed bad block inode.
318
Theodore Ts'o03673db1998-06-10 20:39:43 +00003191998-06-10 Theodore Ts'o <tytso@rsts-11.mit.edu>
320
321 * alloc_tables.c (ext2fs_allocate_group_table): Fix bug so that if
322 the stride length hits a bad value, we retry the block
323 allocation starting at the beginning of the block group.
324
325 * ext2fs.h, bb_inode.c, block.c, bmove.c, dir_iterate.c,
326 expanddir.c, ext2fsP.h, read_bb.c: Change blkcnt_t to be
327 e2_blkcnt_t to avoid collision with LFS API.
328
Theodore Ts'o353952d1998-05-01 05:32:18 +00003291998-05-01 Theodore Ts'o <tytso@rsts-11.mit.edu>
330
331 * initialize.c (ext2fs_initialize): Initialize s_inodes_count in a
332 way that avoids overflows on disk sizes greater than 4GB.
333
Theodore Ts'o4c77fe51998-04-30 17:35:59 +00003341998-04-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
335
336 * ext2fs.h: Define EXT2_QSORT_TYPE appropriately for the
337 return type for comparison functions for qsort.
338
339 * dblist.c (dir_block_cmp): Use EXT2_QSORT_TYPE in function
340 declaration.
341
Theodore Ts'o76f875d1998-04-27 01:41:13 +00003421998-04-26 Theodore Ts'o <tytso@rsts-11.mit.edu>
343
344 * ext2fs.h, bitops.h: Add support for the Watcom C compiler to do
345 inline functions.
346
347 * ext2fs.h, dosio.c: Use asm/types.h instead of linux/types.h to
348 evade a potential problem with glibc's header files trying
349 to spike out linux/types.h.
350
351 * ext2fs.h (ext2fs_resize_mem): Change the function prototype to
352 include the old size of the memory, which is needed for
353 some braindamaged memory allocation systems that don't
354 support realloc().
355
356 * badblocks.c (ext2fs_badblocks_list_add):
357 bb_inode.c (clear_bad_block_proc):
358 dblist.c (ext2fs_add_dir_block):
359 icount.c (insert_icount_el):
360 irel_ma.c (ima_put):
361 rs_bitmap.c (ext2fs_resize_generic_bitmap): Update functions to
362 pass the old size of the memory to be resized to
363 ext2fs_resize_mem().
364
Theodore Ts'o469bec81998-04-01 02:46:43 +00003651998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
366
367 * Makefile.in: Change to use new installation directory variables
368 convention. Fix uninstall rules to take $(DESTDIR) into
369 account.
370
Theodore Ts'o4a31c481998-03-30 01:27:25 +00003711998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu>
372
373 * ext2fs.h: If __STRICT_ANSI__ is defined and we're on a platform
374 with 32 bit longs, then we need to manually define __s64
375 and __u64, since the current kernel header files don't
376 define these if __STRICT_ANSI__ is defined. This is a
377 problem if we are compiling with full GCC warnings, since
378 we do need 64 bit support.
379
380 * Makefile.in (OBJS): Remove bmove.o from files to be built,
381 since we're not using ext2fs_move_blocks() and there
382 is some question as to its usefulness in its current
383 form.
384
385 * bmap.c (block_bmap): Remove unused function.
386
387 * bmove.c (process_block): Fix -Wall warning.
388
Theodore Ts'o36a43d61998-03-24 16:17:51 +00003891998-03-23 Theodore Ts'o <tytso@rsts-11.mit.edu>
390
391 * block.c (ext2fs_block_iterate3): Make the ref_offset field
392 contain the offset into the inode.i_blocks array when
393 ref_block is zero. Since we haven't done a formal
394 release of e2fsprogs since block_iterate2 was first
395 introduced, I removed block_iterate2, and renamed
396 block_iterate3 to be block_iterate2.
397
398 * bb_inode.c, bmove.c, dblist_dir.c, dir_iterate.c,
399 expanddir.c, ext2fs.h, ext2fsP.h, read_bb.c: Change
400 use of block_iterate and block_iterate2 to
401 block_iterate2 with the new prototype for the
402 interator function. (using blkcnt_t forr blockcount)
403
Theodore Ts'o674a4ee1998-03-23 02:06:52 +00004041998-03-21 Theodore Ts'o <tytso@rsts-11.mit.edu>
405
406 * ext2fs.h: Add new superblock fields (s_algorithm_usage_bitmap,
407 s_prealloc_blocks, s_prealloc_dir_blocks). Added
408 conditional defines of new features COMPAT_DIR_PREALLOC,
409 RO_COMPAT_LARGE_FILE RO_COMPAT_BTREE_DIR,
410 INCOMPAT_COMPRESSION, INCOMPAT_DIRNAME_SIZE. Changed
411 the library to declare that we support COMPAT_DIR_PREALLOC,
412 INCOMPAT_DIRNAME_SIZE, RO_COMPAT_LARGE_FILE.
413
414 * fileio.c: Rename function ext2fs_file_llseek to be
415 ext2fs_file_lseek, which is more accurate.
416
417 * block.c: Add new function ext2fs_block_iterate3 which calls
418 the iterator function with the blockcount argument of
419 type blkcnt_t. This version of the function is
420 allowed to handle large files; the other fucntions are
421 not.
422
423 * ext2fs.h: Add new type blkcnt_t
424
425 * ext2_err.et.in: Add error code EXT2_ET_FILE_TOO_BIG
426
427 * block.c (ext2fs_block_iterate2): Fix bug where the block count
428 field wasn't getting correctly incremented for sparse
429 files when the indirect or doubly-indirect block
430 specified in the inode was zero.
431
432Sun Mar 8 22:42:47 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
433
434 * unlink.c (unlink_proc):
435 * lookup.c (lookup_proc):
436 * link.c (link_proc):
437 * get_pathname.c (get_pathname_proc):
438 * dir_iterate.c (ext2fs_process_dir_block): Mask off high 8 bits
439 from dirent->name_len, so it can be used for other
440 purposes.
441
442 * ext2fs.h: Add definition of EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE,
443 and indicate that we have support for this incompatible
444 option.
445
Theodore Ts'oc7752561998-02-24 04:25:52 +0000446Mon Feb 23 08:46:33 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
447
448 * ext2_err.et.in: Added new error code, EXT2_ET_CANCEL_REQUESTED.
449
Theodore Ts'o79b05db1998-02-21 05:01:19 +0000450Fri Feb 20 23:58:01 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
451
452 * dblist.c (ext2fs_get_num_dirs): Improve the estimation of the
453 number of directories when the block group information is
454 unreliable.
455
Theodore Ts'oc4e749a1998-02-20 05:33:14 +00004561998-02-20 Theodore Y. Ts'o <tytso@edt.mit.edu>
457
Theodore Ts'o218a4861998-02-21 01:41:39 +0000458 * inode.c (ext2fs_get_next_inode): Always do the check to see if the
459 inode table is missing so that we catch the case where the
460 first block group is missing.
461
Theodore Ts'oc4e749a1998-02-20 05:33:14 +0000462 * getsize.c, ismounted.c, unix_io.c: #include errno.h since it's
463 needed.
464
Theodore Ts'o9abd2ce1998-02-16 22:00:37 +0000465Mon Feb 16 16:16:00 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
466
467 * ext2_io.h, ext2fs.h: Protect against being included multiple times.
468
469 * bmove.c: #include ext2fsP.h instead of "ext2fs/ext2fs.h"
470
471 * test_io.c (test_flush): Add a debugging printf when the flush
472 method is called.
473
474 * rw_bitmaps.c (ext2fs_read_bitmaps): If the bitmaps are already
475 read in, return right away.
476
Theodore Ts'o5953b9d1998-02-01 13:23:02 +0000477Sun Feb 1 08:20:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
478
479 * bitops.h: Don't try to do i386 inline asm functions if the
480 compiler isn't GCC.
481
482 * ext2fs.h: If EXT2_FLAT_INCLUDES is defined, #include e2_types.h,
483 instead of linux/types.h, and e2_bitops.h instead of
484 ext2fs/bitops.h.
485
486 * icount.c, version.c: Don't #include <et/com_err.h>, as it isn't
487 necessary.
488
Theodore Ts'ob5abe6f1998-01-19 14:47:53 +0000489Sat Jan 17 13:13:31 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
490
491 * inode.c (ext2fs_open_inode_scan): Initialize the group variables
492 so that we don't need to call get_next_blockgroup() the
493 first time around. Saves a bit of time, and prevents us
494 from needing to assign -1 to current_group (which is an
495 unsigned value).
496
497 * icount.c (insert_icount_el): Cast the estimated number of inodes
498 from a float to an ino_t.
499
500 * alloc.c, alloc_tables.c, badlbocks.c, bb_compat.c, bb_inode.c,
501 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
502 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
503 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
504 expanddir.c, ext2fs.h, fileio.c, freefs.c,
505 get_pathname.c, getsize.c, icount.c, initialize.c,
506 inline.c, inode.c, irel_ma.c, ismounted.c, link.c,
507 lookup.c, mkdir.c, namei.c, native.c, newdir.c,
508 openfs.c, read_bb.c, read_bb_file.c, rs_bitmap.c,
509 rw_bitmaps.c, swapfs.c, test_io.c, tst_badblocks.c,
510 tst_getsize.c, tst_iscan.c, unix_io.c, unlink.c,
511 valid_blk.c, version.c: If EXT2_FLAT_INCLUDES is
512 defined, then assume all of the
513 ext2-specific header files are in a flat directory.
514
515 * block.c, bmove.c, dirblock.c, fileio.c: Explicitly cast
516 all assignments from void * to be compatible with C++.
517
518Tue Jan 6 11:28:15 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
519
520 * closefs.c (ext2fs_flush): Add a call to io_channel_flush() to
521 make sure the contents of the disk are flushed to disk.
522
523Mon Dec 29 14:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
524
525 * dblist.c (ext2fs_add_dir_block): Change new to be new_entry to
526 avoid C++ namespace clash.
527
528 * bitmaps.c (ext2fs_copy_bitmap): Change new to be new_map to
529 avoid C++ namespace clash.
530
531 * ext2fs.h, bb_inode.c, block.c, bmove.c, brel.h, brel_ma.c,
532 irel.h, irel_ma.c, dblist.c, dblist_dir.c, dir_iterate.c,
533 ext2fsP.h, expanddir.c, get_pathname.c, inode.c, link.c,
534 unlink.c: Change private to be priv_data (to avoid C++
535 namespace clash)
536
Theodore Ts'o5be8dc21997-12-01 18:24:10 +0000537Fri Nov 28 09:26:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
538
539 * dblist.c (ext2fs_get_num_dirs): Make ext2fs_get_num_dirs more
540 paranoid about validating the directory counts from the
541 block group information.
542
543 * all files: Don't include stdlib.h anymore; include it in
544 ext2_fs.h, since that file requires stdlib.h
545
Theodore Ts'o89270b51997-11-24 11:44:25 +0000546Thu Nov 20 16:07:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
547
548 * expanddir.c (ext2fs_expand_dir): Check to make sure the block
549 bitmap is loaded, and return an error if it is not.
550 (expand_dir_proc): Only use ext2fs_write_dir_block when
551 writing a directory block, not when writing out a fresh
552 indirect block.
553
Theodore Ts'od36d8351997-11-12 03:48:07 +0000554Tue Nov 11 22:46:45 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
555
556 * Makefile.in, tst_getsize.c: Added new file which is used to test
557 the ext2fs_get_device_size function.
558
559 * ext2_err.et.in (EXT2_ET_UNIMPLEMENTED): Added new error code.
560
Theodore Ts'o79a90bd1997-11-03 19:16:55 +0000561Sun Nov 2 20:36:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
562
563 * ext2fs.h: Make ext2fs_get_mem take an unsigned argument.
564
565 * fileio.c (ext2fs_file_get_size, ext2fs_file_set_size,
566 ext2fs_file_get_fs): New functions added.
567
568
569Fri Oct 31 12:16:52 1997 <tytso@EDT.MIT.EDU>
570
571 * bitops.c (ext2fs_warn_bitmap, ext2fs_warn_bitmap2): Don't call
572 com_err if OMIT_COM_ERR is defined.
573
Theodore Ts'o1f0b6c11997-10-31 06:07:47 +0000574Thu Oct 30 11:33:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
575
576 * Rename new error codes to _ET_ in them for consistency.
577
Theodore Ts'oc555aeb1997-10-25 04:16:53 +0000578Sat Oct 25 00:06:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
579
Theodore Ts'o7b4e4531997-10-26 03:41:24 +0000580 * [all files, basically]: Added definition of ext2fs_get_mem,
581 ext2fs_free_mem, and ext2fs_resize_mem in ext2fs.h, and
582 changed all library routines to use these wrapper functions.
583
Theodore Ts'o78d8f901997-10-26 01:53:39 +0000584 * dblist.c, mkdir.c: use EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND
585 instead of the system error messages.
586
587 * ext2_err.et.in: Added new error messages EXT2_DIR_EXISTS and
588 EXT2_DB_NOT_FOUND
589
Theodore Ts'o30fab291997-10-25 22:37:42 +0000590 * ext2fs.h: Added function declarations and constants for bmap.c
591 and fileio.c.
592
593 * ext2_err.et.in: Added new error messages EXT2_FILE_RO and
594 EXT2_ET_MAGIC_EXT2_FILE
595
596 * Makefile.in: Added files bmap.c and fileio.c, and temporarily
597 commented out brel_ma.c and irel_ma.c
598
599 * bmap.c: New file which maps a file's logical block number to its
600 physical block number.
601
602 * fileio.c: New file which implements simple file reading and
603 writing primitives.
604
Theodore Ts'oc555aeb1997-10-25 04:16:53 +0000605 * alloc.c (ext2fs_alloc_block): New function which allocates a
Theodore Ts'o30fab291997-10-25 22:37:42 +0000606 block, zeros it, and updates the filesystem accounting
607 records appropriately.
Theodore Ts'oc555aeb1997-10-25 04:16:53 +0000608
609Wed Oct 22 16:47:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
610
611 * ext2_err.et.in: Added new error codes: EXT2_NO_MEMORY,
612 EXT2_INVALID_ARGUMENT, EXT2_BLOCK_ALLOC_FAIL,
613 EXT2_INODE_ALLOC_FAIL, EXT2_NOT_DIRECTORY
614
615 * Change various library files to use these functions instead of
616 EINVAL, ENOENT, etc.
617
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +0000618Mon Oct 20 19:32:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
619
620 * llseek.c: Check HAVE_LLSEEK_PROTOTYPE to see whether or not we
621 need to declare llseek().
622
Theodore Ts'o1d2ff461997-10-19 23:00:21 +0000623Sun Oct 19 18:56:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
624
Theodore Ts'od40259f1997-10-20 00:44:26 +0000625 * Rename io.h to be ext2_io.h (avoid namespace collisions)
626
Theodore Ts'o1d2ff461997-10-19 23:00:21 +0000627 * Add #ifdef's for HAVE_SYS_STAT_H and HAVE_SYS_TYPES_H
628
Theodore Ts'od163b091997-10-03 17:42:28 +0000629Fri Oct 3 13:35:59 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
630
631 * llseek.c (ext2fs_llseek): Fix type error for ext2fs_llseek()
632
633 * icount.c (ext2fs_icount_validate):
634 * bmove.c (process_block): Fix lint error in type for fprintf().
635
636Mon Sep 15 11:45:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
637
638 * inode.c (ext2fs_check_directory): Add support for the callback
639 to return the error code EXT2_ET_CALLBACK_NOTHANDLED.
640
Theodore Ts'offf876b1997-09-13 00:32:29 +0000641Thu Sep 4 12:28:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
642
643 * bitmaps.c (ext2fs_set_bitmap_padding): New function which sets the
644 padding of the bitmap to be all one's.
645
Theodore Ts'obc75f2a1997-09-04 00:43:10 +0000646Wed Sep 3 14:27:30 1997 Theodore Y. Ts'o <tytso@edt.mit.edu>
647
648 * llseek.c: Added missing semicolon to glibc fixup declaration of
649 llseek().
650
651 * bmove.c: Add #include of errno.h
652
Theodore Ts'oe9affb71997-08-24 02:57:55 +0000653Sat Aug 23 22:47:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
654
655 * Makefile.in (ELF_SO_VERSION): Bump version to be 2.4 since we've
656 added a new field to the io_channel (app_data).
657
658 * io.h: Add a new element to the io_channel structure, app_data.
659
660 * initialize.c, openfs.c: Set io->app_data to point at the
661 filesystem handle.
662
Theodore Ts'o1c27cac1997-08-14 17:20:42 +0000663Thu Aug 14 08:14:17 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
664
665 * io.h: Change the prototype of ext2fs_llseek() to use int's
666 instead of unsigned int's.
667
668 * llseek.c: Change to allow PIC and !HAVE_LLSEEK. Add a prototype
669 to make life easer for GNU Libc 2.
670
671 * rw_bitmaps.c: On the PowerPC, the big-endian variant of the ext2
672 filesystem has its bitmaps stored as 32-bit words with bit
673 0 as the LSB of each word. Thus a bitmap with only bit 0
674 set would be, as a string of bytes, 00 00 00 01 00 ... To
675 cope with this, we byte-reverse each word of a bitmap if
676 we have a big-endian filesystem, that is, if we are *not*
677 byte-swapping other word-sized numbers.
678
Theodore Ts'o3cb6c501997-08-11 20:29:22 +0000679Mon Aug 11 03:30:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
680
681 * dosio.c: New file to do DOS/BIOS disk accesses.
682
683 * namei.c (open_namei): Make pathlen be of type size_t.
684
685 * llseek.c: Always #include stdlib.h since it's need to define
686 size_t.
687
688 * io.h: Use errcode_t for magic numbers.
689
690 * icount.c (get_icount_el): Use size_t where appropriate
691
692 * dupfs.c (ext2fs_dup_handle):
693 * dblist.c (dir_block_cmp): Use size_t where appropriate.
694
695 * read_bb.c (ext2fs_read_bb_inode):
696 * cmp_bitmaps.c (ext2fs_compare_inode_bitmap): Use blk_t, ino_t
697 and size_t where appropriate.
698
699 * closefs.c (ext2fs_flush): Use dgrp_t instead of int where
700 appropriate.
701
702 * openfs.c (ext2fs_open):
703 * check_desc.c (ext2fs_check_desc): Use blk_t instead of int where
704 appropriate.
705
706 * rw_bitmaps.c (read_bitmaps):
707 * irel_ma.c:
708 * inode.c (ext2fs_write_inode):
709 * initialize.c (ext2fs_initialize):
710 * brel_ma.c: Fix to make be 16-bit safe.
711
712 * link.c (ext2fs_link):
713 * unlink.c (ext2fs_unlink):
714 * lookup.c (lookup_proc):
715 * ismounted.c (ext2fs_check_if_mounted):
716 * block.c (xlate_func): Add #pragma argsused for Turbo C.
717
Theodore Ts'o4cbe8af1997-08-10 23:07:40 +0000718Sun Aug 10 10:05:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
719
720 * block.c (ext2fs_block_iterate2): Use retval which is a errcode_t
721 type.
722
723 * bitmaps.c (make_bitmap): Use size_t instead of int where
724 appropriate.
725
726 * bb_inode.c (set_bad_block_proc): Add #pragma argsused for Turbo C.
727
728 * alloc.c (ext2fs_new_inode): Use ino_t instead of int for the
729 group number.
730
731 * get_pathname.c: Use ino_t instead of int where appropriate.
732
733 * ext2fs.h: Make the magic structure element be errcode_t instead
734 of int.
735
736 * alloc.c alloc_tables.c badblocks.c bb_compat.c bb_inode.c
737 bitmaps.c block.c bmove.c brel_ma.c check_desc.c closefs.c
738 cmp_bitmaps.c dblist.c dblist_dir.c dir_iterate.c
739 dirblock.c dupfs.c expanddir.c freefs.c get_pathname.c
740 icount.c initialize.c inline.c inode.c irel_ma.c link.c
741 llseek.c lookup.c mkdir.c namei.c newdir.c read_bb.c
742 read_bb_file.c rs_bitmap.c rw_bitmaps.c swapfs.c
743 test_io.c tst_badblocks.c tst_iscan.c unix_io.c unlink.c
744 valid_blk.c version.c: Add an #ifdef for HAVE_UNISTD_H
745
Theodore Ts'o024996c1997-06-17 05:38:35 +0000746Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
747
Theodore Ts'oa1230b11997-07-02 02:41:59 +0000748 * unix_io.c (unix_read_blk): If ext2fs_llseek() fails, but errno
749 is zero, then return EXT2_IO_LLSEEK_FAILED.
750
751 * ext2_err.et.in: Add a new error code, EXT2_IO_LLSEEK_FAILED.
752
Theodore Ts'o024996c1997-06-17 05:38:35 +0000753 * Release of E2fsprogs 1.11
754
Theodore Ts'o549860c1997-06-17 03:55:00 +0000755Mon Jun 16 23:53:06 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
756
757 * dblist.c (ext2fs_dblist_count): Added new function which returns
758 the number of directory blocks in dblist.
759
Theodore Ts'o36f21431997-06-14 07:25:40 +0000760Sat Jun 14 01:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
761
762 * unix_io.c (unix_flush): Make the io_channel flush function do a
763 fsync to flush the kernel buffers to disk.
764
Theodore Ts'o9941fb71997-06-11 22:27:41 +0000765Wed Jun 11 18:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
766
767 * inode.c (ext2fs_inode_scan_goto_blockgroup): Fix bug; the
768 current inode number wasn't being set by the
769 goto_blockgroup function.
770
Theodore Ts'o1e1da291997-06-09 14:51:29 +0000771Mon Jun 9 10:45:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
772
773 * bmove.c (ext2fs_move_blocks): New function which takes a bitmap
774 of blocks which need to be moved, and moves those blocks
775 to another location in the filesystem.
776
777 * rs_bitmap.c (ext2fs_resize_generic_bitmap): When expanding a
778 bitmap, make sure all of the new parts of the bitmap are
779 zero.
780
781Sun Jun 8 16:24:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
782
783 * bitmaps.c (ext2fs_copy_bitmap): Fix bug; the destination bitmap
784 wasn't being returned to the caller.
785
786 * alloc_tables.c (ext2fs_allocate_group_table): Add new function
787 ext2fs_allocate_group_table() which sets the group tables
788 for a particular block group. The relevant code was
789 factored out of ext2fs_allocate_tables().
790
791 * dblist.c (make_dblist): Adjust the initial size of the directory
Theodore Ts'o024996c1997-06-17 05:38:35 +0000792 block list to be a bit more realistic (ten plus twice the
Theodore Ts'o1e1da291997-06-09 14:51:29 +0000793 number of directories in the filesystem).
794
Theodore Ts'of635d7f1997-05-09 02:50:16 +0000795Thu May 8 22:19:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
796
797 * badblocks.c (ext2fs_badblocks_list_test): Fix bug where
798 ext2fs_badblocks_list_test would test the list (and exceed
799 array boundaries) if there were no bad blocks on the bad
800 blocks list. (Showed up when user tried: mke2fs -c -b 4096).
801
Theodore Ts'oa29f4d31997-04-29 21:26:48 +0000802Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
803
804 * Release of E2fsprogs version 1.10
805
806Thu Apr 24 10:13:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
807
808 * alloc_tables.c (ext2fs_allocate_tables): Correctly place the
809 inode and block bitmaps based on the RAID 0 stride
810 parameter (which is passed by mke2fs).
811
812 * ext2fs.h: Add "stride" parameter to ext2_filsys, to be used by
813 mke2fs to communicate the stride length to
814 ext2fs_allocate_tables()
815
816Wed Apr 23 21:50:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
817
818 * initialize.c (ext2fs_initialize): Fix to compile under Linux 1.2
819 systems. (We can't assume that the new filesystem types
820 are supported.)
821
822Wed Apr 23 18:40:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
823
824 * alloc_tables.c (ext2fs_allocate_tables): Make sure that we
825 allocate the inode and block bitmaps inside block group at
826 all times.
827
828Mon Apr 21 00:06:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
829
830 * alloc.c (ext2fs_new_block): Fix bug where if goal==0 and the
831 filesystem has no free blocks, ext2fs_new_block would loop
832 forever.
833
834 * dupfs.c (ext2fs_dup_handle): Duplicate an ext2 filesystem handle
835
836 * freefs.c (ext2fs_free_inode_cache): Decrement refcount and only
837 free if refcount goes to zero.
838
839 * inode.c (create_icache): Initialize refcount to 1.
840
841 * ext2fsP.h: Added refcount to ext2_inode_cache
842
843 * dblist.c (ext2fs_copy_dblist): New function to copy a directory
844 block list.
845
846 * badblocks.c (ext2fs_badblocks_copy): New function to copy a
847 badblocks structure.
848
849Sun Apr 20 23:19:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
850
851 * bitmaps.c (ext2fs_copy_bitmap): New function to copy a bitmap.
852
853 * unix_io.c, test_io.c (unix_open, test_open): Initialize the
854 refcount to 1.
855 (unix_close, test_close): Decrement the refcount and only
856 close the io_channel if the refcount goes to 0.
857
858 * io.h: Add refcount to the io_channel structure. Add new macro
859 interface io_channel_bumpcount() to bump the refcount.
860
861Thu Apr 17 20:25:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
862
863 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Use the inode
864 cache in the filesystem handle, instead of the inode cache
865 in a static variable.
866
867 * freefs.c: Added static function to free the inode cache (called by
868 ext2fs_free).
869
870 * ext2fsP.h: Added definition of the ext2_inode_cache structures.
871
872 * ext2fs.h: Added pointer to the inode_cache structure.
873
874 * block.c (block_iterate_ind, block_iterate_dind,
875 block_iterate_tind): If there are holes in the indirect,
876 doubly indirect, or triply indirect blocks, increment the
877 block count field automatically.
878
879Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
880
881 * Release of E2fsprogs version 1.09
882
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +0000883Mon Apr 14 20:38:56 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
884
885 * version.c (ext2fs_parse_version_string): Check the passed in
886 version string (instead of the hard-coded one).
887
888 * alloc_tables.c (ext2fs_allocate_tables): If the last block is
889 greater filesystem size, clamp it to prevent allocating a
890 block or inode bitmap beyond the filesystem.
891
892 * initialize.c (ext2fs_initialize): Fix bug where the metatdata
893 overhead calculation was accidentally removed.
894
895Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
896
897 * Release of E2fsprogs version 1.08
898
Theodore Ts'o521e3681997-04-29 17:48:10 +0000899Thu Apr 10 13:15:15 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
900
901 * dblist.c (ext2fs_set_dir_block): New function which sets the
902 block of a dblist entry, given the directory inode and
903 blockcnt.
904
905Sat Apr 5 12:42:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
906
907 * alloc_tables.c (ext2fs_allocate_tables): Allocate the bitmap and
908 inode bitmaps at staggered locations across the block
909 groups, to avoid concentrating the bitmaps on a small
910 number of disks when using striped RAID arrays.
911
912 * initialize.c (ext2fs_initialize): By default, choose the maximum
913 possible number of blocks per group (based on the size of
914 the bitmaps in the blocksize).
915
916Fri Apr 4 11:28:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
917
918 * initialize.c (ext2fs_initialize): Add support for
919 EXT2_COMPAT_SPARSE_SUPER feature.
920
921 * closefs.c (ext2fs_bg_has_super): New function to determine
922 whether or a particular block group should have a
923 superblock and block group descriptor. Used for the
924 EXT2_COMPAT_SPARSE_SUPER feature is turned on.
925 (ext2fs_flush): Check ext2fs_bg_has_super to see whether
926 or not the superblock should be written out for the block
927 group.
928
929 * ext2fs.h (EXT2_COMPAT_SPARSE_SUPER): Define compatibility flag
930 for sparse duplicate superblocks.
931
932 * version.c (ext2fs_get_library_version): New function which
933 returns the library version.
934
935 * version.c (ext2fs_parse_version_string): New function which
936 parses a version string and returns a version number,
937 so application programs can compare version numbers as
938 integers.
939
940Wed Mar 26 00:43:52 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
941
942 * icount.c (ext2fs_create_icount): Change function so that it also
943 takes a new argument which contains a "hint" icount
944 structure. This "hint" icount allows the create function
945 to set up the sorted list in advance. This reduces
946 significantly the amount of data moving needed to insert
947 these inodes into the list later.
948
949 * icount.c (ext2fs_icount_validate): New function which validates
950 that the icount structure's rep invariant.
951
952 * icount.c (get_icount_el): Completely revamped implementation
953 to subsume put_icount_el(). Put_icount_el() used to
954 use an O(N) implementation to insert in the middle
955 of the icount list. It now uses a O(ln N) to search
956 for where the icount should be inserted, and then uses
957 a memcpy to move the list down (instead of a for loop).
958
959 * icount.c (ext2fs_icount_fetch, ext2fs_icount_store,
960 ext2fs_icount_increment, ext2fs_icount_decrement): Check
961 to see if the inode is within bounds; if it isn't, return
962 EINVAL.
963
964 * bitops.h (ext2fs_test_generic_bitmap): Fix error message given
965 when a bad inode number is passed to test_generic_bitmap
966 to be EXT2FS_TEST_ERROR instead of the wrong
967 EXT2FS_UNMARK_ERROR.
968
Theodore Ts'o21c84b71997-04-29 16:15:03 +0000969Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
970
971 * Release of E2fsprogs version 1.07
972
973Sun Mar 2 16:46:18 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
974
975 * Makefile.in (ELF_VERSION): Change version to be 2.2
976
977Tue Feb 11 14:54:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
978
979 * alloc.c (ext2fs_get_free_blocks): Change routine to use
980 ext2fs_fast_test_block_bitmap_range().
981
982 * bitops.h (ext2fs_fast_test_block_bitmap_range,
983 ext2fs_test_block_bitmap_range: New inline functions which
984 test to see whether a contiguous range of blocks is
985 available.
986
987Thu Feb 6 10:00:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
988
989 * badblocks.c (ext2fs_badblocks_list_create): Rename sybmols to use
990 use ext2fs_badblocks_* instead of badblocks_*
991
992 * bb_compat.c: New file which translates between old badblocks_*()
993 names to ext2fs_badblocks_*()
994
995 * unlink.c (ext2fs_unlink): New file, moved ext2fs_unlink() from
996 link.c (since e2fsck doesn't use ext2fs_unlink()).
997
998 * rs_bitmap.c (ext2fs_resize_generic_bitmap): New file, contains
999 bitmap resizing routine moved from bitmaps.c, since e2fsck
1000 doesn't need to use this function.
1001
1002 * lookup.c (ext2fs_lookup): Moved ext2fs_lookup to its own file,
1003 since e2fsck only needs ext2fs_lookup.
1004
1005Mon Feb 3 10:11:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1006
1007 * inode.c (ext2fs_open_inode_scan): Set fs->badblocks if it is not
1008 already set; this is needed so that programs like dump
1009 which use the inode scan functions will deal with
1010 filesystems that have bad blocks in the inode table.
1011
1012Sun Feb 2 00:17:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1013
1014 * ext2fs.h (struct_badblocks_list, struct_badblocks_iterate):
1015 Moved to ext2fsP.h, since it doesn't need to be part of
1016 the public interface.
1017
1018 * dir_iterate.c: Move ext2_dir_iterate out of namei.c.
1019
1020Sat Feb 1 10:14:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1021
1022 * dblist.c (ext2fs_get_num_dirs): New file, which implements a
1023 directory block list abstraction. (Code moved from
1024 e2fsck).
1025
1026 * ext2fs.h, inode.c: Moved definition of ext2_struct_inode_scan to
1027 to inode.c (since no one else should be peeking inside it!)
1028
1029 * valid_blk.c (ext2_inode_has_valid_blocks): New function.
1030
1031 * openfs.c (ext2fs_open): Check the feature set in the ext2
1032 superblock, and refuse to open filesystems if they contain
1033 incompatible features. (Can be overriden with the
1034 EXT2_FLAG_FORCE
1035
1036Sun Jan 12 11:31:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1037
1038 * block.c (ext2fs_block_iterate2): Added new function
1039 ext2fs_block_iterate2 which changes the function
1040 signature of the callback function to include the
1041 referencing block and offset.
1042
1043 * inode.c (ext2fs_inode_scan_goto_blockgroup): Added new function
1044 ext2fs_inode_scan_goto_blockgroup which allows an
1045 application to jump to a particular block group while
1046 doing an inode scan.
1047
1048Wed Jan 1 23:50:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1049
1050 * dirblock.c: Include string.h, since we use memcpy().
1051
1052Tue Dec 3 12:27:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1053
1054 * getsize.c (ext2fs_get_device_size): The ioctl BLKGETSIZE returns
1055 a long not an int; this doesn't matter on i386 machines,
1056 but it does on Alpha's.
1057
1058Fri Nov 29 20:57:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1059
1060 * inode.c (ext2fs_write_inode, ext2fs_read_inode): If the inode
1061 table pointer is NULL, then return an error indicating
1062 that the inode table is missing.
1063 (get_next_blockgroup, get_next_blocks,
1064 ext2fs_get_next_inode): Don't treat a missing inode table
1065 as permanent error. Return MISSING_INODE_TABLE, but as an
1066 advisory error code, much like BAD_BLOCK_IN_INODE_TABLE.
1067
1068 * rw_bitmaps.c (ext2fs_write_block_bitmap,
1069 ext2fs_write_inode_bitmap): If the inode or block bitmap
1070 block is zero, then don't write out the inode or block
1071 bitmap. The idea here is to avoid stomping on the
1072 superblock.
1073 (read_bitmaps): If the inode or block bitmap block is
1074 zero, then fill in that portion of the inode or block
1075 bitmap with all zeros.
1076
1077 * inode.c (ext2fs_get_next_inode): Fix bug in handling of bad
1078 blocks in inode table when the inode table size is
1079 non-standard (and can therefore span blocks).
1080
1081Tue Oct 29 20:13:14 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1082
1083 * alloc.c (ext2fs_new_block): Fix fencepost error in
1084 ext2fs_new_block; make sure we don't try to allocate the
1085 first block beyond the end of the filesystem.
1086
1087Mon Oct 14 11:00:48 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1088
1089 * inode.c (check_for_inode_bad_blocks): New function called by
1090 get_next_blocks() to avoid reading in bad blocks marked in
1091 fs->badblocks. Inodes located in bad blocks are returned
1092 by ext2fs_get_next_inode() returns the error code
1093 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE.
1094
1095 * alloc_tables.c (ext2fs_allocate_tables): New function which
1096 performs the part of mke2fs's job of allocating the
1097 filesystem tables.
1098
1099 * test_io.c (test_close): IO manager which is used for testing
1100 purposes.
1101
1102Sun Oct 13 04:31:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1103
1104 * inode.c (ext2fs_get_next_inode): Separate out the function of
1105 setting up for a new block group to get_next_blockgroup().
1106 Separate out the function of reading in blocks of the
1107 inode table to get_next_blocks().
1108
1109 * ext2fs.h: Add the badblocks list to the ext2_filsys entry
1110
1111 * badblocks.c (badblocks_list_add, badblocks_list_test): Add
1112 blocks to the badblock list in sorted order. This allows
1113 badblocks_list_test to be coded using a binary search for
1114 speed.
1115
1116Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1117
1118 * Release of E2fsprogs version 1.06
1119
Theodore Ts'o5c576471997-04-29 15:29:49 +00001120Mon Oct 7 00:44:17 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1121
1122 * ext2fs.h, block.c, closefs.c, dirblock.c, inode.c, native.c,
1123 open.c: Change EXT2_SWAP to EXT2_FLAG_SWAP for
1124 consistency's sake.
1125
1126 * closefs.c (ext2fs_flush): If the flag EXT2_MASTER_SB_ONLY is
1127 set, then only write out the master superblock.
1128
1129Sun Oct 6 21:45:26 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1130
1131 * block.c (ext2fs_block_iterate): Fixed bug which caused
1132 block_iterate to fail to handle HURD created filesystems;
1133 it tested the inode translator field before the inode was
1134 loaded.
1135
1136Tue Sep 17 14:08:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1137
1138 * initialize.c (ext2fs_initialize): Make sure the description for
1139 the inode bitmap is set correctly.
1140
1141 * bitmaps.c (ext2fs_allocate_generic_bitmap): Fix minor type typo.
1142
1143Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1144
1145 * Release of E2fsprogs version 1.05
1146
Theodore Ts'o1e3472c1997-04-29 14:53:37 +00001147Sat Sep 7 07:36:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1148
1149 * initialize.c: Override the kernel's idea of default
1150 checkinterval from 0 (never) to 180 days.
1151
1152Wed Aug 28 03:20:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1153
1154 * namei.c (ext2fs_namei_follow): New function which follows
1155 symbolic link (if any) at the target.
1156
1157Tue Aug 27 01:48:43 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1158
1159 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Add support
1160 for shortcut function fs->read_inode() and fs->write_inode().
1161 Added inode_cache to reduce CPU time spent in doing
1162 byte swapping.
1163
1164 * swapfs.c (ext2fs_swap_super): Swap the new fields in a V2
1165 superblock.
1166
1167 * namei.c (ext2fs_follow_link): New function.
1168 (ext2fs_namei): Extended to have support for chasing
1169 symbolic links. ext2fs_namei() still returns an inode
1170 which is a symbolic link. Symbolic links are only chased
1171 while resolving the containing directory. To chase
1172 symbolic links of the final result, use
1173 ext2fs_follow_link().
1174
1175Mon Aug 26 23:46:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1176
1177 * ext2_err.et.in: Added new error code EXT2_ET_SYMLINK_LOOP.
1178
1179 * bitops.h (ext2fs_set_bit, ext2fs_celar_bit): Use asm inlines
1180 provided by Pete A. Zaitcev (zaitcev@lab.sun.mcst.ru).
1181
1182Thu Aug 22 00:40:18 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1183
1184 * initialize.c (ext2fs_initialize): On systems where the byte
1185 order is not i386 compatible, set the swap_byte flag.
1186
1187 * inode.c (inocpy_with_swap): Check to see if inode contains a
1188 fast symlink before swapping the inode block fields. This
1189 required adding a new argument to inocpy_with_swap to
1190 determine whether the mode field is in host order or not.
1191
1192Wed Aug 21 00:45:42 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1193
1194 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit): On
1195 the sparc, if EXT2_STD_BITOPS set, use the standard
1196 i386-compatible bitmask operations, instead on the
1197 non-standard native bitmask operators.
1198
1199Fri Aug 9 11:11:35 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1200
1201 * block.c (ext2fs_block_iterate): Cause block iterator to return
1202 the HURD translator block (along with everything else).
1203 If the flag BLOCK_FLAG_DATA_ONLY is passed to the block
1204 iterator, then don't return any meta data blocks
1205 (including the HURD translator).
1206
1207Wed Jul 17 17:13:34 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1208
1209 * gen_uuid.c: New file, which generates DCE-compatible UUIDs.
1210
1211 * uuid.c: New file, containing UUID utility functions.
1212
1213Tue Jul 16 10:19:16 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1214
1215 * ext2fs.h: Add a definition of the "real" ext2 superblock.
1216
1217Fri May 24 14:54:55 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1218
1219 * ext2fs.h: Fix erroneous ino_t type used in block_bitmap type.
1220
1221Sun May 19 15:39:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1222
1223 * openfs.c (ext2fs_open): If the blocksize in the superblock is
1224 zero, return the error EXT2_ET_CORRUPT_SUPERBLOCK, since
1225 that's a basic value that must be correct for the rest of
1226 the library to work.
1227
1228 * ext2_err.et.in (EXT2_ET_CORRUPT_SUPERBLOCK): Added new error
1229 code.
1230
Theodore Ts'o62c06f71997-04-29 14:34:47 +00001231Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1232
1233 * Release of E2fsprogs version 1.04
1234
Theodore Ts'o7f88b041997-04-26 14:48:50 +00001235Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
1236
1237 * Release of E2fsprogs version 1.03
1238
1239Tue Mar 26 12:06:32 1996 <tytso@rsts-11.mit.edu>
1240
1241 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit):
1242 Change the m68k bit numbering for bitmasks to match with
1243 the bit numbering used by all other ext2 implementations.
1244
1245Thu Mar 7 03:37:00 1996 <tytso@rsts-11.mit.edu>
1246
1247 * inode.c (ext2fs_get_next_inode, ext2fs_close_inode_scan,
1248 ext2fs_open_inode_scan): Support dynamically-sized inodes.
1249
1250Wed Mar 6 12:26:29 1996 <tytso@rsts-11.mit.edu>
1251
1252 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Support
1253 dynamically-sized inodes.
1254
1255 * openfs.c (ext2fs_open): Allow dynamic revision filesystem to be
1256 loaded.
1257
1258Tue Mar 5 03:49:37 1996 <tytso@rsts-11.mit.edu>
1259
1260 * initialize.c (ext2fs_initialize): Catch an error condition where
1261 the passed in size is *really* too small.
1262
1263 * alloc.c (ext2fs_new_inode):
1264 * ext2fs.h (EXT2_FIRST_INODE): Add support for dynamic revision to
1265 get first inode.
1266
1267Wed Feb 21 15:56:17 1996 <tytso@rsts-11.mit.edu>
1268
1269 * getsize.c (ext2fs_get_device_size): Open the device read-only
1270 when trying to determine its size.
1271
Theodore Ts'o74becf31997-04-26 14:37:06 +00001272Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
1273
1274 * Release of E2fsprogs version 1.02
1275
1276Sat Dec 9 09:57:50 1995 <tytso@rsts-11.mit.edu>
1277
1278 * rw_bitops.c (ext2fs_write_block_bitmap):
1279 * bitops.c (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
1280 * bitops.h (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
1281 Rename {test,set,clear}_bit to ext2fs_{test,set,clear}_bit,
1282 to avoid conflicts with with kernel include files. Also
1283 rename ADDR and CONST_ADDR to EXT2FS_ADDR and
1284 EXT2FS_CONST_ADDR.
1285
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001286Thu Oct 26 12:09:16 1995 <tytso@rsts-11.mit.edu>
1287
1288 * ext2_err.et: Updated message in EXT2_ET_BASE to say version 0.5c
1289
1290 * swapfs.c (ext2fs_swap_super): Put an #ifdef check around
1291 s_def_resuid and s_def_resgid for backwards compatibility.
1292
1293Fri Oct 20 23:33:31 1995 <tytso@rsts-11.mit.edu>
1294
1295 * bitops.h: Added #ifdef's for Sparc.
1296
1297Wed Sep 6 22:14:46 1995 <tytso@rsts-11.mit.edu>
1298
1299 * getsize.c: #include <sys/ioctl.h> under Linux to pick up ioctl()
1300 declaration
1301
1302 * closefs.c: #include <string.h> to pick up memset() declaration
1303
1304Mon Sep 4 21:45:29 1995 Remy Card <card@bbj>
1305
1306 * Makefile.in: Added support for BSD shared libraries.
1307
1308 * initialize.c (ext2fs_initialize): Correctly set the s_creator_os
1309 flag.
1310
1311Mon Sep 4 09:55:30 1995 <tytso@rsts-11.mit.edu>
1312
1313 * unix_io.c (unix_open): Add a double check; if the passed in name
1314 is NULL, return EXT2_ET_BAD_DEVICE_NAME.
1315
1316 * ext2_err.et (EXT2_ET_BAD_DEVICE_NAME): Added new error code
1317
1318Wed Aug 16 15:44:10 1995 <tytso@rsts-11.mit.edu>
1319
1320 * inode.c (ext2fs_check_directory): Use LINUX_S_ISDIR instead of
1321 S_ISDIR.
1322
1323Tue Aug 15 13:08:36 1995 <tytso@rsts-11.mit.edu>
1324
1325 * getsize.c (ext2fs_get_device_size): Add support for reading the
1326 partition size from a BSD disk label.
1327
1328Thu Aug 10 09:33:26 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1329
1330 * getsize.c (ext2fs_get_device_size): New function that determins
1331 the size of a device. Used by mke2fs and e2fsck.
1332
1333Sat Aug 12 03:09:54 1995 Remy Card <card@bbj>
1334
1335 * Makefile.in (install): Install static libraries in $(ulibdir)
1336 (/usr/lib on Linux) instead of $(libdir) (/lib on Linux).
1337
1338Wed Aug 9 17:04:23 1995 Theodore Y. Ts'o <tytso@dcl>
1339
1340 * bitmaps.c (ext2fs_free_inode_bitmap, ext2fs_free_block_bitmap):
1341 Move these functions to freefs.c.
1342
1343 * closefs.c (ext2fs_flush): If swapping blocks, clear the group
1344 descriptors shadow memory to keep purify quiet. (This
1345 also has the nice benefit that the unused portion of the
1346 shadow descriptors are zeroed out.)
1347
1348 * dirblock.c (ext2fs_write_dir_block): We need to use
1349 dirent->rec_len *before* it's byteswapped to find the
1350 location of the next directory structure!
1351
1352 * alloc.c (ext2fs_new_inode): Fix bug which could potentially
1353 cause ext2fs_new_inode to loop infinitely if we're trying
1354 to allocate an inode in group #0 and there are no free
1355 inodes at all in the system.
1356
1357 * closefs.c: #include <errno.h> if it exists.
1358
1359Sun Aug 6 13:27:50 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1360
1361 * ext2fs.h (BLOCK_FLAG_HOLE): Added new definition for
1362 BLOCK_FLAG_APPEND. Added documentation for the block
1363 interator flags.
1364
1365Sat Aug 5 11:44:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1366
1367 * Makefile.in (DLL_INSTALL_DIR, ELF_INSTALL_DIR): Set the
1368 installation directories correctly.
1369
1370Tue Jul 18 09:27:38 1995 <tytso@rsx-11.mit.edu>
1371
1372 * namei.c (process_dir_block):
1373 * mkdir.c (ext2fs_mkdir):
1374 * expanddir.c (expand_dir_proc): Use ext2fs_{read,write}_dir_block
1375 to read/write the directory block.
1376
1377 * dirblock.c (ext2fs_read_dir_block), ext2fs_write_dir_block): New
1378 file containing functions for reading and writing
1379 directory blocks (byte swapping if necesssary)
1380
1381 * block.c (block_iterate_ind, block_iterate_dind,
1382 block_iterate_tind): Byte swap the block addresses if
1383 EXT2_SWAP_BYTES is set (and swap them back before writing
1384 them out.)
1385
1386 * inode.c (inocpy_with_swap): New function.
1387 (ext2fs_get_next_inode, ext2fs_read_inode, ext2fs_write_inode):
1388 Call inocpy_with_swap if EXT2_SWAP_BYTES if set.
1389
1390 * closefs.c (ext2fs_flush): If EXT2_SWAP_BYTES is set, then swap
1391 the superblock and group descriptors before writing it out.
1392
1393 * openfs.c (ext2fs_open): If the magic number is byte-swapped,
1394 then set the EXT2_SWAP_BYTES and byte-swap the superblock
1395 and group descriptors.
1396
1397 * swapfs.c (ext2fs_swap_super, ext2fs_swap_group_desc): New functions
1398 to desp ext2 filesystem structures.
1399
1400 * bitops.c (set_bit, clear_bit, test_bit): Use modifications
1401 supplied by Pete A. Zaitcev so that the C language
1402 versions of these functions are more portable. They will
1403 now work on both little and big endian systems, and the
1404 assumption that 32-bit integers are used is gone.
1405
1406 * bitops.h (ext2_swab16, ext2_swab32): Added new functions for
1407 doing byte swapping.
1408
1409 * ext2fs.h (EXT2_SWAP_BYTES): Add new flag which indicates that
1410 byte swapping should take place.
1411
1412Sun Jul 16 06:21:43 1995 <tytso@rsx-11.mit.edu>
1413
1414 * Makefile.in, cmp_bitmaps.c (ext2fs_compare_block_bitmap_end,
1415 ext2fs_compare_inode_bitmap_end): Added new file
1416 containing routines to compare bitmaps.
1417
1418 * ext2_err.et (EXT2_ET_NEQ_BLOCK_BITMAP, EXT2_ET_NEQ_INODE_BITMAP):
1419 Added new error codes.
1420
1421Sat Jul 15 04:23:37 1995 <tytso@rsx-11.mit.edu>
1422
1423 * inode.c (ext2fs_get_next_inode): Don't check scan->inode_buffer;
1424 if the magic number is correct, it will be allocated.
1425
1426Fri Jul 14 19:02:59 1995 <tytso@rsx-11.mit.edu>
1427
1428 * block.c (block_iterate_ind, block_iterate_dind,
1429 block_iterate_tind): Don't recompute block_nr each loop;
1430 just increment it! Factor check of BLOCK_FLAG_APPEND out
1431 of the loop. Factor mask of BLOCK_CHANGED into changed
1432 variable out of the loop. (block_iterate_ind, in
1433 particular, gets called a lot, so every little
1434 optimization helps.)
1435
1436Thu Jul 13 08:02:45 1995 <tytso@rsx-11.mit.edu>
1437
1438 * block.c (block_iterate_ind, block_iterate_dind,
1439 block_iterate_tind): Precompute limit of loop to speed up
1440 block_iterate_ind and company.
1441
1442 * bitops.h (ext2fs_fast_mark_block_bitmap,
1443 ext2fs_fast_unmark_block_bitmap, ext2fs_fast_test_block_bitmap,
1444 ext2fs_fast_mark_inode_bitmap, ext2fs_fast_unmark_inode_bitmap,
1445 ext2fs_fast_test_inode_bitmap): Add fast version of these
1446 functions, which don't do range checking.
1447
1448 * bitops.h (ext2fs_get_block_bitmap_start,
1449 ext2fs_get_inode_bitmap_start, ext2fs_get_block_bitmap_end,
1450 ext2fs_get_inode_bitmap_end): Add new accessor functions
1451 which return the start and end points of the bitmaps.
1452
1453Tue Jul 11 18:59:41 1995 <tytso@rsx-11.mit.edu>
1454
1455 * llseek.c (ext2_llseek): If the offset is small enough, use lseek
1456 instead of llseek. The errno if the offset is too large
1457 and lseek is not supported should be EINVAL, not -EINVAL.
1458
1459Thu Jun 15 23:43:02 1995 Remy Card <card@bbj>
1460
1461 * Makefile.in: Added support for ELF shared libraries.
1462 Fixed typos in the compilation rules.
1463 (distclean): Added Makefile.
1464
1465 * llseek.c (llseek): New function, if llseek() does not exist in the
1466 C library.
1467 (ext2_llseek): Changed to call llseek().
1468
1469Mon Jun 12 08:29:07 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1470
1471 * ext2fs.h: Use __u32 to define blk_t, instead of unsigned long.
1472
1473Sun Jun 11 15:02:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1474
1475 * mkdir.c (ext2fs_mkdir): Use LINUX_S_IFDIR instead of S_IFDIR.
1476
1477 * ext2fs.h (LINUX_S_IFDIR): Define a linux specific versions of
1478 the S_*, which are normally defined in <sys/stat.h>. This
1479 allows us to compile e2fsprogs on a non-Linux system,
1480 which may have a different value for S_IFDIR.
1481
1482Sat Jun 10 23:47:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1483
1484 * bitops.c (clear_bit, set_bit): Remove calls to cli() and sti();
1485 this is a user-mode application!
1486
1487Thu Jun 8 13:13:22 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
1488
1489 * llseek.c: Put the include of <linux/unistd.h> inside the #ifdef
1490 __linux__ so that non-linux systems won't see it.
1491
1492 * alloc.c: Include <errno.h> if possible.
1493 * badblocks.c: Ditto.
1494 * bb_inode.c: Ditto.
1495 * bitmaps.c: Ditto.
1496 * block.c: Ditto.
1497 * expanddir.c: Ditto.
1498 * get_pathname.c: Ditto.
1499 * initialize.c: Ditto.
1500 * inode.c: Ditto.
1501 * llseek.c: Ditto.
1502 * mkdir.c: Ditto.
1503 * namei.c: Ditto.
1504 * newdir.c: Ditto.
1505 * openfs.c: Ditto.
1506 * rw_bitmaps.c: Ditto.
1507 * unix_io.c: Ditto.
1508
1509 * Makefile.in: Rewritten to conform to GNU coding standards and
1510 support separate compilation directories.
1511
1512Thu May 11 04:13:12 1995 <tytso@rsx-11.mit.edu>
1513
1514 * initialize.c (ext2fs_initialize): Don't allow more than one
1515 bitmaps's worth of inodes in a group.
1516
Theodore Ts'of3db3561997-04-26 13:34:30 +00001517Sat Mar 11 14:07:11 1995 Theodore Y. Ts'o <tytso@localhost>
1518
1519 * llseek.c (ext2_llseek): Added error checking to the llseek()
1520 compat code to protect against overflow. This only
1521 applies to 1.0 and early 1.1 kernels, which don't support
1522 the llseek() system call.
1523
1524Thu Nov 24 16:29:00 1994 Theodore Y. Ts'o (tytso@rt-11)
1525
1526 * unix_io.c (unix_open): Initialize the read_error and write_error
1527 io_channel pointers to be null.
1528
1529 * bb_inode.c (clear_bad_block_proc): If an illegal block number is
1530 found, clear it but don't try to update the filesystem
1531 accounting information, since that's hopeless anyway.
1532
1533 * block.c (bloblock_iterate_ind, bloblock_iterate_dind,
1534 bloblock_iterate_tind): Check to see if the indirect blocks are
1535 valid before trying to read them.
1536
1537 * ext2_err.et (EXT2_ET_BAD_IND_BLOCK, EX2_ET_BAD_DIND_BLOCK,
1538 EXT2_ET_BAD_TIND_BLOCK): Add new error codes.
1539
1540 * bitops.h (ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
1541 ext2fs_test_block_bitmap, ext2fs_mark_inode_bitmap,
1542 ext2fs_unmark_inode_bitmap, ext2fs_test_inode_bitmap): If an
1543 illegal block or inode number is passed in, return instead
1544 of trying to test, set, or clear the bit.
1545
1546Mon Nov 7 21:32:33 1994 Remy Card <card@bbj>
1547
1548 * Makefile: Added a dummy install target in case shared libraries
1549 are not built.
1550
1551Mon Oct 24 14:11:44 1994 (tytso@rsx-11)
1552
1553 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix calculation of how
1554 the real last block of the bitmap should be calculated.
1555
1556Wed Sep 7 10:05:36 1994 (tytso@rsx-11)
1557
1558 * bitmaps.c (ext2fs_fudge_inode_bitmap_end,
1559 ext2fs_fudge_block_bitmap_end, ext2fs_clear_inode_bitmap,
1560 ext2fs_clear_block_bitmap, ext2fs_free_inode_bitmap,
1561 ext2fs_free_block_bitmap): Add magic number checking for
1562 the inode and block bitmaps.
1563
1564 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix to set the correct
1565 magic number for a block bitmap instead of an inode bitmap.
1566
1567 * inode.c (ext2fs_close_inode_scan, ext2fs_get_next_inode): Add
1568 magic number checking for the inode_scan structure.
1569
1570 * badblocks.c (badblocks_list_free, badblocks_list_add,
1571 badblocks_list_test, badblocks_list_iterate_begin,
1572 badblocks_list_iterate, badblocks_list_iterate_end): Add
1573 magic number checking for the badblocks_list and
1574 badblocks_iterate structures.
1575
1576 * ext2_err.et (EXT2_ET_MAGIC_UNIX_IO_CHANNEL):
1577 * unix_io.c (unix_open, unix_close, unix_set_blksize, unix_read_blk,
1578 unix_write_blk, unix_flush): Add magic number checking
1579 both for io_channel structure and unix_private_data
1580 structure.
1581
1582 * openfs.c (ext2fs_open): Add check for io_manager structure's
1583 magic number.
1584
1585 * rw_bitmaps.c (ext2fs_write_inode_bitmap, ext2fs_write_block_bitmap,
1586 ext2fs_read_inode_bitmap, ext2fs_read_block_bitmap,
1587 ext2fs_read_bitmaps, ext2fs_write_bitmaps):
1588 * read_bb.c (ext2fs_read_bb_inode):
1589 * read_bb_file.c (ext2fs_read_bb_FILE):
1590 * newdir.c (ext2fs_new_dir_block):
1591 * namei.c (ext2fs_dir_iterate, ext2fs_lookup, ext2fs_namei):
1592 * link.c (ext2fs_link, ext2fs_unlink):
1593 * inode.c (ext2fs_open_inode_scan, ext2fs_read_inode,
1594 ext2fs_write_inode, ext2fs_get_blocks,
1595 ext2fs_check_directory):
1596 * get_pathname.c (ext2fs_get_pathname):
1597 * expanddir.c (ext2fs_expand_dir):
1598 * block.c (ext2fs_block_iterate):
1599 * bitmaps.c (ext2fs_allocate_inode_bitmap,
1600 ext2fs_allocate_block_bitmap):
1601 * bb_inode.c (ext2fs_update_bb_inode):
1602 * alloc.c (ext2fs_new_inode,ext2fs_new_block,ext2fs_get_free_blocks):
1603 * check_desc.c (ext2fs_check_desc):
1604 * closefs.c (ext2fs_close, ext2fs_flush):
1605 * freefs.c (ext2fs_free): Add check for ext2_filsys magic number.
1606
1607 * Makefile:
1608 * ext2fs.h:
1609 * openfs.c:
1610 * check_desc.c (ext2fs_check_desc): Move ext2fs_check_desc from
1611 openfs.c into its own file.
1612
1613 * ext2fs.h (EXT2_CHECK_MAGIC): Added macro for checking for
1614 structure magic numbers.
1615
1616 * closefs.c (ext2fs_flush): Folded in Remy Card's changes to clear
1617 the EXT2_VALID_FS flag in the backup superblock blocks, so that if
1618 someone uses the -b option to specify the use of the backup
1619 superblock --- this usually means that the main superblock is
1620 toast. :-)
1621
1622 * ext2fs.h:
1623 * ext2_err.et (EXT2_ET_REV_TOO_HIGH):
1624 * openfs.c (ext2fs_open): Folded in Remy Card's changes to add a
1625 revision level to the superblock.
1626
1627Sun Aug 21 00:50:08 1994 Theodore Y. Ts'o (tytso@rt-11)
1628
1629 * ext2fs.h:
1630 * bitmaps.c:
1631 * bitops.c
1632 * bitops.h:
1633 * openfs.c:
1634 * initialize.c: Completely revamped the inode and block bitmap
1635 structures, so that they can be better chance of being extensible
1636 in a shared library. They are now their own type, instead of
1637 being a char *. Also, the function signatures of
1638 ext2fs_test_block_bitmap, ext2fs_mark_block_bitmap,
1639 ext2fs_unmark_block_bitmap, ext2fs_test_inode_bitmap,
1640 ext2fs_mark_inode_bitmap, and ext2fs_unmark_inode_bitmap were
1641 changed to eliminate the ext2_filsys argument, since it is no
1642 longer necessary.
1643
1644Wed Aug 17 21:46:44 1994 Remy Card (card@bbj)
1645
1646 * unix_io.c (unix_read_blk and unix_write_blk): use the llseek
1647 system call if available.
1648
1649 * llseek.c: new file. This is the stub calling the llseek system
1650 call which allows supports for 2GB+ file systems.
1651
1652 * initialize.c (ext2fs_initialize): Ext2fs_initialize now stores
1653 the creator operating system.
1654
1655Wed Aug 17 10:03:24 1994 Theodore Y. Ts'o (tytso@rt-11)
1656
1657 * initialize.c (ext2fs_initialize): Ext2fs_initialize now sets up
1658 the group descriptor statistics in addition to everything else.
1659 This relieves mke2fs of the responsibility of doing it.
1660
1661 * bitops.c, bitops.h: Add assembly inline functions for the 68000.
1662 Added a new #define, _EXT2_HAVE_ASM_BITOPS_ to control whether or
1663 not the generic C function equivalents should be included or not.
1664
1665 * openfs.c (ext2fs_open): If a superblock is specified, then use
1666 the backup group descriptors that go along with this superblock,
1667 instead of using the primary group descriptors. This allows
1668 e2fsck to recover filesystems where the primary group descriptors
1669 have been trashed.
1670
1671