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