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