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