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