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