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