blob: 36a10aed388e0baeea56fd928e50e7df5fe34965 [file] [log] [blame]
Theodore Ts'o5953b9d1998-02-01 13:23:02 +00001Sun Feb 1 08:20:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
2
3 * bitops.h: Don't try to do i386 inline asm functions if the
4 compiler isn't GCC.
5
6 * ext2fs.h: If EXT2_FLAT_INCLUDES is defined, #include e2_types.h,
7 instead of linux/types.h, and e2_bitops.h instead of
8 ext2fs/bitops.h.
9
10 * icount.c, version.c: Don't #include <et/com_err.h>, as it isn't
11 necessary.
12
Theodore Ts'ob5abe6f1998-01-19 14:47:53 +000013Sat Jan 17 13:13:31 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
14
15 * inode.c (ext2fs_open_inode_scan): Initialize the group variables
16 so that we don't need to call get_next_blockgroup() the
17 first time around. Saves a bit of time, and prevents us
18 from needing to assign -1 to current_group (which is an
19 unsigned value).
20
21 * icount.c (insert_icount_el): Cast the estimated number of inodes
22 from a float to an ino_t.
23
24 * alloc.c, alloc_tables.c, badlbocks.c, bb_compat.c, bb_inode.c,
25 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
26 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
27 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
28 expanddir.c, ext2fs.h, fileio.c, freefs.c,
29 get_pathname.c, getsize.c, icount.c, initialize.c,
30 inline.c, inode.c, irel_ma.c, ismounted.c, link.c,
31 lookup.c, mkdir.c, namei.c, native.c, newdir.c,
32 openfs.c, read_bb.c, read_bb_file.c, rs_bitmap.c,
33 rw_bitmaps.c, swapfs.c, test_io.c, tst_badblocks.c,
34 tst_getsize.c, tst_iscan.c, unix_io.c, unlink.c,
35 valid_blk.c, version.c: If EXT2_FLAT_INCLUDES is
36 defined, then assume all of the
37 ext2-specific header files are in a flat directory.
38
39 * block.c, bmove.c, dirblock.c, fileio.c: Explicitly cast
40 all assignments from void * to be compatible with C++.
41
42Tue Jan 6 11:28:15 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
43
44 * closefs.c (ext2fs_flush): Add a call to io_channel_flush() to
45 make sure the contents of the disk are flushed to disk.
46
47Mon Dec 29 14:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
48
49 * dblist.c (ext2fs_add_dir_block): Change new to be new_entry to
50 avoid C++ namespace clash.
51
52 * bitmaps.c (ext2fs_copy_bitmap): Change new to be new_map to
53 avoid C++ namespace clash.
54
55 * ext2fs.h, bb_inode.c, block.c, bmove.c, brel.h, brel_ma.c,
56 irel.h, irel_ma.c, dblist.c, dblist_dir.c, dir_iterate.c,
57 ext2fsP.h, expanddir.c, get_pathname.c, inode.c, link.c,
58 unlink.c: Change private to be priv_data (to avoid C++
59 namespace clash)
60
Theodore Ts'o5be8dc21997-12-01 18:24:10 +000061Fri Nov 28 09:26:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
62
63 * dblist.c (ext2fs_get_num_dirs): Make ext2fs_get_num_dirs more
64 paranoid about validating the directory counts from the
65 block group information.
66
67 * all files: Don't include stdlib.h anymore; include it in
68 ext2_fs.h, since that file requires stdlib.h
69
Theodore Ts'o89270b51997-11-24 11:44:25 +000070Thu Nov 20 16:07:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
71
72 * expanddir.c (ext2fs_expand_dir): Check to make sure the block
73 bitmap is loaded, and return an error if it is not.
74 (expand_dir_proc): Only use ext2fs_write_dir_block when
75 writing a directory block, not when writing out a fresh
76 indirect block.
77
Theodore Ts'od36d8351997-11-12 03:48:07 +000078Tue Nov 11 22:46:45 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
79
80 * Makefile.in, tst_getsize.c: Added new file which is used to test
81 the ext2fs_get_device_size function.
82
83 * ext2_err.et.in (EXT2_ET_UNIMPLEMENTED): Added new error code.
84
Theodore Ts'o79a90bd1997-11-03 19:16:55 +000085Sun Nov 2 20:36:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
86
87 * ext2fs.h: Make ext2fs_get_mem take an unsigned argument.
88
89 * fileio.c (ext2fs_file_get_size, ext2fs_file_set_size,
90 ext2fs_file_get_fs): New functions added.
91
92
93Fri Oct 31 12:16:52 1997 <tytso@EDT.MIT.EDU>
94
95 * bitops.c (ext2fs_warn_bitmap, ext2fs_warn_bitmap2): Don't call
96 com_err if OMIT_COM_ERR is defined.
97
Theodore Ts'o1f0b6c11997-10-31 06:07:47 +000098Thu Oct 30 11:33:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
99
100 * Rename new error codes to _ET_ in them for consistency.
101
Theodore Ts'oc555aeb1997-10-25 04:16:53 +0000102Sat Oct 25 00:06:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
103
Theodore Ts'o7b4e4531997-10-26 03:41:24 +0000104 * [all files, basically]: Added definition of ext2fs_get_mem,
105 ext2fs_free_mem, and ext2fs_resize_mem in ext2fs.h, and
106 changed all library routines to use these wrapper functions.
107
Theodore Ts'o78d8f901997-10-26 01:53:39 +0000108 * dblist.c, mkdir.c: use EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND
109 instead of the system error messages.
110
111 * ext2_err.et.in: Added new error messages EXT2_DIR_EXISTS and
112 EXT2_DB_NOT_FOUND
113
Theodore Ts'o30fab291997-10-25 22:37:42 +0000114 * ext2fs.h: Added function declarations and constants for bmap.c
115 and fileio.c.
116
117 * ext2_err.et.in: Added new error messages EXT2_FILE_RO and
118 EXT2_ET_MAGIC_EXT2_FILE
119
120 * Makefile.in: Added files bmap.c and fileio.c, and temporarily
121 commented out brel_ma.c and irel_ma.c
122
123 * bmap.c: New file which maps a file's logical block number to its
124 physical block number.
125
126 * fileio.c: New file which implements simple file reading and
127 writing primitives.
128
Theodore Ts'oc555aeb1997-10-25 04:16:53 +0000129 * alloc.c (ext2fs_alloc_block): New function which allocates a
Theodore Ts'o30fab291997-10-25 22:37:42 +0000130 block, zeros it, and updates the filesystem accounting
131 records appropriately.
Theodore Ts'oc555aeb1997-10-25 04:16:53 +0000132
133Wed Oct 22 16:47:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
134
135 * ext2_err.et.in: Added new error codes: EXT2_NO_MEMORY,
136 EXT2_INVALID_ARGUMENT, EXT2_BLOCK_ALLOC_FAIL,
137 EXT2_INODE_ALLOC_FAIL, EXT2_NOT_DIRECTORY
138
139 * Change various library files to use these functions instead of
140 EINVAL, ENOENT, etc.
141
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +0000142Mon Oct 20 19:32:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
143
144 * llseek.c: Check HAVE_LLSEEK_PROTOTYPE to see whether or not we
145 need to declare llseek().
146
Theodore Ts'o1d2ff461997-10-19 23:00:21 +0000147Sun Oct 19 18:56:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
148
Theodore Ts'od40259f1997-10-20 00:44:26 +0000149 * Rename io.h to be ext2_io.h (avoid namespace collisions)
150
Theodore Ts'o1d2ff461997-10-19 23:00:21 +0000151 * Add #ifdef's for HAVE_SYS_STAT_H and HAVE_SYS_TYPES_H
152
Theodore Ts'od163b091997-10-03 17:42:28 +0000153Fri Oct 3 13:35:59 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
154
155 * llseek.c (ext2fs_llseek): Fix type error for ext2fs_llseek()
156
157 * icount.c (ext2fs_icount_validate):
158 * bmove.c (process_block): Fix lint error in type for fprintf().
159
160Mon Sep 15 11:45:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
161
162 * inode.c (ext2fs_check_directory): Add support for the callback
163 to return the error code EXT2_ET_CALLBACK_NOTHANDLED.
164
Theodore Ts'offf876b1997-09-13 00:32:29 +0000165Thu Sep 4 12:28:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
166
167 * bitmaps.c (ext2fs_set_bitmap_padding): New function which sets the
168 padding of the bitmap to be all one's.
169
Theodore Ts'obc75f2a1997-09-04 00:43:10 +0000170Wed Sep 3 14:27:30 1997 Theodore Y. Ts'o <tytso@edt.mit.edu>
171
172 * llseek.c: Added missing semicolon to glibc fixup declaration of
173 llseek().
174
175 * bmove.c: Add #include of errno.h
176
Theodore Ts'oe9affb71997-08-24 02:57:55 +0000177Sat Aug 23 22:47:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
178
179 * Makefile.in (ELF_SO_VERSION): Bump version to be 2.4 since we've
180 added a new field to the io_channel (app_data).
181
182 * io.h: Add a new element to the io_channel structure, app_data.
183
184 * initialize.c, openfs.c: Set io->app_data to point at the
185 filesystem handle.
186
Theodore Ts'o1c27cac1997-08-14 17:20:42 +0000187Thu Aug 14 08:14:17 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
188
189 * io.h: Change the prototype of ext2fs_llseek() to use int's
190 instead of unsigned int's.
191
192 * llseek.c: Change to allow PIC and !HAVE_LLSEEK. Add a prototype
193 to make life easer for GNU Libc 2.
194
195 * rw_bitmaps.c: On the PowerPC, the big-endian variant of the ext2
196 filesystem has its bitmaps stored as 32-bit words with bit
197 0 as the LSB of each word. Thus a bitmap with only bit 0
198 set would be, as a string of bytes, 00 00 00 01 00 ... To
199 cope with this, we byte-reverse each word of a bitmap if
200 we have a big-endian filesystem, that is, if we are *not*
201 byte-swapping other word-sized numbers.
202
Theodore Ts'o3cb6c501997-08-11 20:29:22 +0000203Mon Aug 11 03:30:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
204
205 * dosio.c: New file to do DOS/BIOS disk accesses.
206
207 * namei.c (open_namei): Make pathlen be of type size_t.
208
209 * llseek.c: Always #include stdlib.h since it's need to define
210 size_t.
211
212 * io.h: Use errcode_t for magic numbers.
213
214 * icount.c (get_icount_el): Use size_t where appropriate
215
216 * dupfs.c (ext2fs_dup_handle):
217 * dblist.c (dir_block_cmp): Use size_t where appropriate.
218
219 * read_bb.c (ext2fs_read_bb_inode):
220 * cmp_bitmaps.c (ext2fs_compare_inode_bitmap): Use blk_t, ino_t
221 and size_t where appropriate.
222
223 * closefs.c (ext2fs_flush): Use dgrp_t instead of int where
224 appropriate.
225
226 * openfs.c (ext2fs_open):
227 * check_desc.c (ext2fs_check_desc): Use blk_t instead of int where
228 appropriate.
229
230 * rw_bitmaps.c (read_bitmaps):
231 * irel_ma.c:
232 * inode.c (ext2fs_write_inode):
233 * initialize.c (ext2fs_initialize):
234 * brel_ma.c: Fix to make be 16-bit safe.
235
236 * link.c (ext2fs_link):
237 * unlink.c (ext2fs_unlink):
238 * lookup.c (lookup_proc):
239 * ismounted.c (ext2fs_check_if_mounted):
240 * block.c (xlate_func): Add #pragma argsused for Turbo C.
241
Theodore Ts'o4cbe8af1997-08-10 23:07:40 +0000242Sun Aug 10 10:05:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
243
244 * block.c (ext2fs_block_iterate2): Use retval which is a errcode_t
245 type.
246
247 * bitmaps.c (make_bitmap): Use size_t instead of int where
248 appropriate.
249
250 * bb_inode.c (set_bad_block_proc): Add #pragma argsused for Turbo C.
251
252 * alloc.c (ext2fs_new_inode): Use ino_t instead of int for the
253 group number.
254
255 * get_pathname.c: Use ino_t instead of int where appropriate.
256
257 * ext2fs.h: Make the magic structure element be errcode_t instead
258 of int.
259
260 * alloc.c alloc_tables.c badblocks.c bb_compat.c bb_inode.c
261 bitmaps.c block.c bmove.c brel_ma.c check_desc.c closefs.c
262 cmp_bitmaps.c dblist.c dblist_dir.c dir_iterate.c
263 dirblock.c dupfs.c expanddir.c freefs.c get_pathname.c
264 icount.c initialize.c inline.c inode.c irel_ma.c link.c
265 llseek.c lookup.c mkdir.c namei.c newdir.c read_bb.c
266 read_bb_file.c rs_bitmap.c rw_bitmaps.c swapfs.c
267 test_io.c tst_badblocks.c tst_iscan.c unix_io.c unlink.c
268 valid_blk.c version.c: Add an #ifdef for HAVE_UNISTD_H
269
Theodore Ts'o024996c1997-06-17 05:38:35 +0000270Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
271
Theodore Ts'oa1230b11997-07-02 02:41:59 +0000272 * unix_io.c (unix_read_blk): If ext2fs_llseek() fails, but errno
273 is zero, then return EXT2_IO_LLSEEK_FAILED.
274
275 * ext2_err.et.in: Add a new error code, EXT2_IO_LLSEEK_FAILED.
276
Theodore Ts'o024996c1997-06-17 05:38:35 +0000277 * Release of E2fsprogs 1.11
278
Theodore Ts'o549860c1997-06-17 03:55:00 +0000279Mon Jun 16 23:53:06 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
280
281 * dblist.c (ext2fs_dblist_count): Added new function which returns
282 the number of directory blocks in dblist.
283
Theodore Ts'o36f21431997-06-14 07:25:40 +0000284Sat Jun 14 01:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
285
286 * unix_io.c (unix_flush): Make the io_channel flush function do a
287 fsync to flush the kernel buffers to disk.
288
Theodore Ts'o9941fb71997-06-11 22:27:41 +0000289Wed Jun 11 18:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
290
291 * inode.c (ext2fs_inode_scan_goto_blockgroup): Fix bug; the
292 current inode number wasn't being set by the
293 goto_blockgroup function.
294
Theodore Ts'o1e1da291997-06-09 14:51:29 +0000295Mon Jun 9 10:45:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
296
297 * bmove.c (ext2fs_move_blocks): New function which takes a bitmap
298 of blocks which need to be moved, and moves those blocks
299 to another location in the filesystem.
300
301 * rs_bitmap.c (ext2fs_resize_generic_bitmap): When expanding a
302 bitmap, make sure all of the new parts of the bitmap are
303 zero.
304
305Sun Jun 8 16:24:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
306
307 * bitmaps.c (ext2fs_copy_bitmap): Fix bug; the destination bitmap
308 wasn't being returned to the caller.
309
310 * alloc_tables.c (ext2fs_allocate_group_table): Add new function
311 ext2fs_allocate_group_table() which sets the group tables
312 for a particular block group. The relevant code was
313 factored out of ext2fs_allocate_tables().
314
315 * dblist.c (make_dblist): Adjust the initial size of the directory
Theodore Ts'o024996c1997-06-17 05:38:35 +0000316 block list to be a bit more realistic (ten plus twice the
Theodore Ts'o1e1da291997-06-09 14:51:29 +0000317 number of directories in the filesystem).
318
Theodore Ts'of635d7f1997-05-09 02:50:16 +0000319Thu May 8 22:19:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
320
321 * badblocks.c (ext2fs_badblocks_list_test): Fix bug where
322 ext2fs_badblocks_list_test would test the list (and exceed
323 array boundaries) if there were no bad blocks on the bad
324 blocks list. (Showed up when user tried: mke2fs -c -b 4096).
325
Theodore Ts'oa29f4d31997-04-29 21:26:48 +0000326Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
327
328 * Release of E2fsprogs version 1.10
329
330Thu Apr 24 10:13:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
331
332 * alloc_tables.c (ext2fs_allocate_tables): Correctly place the
333 inode and block bitmaps based on the RAID 0 stride
334 parameter (which is passed by mke2fs).
335
336 * ext2fs.h: Add "stride" parameter to ext2_filsys, to be used by
337 mke2fs to communicate the stride length to
338 ext2fs_allocate_tables()
339
340Wed Apr 23 21:50:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
341
342 * initialize.c (ext2fs_initialize): Fix to compile under Linux 1.2
343 systems. (We can't assume that the new filesystem types
344 are supported.)
345
346Wed Apr 23 18:40:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
347
348 * alloc_tables.c (ext2fs_allocate_tables): Make sure that we
349 allocate the inode and block bitmaps inside block group at
350 all times.
351
352Mon Apr 21 00:06:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
353
354 * alloc.c (ext2fs_new_block): Fix bug where if goal==0 and the
355 filesystem has no free blocks, ext2fs_new_block would loop
356 forever.
357
358 * dupfs.c (ext2fs_dup_handle): Duplicate an ext2 filesystem handle
359
360 * freefs.c (ext2fs_free_inode_cache): Decrement refcount and only
361 free if refcount goes to zero.
362
363 * inode.c (create_icache): Initialize refcount to 1.
364
365 * ext2fsP.h: Added refcount to ext2_inode_cache
366
367 * dblist.c (ext2fs_copy_dblist): New function to copy a directory
368 block list.
369
370 * badblocks.c (ext2fs_badblocks_copy): New function to copy a
371 badblocks structure.
372
373Sun Apr 20 23:19:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
374
375 * bitmaps.c (ext2fs_copy_bitmap): New function to copy a bitmap.
376
377 * unix_io.c, test_io.c (unix_open, test_open): Initialize the
378 refcount to 1.
379 (unix_close, test_close): Decrement the refcount and only
380 close the io_channel if the refcount goes to 0.
381
382 * io.h: Add refcount to the io_channel structure. Add new macro
383 interface io_channel_bumpcount() to bump the refcount.
384
385Thu Apr 17 20:25:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
386
387 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Use the inode
388 cache in the filesystem handle, instead of the inode cache
389 in a static variable.
390
391 * freefs.c: Added static function to free the inode cache (called by
392 ext2fs_free).
393
394 * ext2fsP.h: Added definition of the ext2_inode_cache structures.
395
396 * ext2fs.h: Added pointer to the inode_cache structure.
397
398 * block.c (block_iterate_ind, block_iterate_dind,
399 block_iterate_tind): If there are holes in the indirect,
400 doubly indirect, or triply indirect blocks, increment the
401 block count field automatically.
402
403Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
404
405 * Release of E2fsprogs version 1.09
406
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +0000407Mon Apr 14 20:38:56 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
408
409 * version.c (ext2fs_parse_version_string): Check the passed in
410 version string (instead of the hard-coded one).
411
412 * alloc_tables.c (ext2fs_allocate_tables): If the last block is
413 greater filesystem size, clamp it to prevent allocating a
414 block or inode bitmap beyond the filesystem.
415
416 * initialize.c (ext2fs_initialize): Fix bug where the metatdata
417 overhead calculation was accidentally removed.
418
419Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
420
421 * Release of E2fsprogs version 1.08
422
Theodore Ts'o521e3681997-04-29 17:48:10 +0000423Thu Apr 10 13:15:15 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
424
425 * dblist.c (ext2fs_set_dir_block): New function which sets the
426 block of a dblist entry, given the directory inode and
427 blockcnt.
428
429Sat Apr 5 12:42:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
430
431 * alloc_tables.c (ext2fs_allocate_tables): Allocate the bitmap and
432 inode bitmaps at staggered locations across the block
433 groups, to avoid concentrating the bitmaps on a small
434 number of disks when using striped RAID arrays.
435
436 * initialize.c (ext2fs_initialize): By default, choose the maximum
437 possible number of blocks per group (based on the size of
438 the bitmaps in the blocksize).
439
440Fri Apr 4 11:28:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
441
442 * initialize.c (ext2fs_initialize): Add support for
443 EXT2_COMPAT_SPARSE_SUPER feature.
444
445 * closefs.c (ext2fs_bg_has_super): New function to determine
446 whether or a particular block group should have a
447 superblock and block group descriptor. Used for the
448 EXT2_COMPAT_SPARSE_SUPER feature is turned on.
449 (ext2fs_flush): Check ext2fs_bg_has_super to see whether
450 or not the superblock should be written out for the block
451 group.
452
453 * ext2fs.h (EXT2_COMPAT_SPARSE_SUPER): Define compatibility flag
454 for sparse duplicate superblocks.
455
456 * version.c (ext2fs_get_library_version): New function which
457 returns the library version.
458
459 * version.c (ext2fs_parse_version_string): New function which
460 parses a version string and returns a version number,
461 so application programs can compare version numbers as
462 integers.
463
464Wed Mar 26 00:43:52 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
465
466 * icount.c (ext2fs_create_icount): Change function so that it also
467 takes a new argument which contains a "hint" icount
468 structure. This "hint" icount allows the create function
469 to set up the sorted list in advance. This reduces
470 significantly the amount of data moving needed to insert
471 these inodes into the list later.
472
473 * icount.c (ext2fs_icount_validate): New function which validates
474 that the icount structure's rep invariant.
475
476 * icount.c (get_icount_el): Completely revamped implementation
477 to subsume put_icount_el(). Put_icount_el() used to
478 use an O(N) implementation to insert in the middle
479 of the icount list. It now uses a O(ln N) to search
480 for where the icount should be inserted, and then uses
481 a memcpy to move the list down (instead of a for loop).
482
483 * icount.c (ext2fs_icount_fetch, ext2fs_icount_store,
484 ext2fs_icount_increment, ext2fs_icount_decrement): Check
485 to see if the inode is within bounds; if it isn't, return
486 EINVAL.
487
488 * bitops.h (ext2fs_test_generic_bitmap): Fix error message given
489 when a bad inode number is passed to test_generic_bitmap
490 to be EXT2FS_TEST_ERROR instead of the wrong
491 EXT2FS_UNMARK_ERROR.
492
Theodore Ts'o21c84b71997-04-29 16:15:03 +0000493Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
494
495 * Release of E2fsprogs version 1.07
496
497Sun Mar 2 16:46:18 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
498
499 * Makefile.in (ELF_VERSION): Change version to be 2.2
500
501Tue Feb 11 14:54:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
502
503 * alloc.c (ext2fs_get_free_blocks): Change routine to use
504 ext2fs_fast_test_block_bitmap_range().
505
506 * bitops.h (ext2fs_fast_test_block_bitmap_range,
507 ext2fs_test_block_bitmap_range: New inline functions which
508 test to see whether a contiguous range of blocks is
509 available.
510
511Thu Feb 6 10:00:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
512
513 * badblocks.c (ext2fs_badblocks_list_create): Rename sybmols to use
514 use ext2fs_badblocks_* instead of badblocks_*
515
516 * bb_compat.c: New file which translates between old badblocks_*()
517 names to ext2fs_badblocks_*()
518
519 * unlink.c (ext2fs_unlink): New file, moved ext2fs_unlink() from
520 link.c (since e2fsck doesn't use ext2fs_unlink()).
521
522 * rs_bitmap.c (ext2fs_resize_generic_bitmap): New file, contains
523 bitmap resizing routine moved from bitmaps.c, since e2fsck
524 doesn't need to use this function.
525
526 * lookup.c (ext2fs_lookup): Moved ext2fs_lookup to its own file,
527 since e2fsck only needs ext2fs_lookup.
528
529Mon Feb 3 10:11:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
530
531 * inode.c (ext2fs_open_inode_scan): Set fs->badblocks if it is not
532 already set; this is needed so that programs like dump
533 which use the inode scan functions will deal with
534 filesystems that have bad blocks in the inode table.
535
536Sun Feb 2 00:17:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
537
538 * ext2fs.h (struct_badblocks_list, struct_badblocks_iterate):
539 Moved to ext2fsP.h, since it doesn't need to be part of
540 the public interface.
541
542 * dir_iterate.c: Move ext2_dir_iterate out of namei.c.
543
544Sat Feb 1 10:14:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
545
546 * dblist.c (ext2fs_get_num_dirs): New file, which implements a
547 directory block list abstraction. (Code moved from
548 e2fsck).
549
550 * ext2fs.h, inode.c: Moved definition of ext2_struct_inode_scan to
551 to inode.c (since no one else should be peeking inside it!)
552
553 * valid_blk.c (ext2_inode_has_valid_blocks): New function.
554
555 * openfs.c (ext2fs_open): Check the feature set in the ext2
556 superblock, and refuse to open filesystems if they contain
557 incompatible features. (Can be overriden with the
558 EXT2_FLAG_FORCE
559
560Sun Jan 12 11:31:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
561
562 * block.c (ext2fs_block_iterate2): Added new function
563 ext2fs_block_iterate2 which changes the function
564 signature of the callback function to include the
565 referencing block and offset.
566
567 * inode.c (ext2fs_inode_scan_goto_blockgroup): Added new function
568 ext2fs_inode_scan_goto_blockgroup which allows an
569 application to jump to a particular block group while
570 doing an inode scan.
571
572Wed Jan 1 23:50:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
573
574 * dirblock.c: Include string.h, since we use memcpy().
575
576Tue Dec 3 12:27:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
577
578 * getsize.c (ext2fs_get_device_size): The ioctl BLKGETSIZE returns
579 a long not an int; this doesn't matter on i386 machines,
580 but it does on Alpha's.
581
582Fri Nov 29 20:57:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
583
584 * inode.c (ext2fs_write_inode, ext2fs_read_inode): If the inode
585 table pointer is NULL, then return an error indicating
586 that the inode table is missing.
587 (get_next_blockgroup, get_next_blocks,
588 ext2fs_get_next_inode): Don't treat a missing inode table
589 as permanent error. Return MISSING_INODE_TABLE, but as an
590 advisory error code, much like BAD_BLOCK_IN_INODE_TABLE.
591
592 * rw_bitmaps.c (ext2fs_write_block_bitmap,
593 ext2fs_write_inode_bitmap): If the inode or block bitmap
594 block is zero, then don't write out the inode or block
595 bitmap. The idea here is to avoid stomping on the
596 superblock.
597 (read_bitmaps): If the inode or block bitmap block is
598 zero, then fill in that portion of the inode or block
599 bitmap with all zeros.
600
601 * inode.c (ext2fs_get_next_inode): Fix bug in handling of bad
602 blocks in inode table when the inode table size is
603 non-standard (and can therefore span blocks).
604
605Tue Oct 29 20:13:14 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
606
607 * alloc.c (ext2fs_new_block): Fix fencepost error in
608 ext2fs_new_block; make sure we don't try to allocate the
609 first block beyond the end of the filesystem.
610
611Mon Oct 14 11:00:48 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
612
613 * inode.c (check_for_inode_bad_blocks): New function called by
614 get_next_blocks() to avoid reading in bad blocks marked in
615 fs->badblocks. Inodes located in bad blocks are returned
616 by ext2fs_get_next_inode() returns the error code
617 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE.
618
619 * alloc_tables.c (ext2fs_allocate_tables): New function which
620 performs the part of mke2fs's job of allocating the
621 filesystem tables.
622
623 * test_io.c (test_close): IO manager which is used for testing
624 purposes.
625
626Sun Oct 13 04:31:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
627
628 * inode.c (ext2fs_get_next_inode): Separate out the function of
629 setting up for a new block group to get_next_blockgroup().
630 Separate out the function of reading in blocks of the
631 inode table to get_next_blocks().
632
633 * ext2fs.h: Add the badblocks list to the ext2_filsys entry
634
635 * badblocks.c (badblocks_list_add, badblocks_list_test): Add
636 blocks to the badblock list in sorted order. This allows
637 badblocks_list_test to be coded using a binary search for
638 speed.
639
640Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
641
642 * Release of E2fsprogs version 1.06
643
Theodore Ts'o5c576471997-04-29 15:29:49 +0000644Mon Oct 7 00:44:17 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
645
646 * ext2fs.h, block.c, closefs.c, dirblock.c, inode.c, native.c,
647 open.c: Change EXT2_SWAP to EXT2_FLAG_SWAP for
648 consistency's sake.
649
650 * closefs.c (ext2fs_flush): If the flag EXT2_MASTER_SB_ONLY is
651 set, then only write out the master superblock.
652
653Sun Oct 6 21:45:26 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
654
655 * block.c (ext2fs_block_iterate): Fixed bug which caused
656 block_iterate to fail to handle HURD created filesystems;
657 it tested the inode translator field before the inode was
658 loaded.
659
660Tue Sep 17 14:08:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
661
662 * initialize.c (ext2fs_initialize): Make sure the description for
663 the inode bitmap is set correctly.
664
665 * bitmaps.c (ext2fs_allocate_generic_bitmap): Fix minor type typo.
666
667Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
668
669 * Release of E2fsprogs version 1.05
670
Theodore Ts'o1e3472c1997-04-29 14:53:37 +0000671Sat Sep 7 07:36:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
672
673 * initialize.c: Override the kernel's idea of default
674 checkinterval from 0 (never) to 180 days.
675
676Wed Aug 28 03:20:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
677
678 * namei.c (ext2fs_namei_follow): New function which follows
679 symbolic link (if any) at the target.
680
681Tue Aug 27 01:48:43 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
682
683 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Add support
684 for shortcut function fs->read_inode() and fs->write_inode().
685 Added inode_cache to reduce CPU time spent in doing
686 byte swapping.
687
688 * swapfs.c (ext2fs_swap_super): Swap the new fields in a V2
689 superblock.
690
691 * namei.c (ext2fs_follow_link): New function.
692 (ext2fs_namei): Extended to have support for chasing
693 symbolic links. ext2fs_namei() still returns an inode
694 which is a symbolic link. Symbolic links are only chased
695 while resolving the containing directory. To chase
696 symbolic links of the final result, use
697 ext2fs_follow_link().
698
699Mon Aug 26 23:46:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
700
701 * ext2_err.et.in: Added new error code EXT2_ET_SYMLINK_LOOP.
702
703 * bitops.h (ext2fs_set_bit, ext2fs_celar_bit): Use asm inlines
704 provided by Pete A. Zaitcev (zaitcev@lab.sun.mcst.ru).
705
706Thu Aug 22 00:40:18 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
707
708 * initialize.c (ext2fs_initialize): On systems where the byte
709 order is not i386 compatible, set the swap_byte flag.
710
711 * inode.c (inocpy_with_swap): Check to see if inode contains a
712 fast symlink before swapping the inode block fields. This
713 required adding a new argument to inocpy_with_swap to
714 determine whether the mode field is in host order or not.
715
716Wed Aug 21 00:45:42 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
717
718 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit): On
719 the sparc, if EXT2_STD_BITOPS set, use the standard
720 i386-compatible bitmask operations, instead on the
721 non-standard native bitmask operators.
722
723Fri Aug 9 11:11:35 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
724
725 * block.c (ext2fs_block_iterate): Cause block iterator to return
726 the HURD translator block (along with everything else).
727 If the flag BLOCK_FLAG_DATA_ONLY is passed to the block
728 iterator, then don't return any meta data blocks
729 (including the HURD translator).
730
731Wed Jul 17 17:13:34 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
732
733 * gen_uuid.c: New file, which generates DCE-compatible UUIDs.
734
735 * uuid.c: New file, containing UUID utility functions.
736
737Tue Jul 16 10:19:16 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
738
739 * ext2fs.h: Add a definition of the "real" ext2 superblock.
740
741Fri May 24 14:54:55 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
742
743 * ext2fs.h: Fix erroneous ino_t type used in block_bitmap type.
744
745Sun May 19 15:39:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
746
747 * openfs.c (ext2fs_open): If the blocksize in the superblock is
748 zero, return the error EXT2_ET_CORRUPT_SUPERBLOCK, since
749 that's a basic value that must be correct for the rest of
750 the library to work.
751
752 * ext2_err.et.in (EXT2_ET_CORRUPT_SUPERBLOCK): Added new error
753 code.
754
Theodore Ts'o62c06f71997-04-29 14:34:47 +0000755Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
756
757 * Release of E2fsprogs version 1.04
758
Theodore Ts'o7f88b041997-04-26 14:48:50 +0000759Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
760
761 * Release of E2fsprogs version 1.03
762
763Tue Mar 26 12:06:32 1996 <tytso@rsts-11.mit.edu>
764
765 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit):
766 Change the m68k bit numbering for bitmasks to match with
767 the bit numbering used by all other ext2 implementations.
768
769Thu Mar 7 03:37:00 1996 <tytso@rsts-11.mit.edu>
770
771 * inode.c (ext2fs_get_next_inode, ext2fs_close_inode_scan,
772 ext2fs_open_inode_scan): Support dynamically-sized inodes.
773
774Wed Mar 6 12:26:29 1996 <tytso@rsts-11.mit.edu>
775
776 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Support
777 dynamically-sized inodes.
778
779 * openfs.c (ext2fs_open): Allow dynamic revision filesystem to be
780 loaded.
781
782Tue Mar 5 03:49:37 1996 <tytso@rsts-11.mit.edu>
783
784 * initialize.c (ext2fs_initialize): Catch an error condition where
785 the passed in size is *really* too small.
786
787 * alloc.c (ext2fs_new_inode):
788 * ext2fs.h (EXT2_FIRST_INODE): Add support for dynamic revision to
789 get first inode.
790
791Wed Feb 21 15:56:17 1996 <tytso@rsts-11.mit.edu>
792
793 * getsize.c (ext2fs_get_device_size): Open the device read-only
794 when trying to determine its size.
795
Theodore Ts'o74becf31997-04-26 14:37:06 +0000796Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
797
798 * Release of E2fsprogs version 1.02
799
800Sat Dec 9 09:57:50 1995 <tytso@rsts-11.mit.edu>
801
802 * rw_bitops.c (ext2fs_write_block_bitmap):
803 * bitops.c (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
804 * bitops.h (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
805 Rename {test,set,clear}_bit to ext2fs_{test,set,clear}_bit,
806 to avoid conflicts with with kernel include files. Also
807 rename ADDR and CONST_ADDR to EXT2FS_ADDR and
808 EXT2FS_CONST_ADDR.
809
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000810Thu Oct 26 12:09:16 1995 <tytso@rsts-11.mit.edu>
811
812 * ext2_err.et: Updated message in EXT2_ET_BASE to say version 0.5c
813
814 * swapfs.c (ext2fs_swap_super): Put an #ifdef check around
815 s_def_resuid and s_def_resgid for backwards compatibility.
816
817Fri Oct 20 23:33:31 1995 <tytso@rsts-11.mit.edu>
818
819 * bitops.h: Added #ifdef's for Sparc.
820
821Wed Sep 6 22:14:46 1995 <tytso@rsts-11.mit.edu>
822
823 * getsize.c: #include <sys/ioctl.h> under Linux to pick up ioctl()
824 declaration
825
826 * closefs.c: #include <string.h> to pick up memset() declaration
827
828Mon Sep 4 21:45:29 1995 Remy Card <card@bbj>
829
830 * Makefile.in: Added support for BSD shared libraries.
831
832 * initialize.c (ext2fs_initialize): Correctly set the s_creator_os
833 flag.
834
835Mon Sep 4 09:55:30 1995 <tytso@rsts-11.mit.edu>
836
837 * unix_io.c (unix_open): Add a double check; if the passed in name
838 is NULL, return EXT2_ET_BAD_DEVICE_NAME.
839
840 * ext2_err.et (EXT2_ET_BAD_DEVICE_NAME): Added new error code
841
842Wed Aug 16 15:44:10 1995 <tytso@rsts-11.mit.edu>
843
844 * inode.c (ext2fs_check_directory): Use LINUX_S_ISDIR instead of
845 S_ISDIR.
846
847Tue Aug 15 13:08:36 1995 <tytso@rsts-11.mit.edu>
848
849 * getsize.c (ext2fs_get_device_size): Add support for reading the
850 partition size from a BSD disk label.
851
852Thu Aug 10 09:33:26 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
853
854 * getsize.c (ext2fs_get_device_size): New function that determins
855 the size of a device. Used by mke2fs and e2fsck.
856
857Sat Aug 12 03:09:54 1995 Remy Card <card@bbj>
858
859 * Makefile.in (install): Install static libraries in $(ulibdir)
860 (/usr/lib on Linux) instead of $(libdir) (/lib on Linux).
861
862Wed Aug 9 17:04:23 1995 Theodore Y. Ts'o <tytso@dcl>
863
864 * bitmaps.c (ext2fs_free_inode_bitmap, ext2fs_free_block_bitmap):
865 Move these functions to freefs.c.
866
867 * closefs.c (ext2fs_flush): If swapping blocks, clear the group
868 descriptors shadow memory to keep purify quiet. (This
869 also has the nice benefit that the unused portion of the
870 shadow descriptors are zeroed out.)
871
872 * dirblock.c (ext2fs_write_dir_block): We need to use
873 dirent->rec_len *before* it's byteswapped to find the
874 location of the next directory structure!
875
876 * alloc.c (ext2fs_new_inode): Fix bug which could potentially
877 cause ext2fs_new_inode to loop infinitely if we're trying
878 to allocate an inode in group #0 and there are no free
879 inodes at all in the system.
880
881 * closefs.c: #include <errno.h> if it exists.
882
883Sun Aug 6 13:27:50 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
884
885 * ext2fs.h (BLOCK_FLAG_HOLE): Added new definition for
886 BLOCK_FLAG_APPEND. Added documentation for the block
887 interator flags.
888
889Sat Aug 5 11:44:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
890
891 * Makefile.in (DLL_INSTALL_DIR, ELF_INSTALL_DIR): Set the
892 installation directories correctly.
893
894Tue Jul 18 09:27:38 1995 <tytso@rsx-11.mit.edu>
895
896 * namei.c (process_dir_block):
897 * mkdir.c (ext2fs_mkdir):
898 * expanddir.c (expand_dir_proc): Use ext2fs_{read,write}_dir_block
899 to read/write the directory block.
900
901 * dirblock.c (ext2fs_read_dir_block), ext2fs_write_dir_block): New
902 file containing functions for reading and writing
903 directory blocks (byte swapping if necesssary)
904
905 * block.c (block_iterate_ind, block_iterate_dind,
906 block_iterate_tind): Byte swap the block addresses if
907 EXT2_SWAP_BYTES is set (and swap them back before writing
908 them out.)
909
910 * inode.c (inocpy_with_swap): New function.
911 (ext2fs_get_next_inode, ext2fs_read_inode, ext2fs_write_inode):
912 Call inocpy_with_swap if EXT2_SWAP_BYTES if set.
913
914 * closefs.c (ext2fs_flush): If EXT2_SWAP_BYTES is set, then swap
915 the superblock and group descriptors before writing it out.
916
917 * openfs.c (ext2fs_open): If the magic number is byte-swapped,
918 then set the EXT2_SWAP_BYTES and byte-swap the superblock
919 and group descriptors.
920
921 * swapfs.c (ext2fs_swap_super, ext2fs_swap_group_desc): New functions
922 to desp ext2 filesystem structures.
923
924 * bitops.c (set_bit, clear_bit, test_bit): Use modifications
925 supplied by Pete A. Zaitcev so that the C language
926 versions of these functions are more portable. They will
927 now work on both little and big endian systems, and the
928 assumption that 32-bit integers are used is gone.
929
930 * bitops.h (ext2_swab16, ext2_swab32): Added new functions for
931 doing byte swapping.
932
933 * ext2fs.h (EXT2_SWAP_BYTES): Add new flag which indicates that
934 byte swapping should take place.
935
936Sun Jul 16 06:21:43 1995 <tytso@rsx-11.mit.edu>
937
938 * Makefile.in, cmp_bitmaps.c (ext2fs_compare_block_bitmap_end,
939 ext2fs_compare_inode_bitmap_end): Added new file
940 containing routines to compare bitmaps.
941
942 * ext2_err.et (EXT2_ET_NEQ_BLOCK_BITMAP, EXT2_ET_NEQ_INODE_BITMAP):
943 Added new error codes.
944
945Sat Jul 15 04:23:37 1995 <tytso@rsx-11.mit.edu>
946
947 * inode.c (ext2fs_get_next_inode): Don't check scan->inode_buffer;
948 if the magic number is correct, it will be allocated.
949
950Fri Jul 14 19:02:59 1995 <tytso@rsx-11.mit.edu>
951
952 * block.c (block_iterate_ind, block_iterate_dind,
953 block_iterate_tind): Don't recompute block_nr each loop;
954 just increment it! Factor check of BLOCK_FLAG_APPEND out
955 of the loop. Factor mask of BLOCK_CHANGED into changed
956 variable out of the loop. (block_iterate_ind, in
957 particular, gets called a lot, so every little
958 optimization helps.)
959
960Thu Jul 13 08:02:45 1995 <tytso@rsx-11.mit.edu>
961
962 * block.c (block_iterate_ind, block_iterate_dind,
963 block_iterate_tind): Precompute limit of loop to speed up
964 block_iterate_ind and company.
965
966 * bitops.h (ext2fs_fast_mark_block_bitmap,
967 ext2fs_fast_unmark_block_bitmap, ext2fs_fast_test_block_bitmap,
968 ext2fs_fast_mark_inode_bitmap, ext2fs_fast_unmark_inode_bitmap,
969 ext2fs_fast_test_inode_bitmap): Add fast version of these
970 functions, which don't do range checking.
971
972 * bitops.h (ext2fs_get_block_bitmap_start,
973 ext2fs_get_inode_bitmap_start, ext2fs_get_block_bitmap_end,
974 ext2fs_get_inode_bitmap_end): Add new accessor functions
975 which return the start and end points of the bitmaps.
976
977Tue Jul 11 18:59:41 1995 <tytso@rsx-11.mit.edu>
978
979 * llseek.c (ext2_llseek): If the offset is small enough, use lseek
980 instead of llseek. The errno if the offset is too large
981 and lseek is not supported should be EINVAL, not -EINVAL.
982
983Thu Jun 15 23:43:02 1995 Remy Card <card@bbj>
984
985 * Makefile.in: Added support for ELF shared libraries.
986 Fixed typos in the compilation rules.
987 (distclean): Added Makefile.
988
989 * llseek.c (llseek): New function, if llseek() does not exist in the
990 C library.
991 (ext2_llseek): Changed to call llseek().
992
993Mon Jun 12 08:29:07 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
994
995 * ext2fs.h: Use __u32 to define blk_t, instead of unsigned long.
996
997Sun Jun 11 15:02:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
998
999 * mkdir.c (ext2fs_mkdir): Use LINUX_S_IFDIR instead of S_IFDIR.
1000
1001 * ext2fs.h (LINUX_S_IFDIR): Define a linux specific versions of
1002 the S_*, which are normally defined in <sys/stat.h>. This
1003 allows us to compile e2fsprogs on a non-Linux system,
1004 which may have a different value for S_IFDIR.
1005
1006Sat Jun 10 23:47:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1007
1008 * bitops.c (clear_bit, set_bit): Remove calls to cli() and sti();
1009 this is a user-mode application!
1010
1011Thu Jun 8 13:13:22 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
1012
1013 * llseek.c: Put the include of <linux/unistd.h> inside the #ifdef
1014 __linux__ so that non-linux systems won't see it.
1015
1016 * alloc.c: Include <errno.h> if possible.
1017 * badblocks.c: Ditto.
1018 * bb_inode.c: Ditto.
1019 * bitmaps.c: Ditto.
1020 * block.c: Ditto.
1021 * expanddir.c: Ditto.
1022 * get_pathname.c: Ditto.
1023 * initialize.c: Ditto.
1024 * inode.c: Ditto.
1025 * llseek.c: Ditto.
1026 * mkdir.c: Ditto.
1027 * namei.c: Ditto.
1028 * newdir.c: Ditto.
1029 * openfs.c: Ditto.
1030 * rw_bitmaps.c: Ditto.
1031 * unix_io.c: Ditto.
1032
1033 * Makefile.in: Rewritten to conform to GNU coding standards and
1034 support separate compilation directories.
1035
1036Thu May 11 04:13:12 1995 <tytso@rsx-11.mit.edu>
1037
1038 * initialize.c (ext2fs_initialize): Don't allow more than one
1039 bitmaps's worth of inodes in a group.
1040
Theodore Ts'of3db3561997-04-26 13:34:30 +00001041Sat Mar 11 14:07:11 1995 Theodore Y. Ts'o <tytso@localhost>
1042
1043 * llseek.c (ext2_llseek): Added error checking to the llseek()
1044 compat code to protect against overflow. This only
1045 applies to 1.0 and early 1.1 kernels, which don't support
1046 the llseek() system call.
1047
1048Thu Nov 24 16:29:00 1994 Theodore Y. Ts'o (tytso@rt-11)
1049
1050 * unix_io.c (unix_open): Initialize the read_error and write_error
1051 io_channel pointers to be null.
1052
1053 * bb_inode.c (clear_bad_block_proc): If an illegal block number is
1054 found, clear it but don't try to update the filesystem
1055 accounting information, since that's hopeless anyway.
1056
1057 * block.c (bloblock_iterate_ind, bloblock_iterate_dind,
1058 bloblock_iterate_tind): Check to see if the indirect blocks are
1059 valid before trying to read them.
1060
1061 * ext2_err.et (EXT2_ET_BAD_IND_BLOCK, EX2_ET_BAD_DIND_BLOCK,
1062 EXT2_ET_BAD_TIND_BLOCK): Add new error codes.
1063
1064 * bitops.h (ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
1065 ext2fs_test_block_bitmap, ext2fs_mark_inode_bitmap,
1066 ext2fs_unmark_inode_bitmap, ext2fs_test_inode_bitmap): If an
1067 illegal block or inode number is passed in, return instead
1068 of trying to test, set, or clear the bit.
1069
1070Mon Nov 7 21:32:33 1994 Remy Card <card@bbj>
1071
1072 * Makefile: Added a dummy install target in case shared libraries
1073 are not built.
1074
1075Mon Oct 24 14:11:44 1994 (tytso@rsx-11)
1076
1077 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix calculation of how
1078 the real last block of the bitmap should be calculated.
1079
1080Wed Sep 7 10:05:36 1994 (tytso@rsx-11)
1081
1082 * bitmaps.c (ext2fs_fudge_inode_bitmap_end,
1083 ext2fs_fudge_block_bitmap_end, ext2fs_clear_inode_bitmap,
1084 ext2fs_clear_block_bitmap, ext2fs_free_inode_bitmap,
1085 ext2fs_free_block_bitmap): Add magic number checking for
1086 the inode and block bitmaps.
1087
1088 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix to set the correct
1089 magic number for a block bitmap instead of an inode bitmap.
1090
1091 * inode.c (ext2fs_close_inode_scan, ext2fs_get_next_inode): Add
1092 magic number checking for the inode_scan structure.
1093
1094 * badblocks.c (badblocks_list_free, badblocks_list_add,
1095 badblocks_list_test, badblocks_list_iterate_begin,
1096 badblocks_list_iterate, badblocks_list_iterate_end): Add
1097 magic number checking for the badblocks_list and
1098 badblocks_iterate structures.
1099
1100 * ext2_err.et (EXT2_ET_MAGIC_UNIX_IO_CHANNEL):
1101 * unix_io.c (unix_open, unix_close, unix_set_blksize, unix_read_blk,
1102 unix_write_blk, unix_flush): Add magic number checking
1103 both for io_channel structure and unix_private_data
1104 structure.
1105
1106 * openfs.c (ext2fs_open): Add check for io_manager structure's
1107 magic number.
1108
1109 * rw_bitmaps.c (ext2fs_write_inode_bitmap, ext2fs_write_block_bitmap,
1110 ext2fs_read_inode_bitmap, ext2fs_read_block_bitmap,
1111 ext2fs_read_bitmaps, ext2fs_write_bitmaps):
1112 * read_bb.c (ext2fs_read_bb_inode):
1113 * read_bb_file.c (ext2fs_read_bb_FILE):
1114 * newdir.c (ext2fs_new_dir_block):
1115 * namei.c (ext2fs_dir_iterate, ext2fs_lookup, ext2fs_namei):
1116 * link.c (ext2fs_link, ext2fs_unlink):
1117 * inode.c (ext2fs_open_inode_scan, ext2fs_read_inode,
1118 ext2fs_write_inode, ext2fs_get_blocks,
1119 ext2fs_check_directory):
1120 * get_pathname.c (ext2fs_get_pathname):
1121 * expanddir.c (ext2fs_expand_dir):
1122 * block.c (ext2fs_block_iterate):
1123 * bitmaps.c (ext2fs_allocate_inode_bitmap,
1124 ext2fs_allocate_block_bitmap):
1125 * bb_inode.c (ext2fs_update_bb_inode):
1126 * alloc.c (ext2fs_new_inode,ext2fs_new_block,ext2fs_get_free_blocks):
1127 * check_desc.c (ext2fs_check_desc):
1128 * closefs.c (ext2fs_close, ext2fs_flush):
1129 * freefs.c (ext2fs_free): Add check for ext2_filsys magic number.
1130
1131 * Makefile:
1132 * ext2fs.h:
1133 * openfs.c:
1134 * check_desc.c (ext2fs_check_desc): Move ext2fs_check_desc from
1135 openfs.c into its own file.
1136
1137 * ext2fs.h (EXT2_CHECK_MAGIC): Added macro for checking for
1138 structure magic numbers.
1139
1140 * closefs.c (ext2fs_flush): Folded in Remy Card's changes to clear
1141 the EXT2_VALID_FS flag in the backup superblock blocks, so that if
1142 someone uses the -b option to specify the use of the backup
1143 superblock --- this usually means that the main superblock is
1144 toast. :-)
1145
1146 * ext2fs.h:
1147 * ext2_err.et (EXT2_ET_REV_TOO_HIGH):
1148 * openfs.c (ext2fs_open): Folded in Remy Card's changes to add a
1149 revision level to the superblock.
1150
1151Sun Aug 21 00:50:08 1994 Theodore Y. Ts'o (tytso@rt-11)
1152
1153 * ext2fs.h:
1154 * bitmaps.c:
1155 * bitops.c
1156 * bitops.h:
1157 * openfs.c:
1158 * initialize.c: Completely revamped the inode and block bitmap
1159 structures, so that they can be better chance of being extensible
1160 in a shared library. They are now their own type, instead of
1161 being a char *. Also, the function signatures of
1162 ext2fs_test_block_bitmap, ext2fs_mark_block_bitmap,
1163 ext2fs_unmark_block_bitmap, ext2fs_test_inode_bitmap,
1164 ext2fs_mark_inode_bitmap, and ext2fs_unmark_inode_bitmap were
1165 changed to eliminate the ext2_filsys argument, since it is no
1166 longer necessary.
1167
1168Wed Aug 17 21:46:44 1994 Remy Card (card@bbj)
1169
1170 * unix_io.c (unix_read_blk and unix_write_blk): use the llseek
1171 system call if available.
1172
1173 * llseek.c: new file. This is the stub calling the llseek system
1174 call which allows supports for 2GB+ file systems.
1175
1176 * initialize.c (ext2fs_initialize): Ext2fs_initialize now stores
1177 the creator operating system.
1178
1179Wed Aug 17 10:03:24 1994 Theodore Y. Ts'o (tytso@rt-11)
1180
1181 * initialize.c (ext2fs_initialize): Ext2fs_initialize now sets up
1182 the group descriptor statistics in addition to everything else.
1183 This relieves mke2fs of the responsibility of doing it.
1184
1185 * bitops.c, bitops.h: Add assembly inline functions for the 68000.
1186 Added a new #define, _EXT2_HAVE_ASM_BITOPS_ to control whether or
1187 not the generic C function equivalents should be included or not.
1188
1189 * openfs.c (ext2fs_open): If a superblock is specified, then use
1190 the backup group descriptors that go along with this superblock,
1191 instead of using the primary group descriptors. This allows
1192 e2fsck to recover filesystems where the primary group descriptors
1193 have been trashed.
1194
1195