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