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