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