blob: 660c279c2986e6643de33e57c72cab209399d889 [file] [log] [blame]
Theodore Ts'o36131b32001-07-26 23:44:39 -040012001-07-26 Theodore Tso <tytso@valinux.com>
2
3 * mkjournal.c (ext2fs_add_journal_device): Use the correct block
4 to find the journal superblock if the blocksize is 1024.
5
Theodore Ts'oadee8d72001-07-23 00:17:49 -040062001-07-21 Theodore Tso <tytso@valinux.com>
7
8 * ext2_err.et.in (EXT2_ET_LOAD_EXT_JOURNAL): Add new error code
9
Theodore Ts'o6ae296e2001-07-20 12:33:37 -0400102001-07-20 Theodore Tso <tytso@valinux.com>
11
Theodore Ts'o241f7d22001-07-20 14:17:19 -040012 * ext_attr.c (ext2fs_write_ext_attr): When writing the extended
13 attribute block, set the filesystem changed bit.
14
Theodore Ts'o6ae296e2001-07-20 12:33:37 -040015 * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set):
16 Comment out these functions since we're not using them.
17
Theodore Ts'o3c6b8972001-07-10 14:27:58 -0400182001-07-10 Theodore Tso <tytso@valinux.com>
19
20 * closefs.c (write_primary_superblock): After writing changes to
21 the primary superblock, update the original superblock
22 copy so we don't have to re-write those changes in the
23 future.
24 (ext2fs_flush): Clear the superblock dirty flag after
25 we've flushed out changes to disk.
26
Theodore Ts'of41e7e62001-07-07 22:14:23 -0400272001-07-07 Theodore Tso <tytso@valinux.com>
28
29 * bitops.h (ext2fs_find_first_bit_set): Use %esi instead of %ebx
30 to avoid register conflicts when compiling in PIC mode.
31
Theodore Ts'oac493822001-07-04 14:04:58 -0400322001-07-04 Theodore Tso <tytso@valinux.com>
33
34 * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set):
35 Add new functions (C and in i386 assembler) which quickly
36 find bits set in a bitmask.
37
Theodore Ts'o67960132001-06-23 00:16:37 -0400382001-06-23 Theodore Tso <tytso@valinux.com>
39
Theodore Ts'o342d8472001-07-02 11:54:09 -040040 * Makefile.in, ext_attr.c, ext2_attr.c, ext2fs.h: Add new files
41 ext2_ext_attr.h and ext_attr.c for extended attributes
42 support.
43
Theodore Ts'o67960132001-06-23 00:16:37 -040044 * Release of E2fsprogs 1.22
45
Theodore Ts'o89a1fa82001-06-22 20:40:51 -0400462001-06-22 Theodore Tso <tytso@valinux.com>
47
Theodore Ts'ob23520d2001-06-22 21:52:14 -040048 * mkjournal.c (ext2fs_add_journal_inode): Move close of file
49 descriptor so that adding a journal to a mounted
50 filesystem doesn't die. (Fixes a bug accidentally
51 introduced in e2fsprogs 1.21.)
52
Theodore Ts'o78332622001-06-22 21:20:47 -040053 * mkjournal.c (ext2fs_add_journal_inode): Only use fchflags if
54 HAVE_CHFLAGS and UF_NODUMP are defined, since the Hurd has
55 fchflags without defining UF_NODUMP. (Addresses Debian
56 bug #101361)
57
Theodore Ts'od90f3492001-06-22 21:01:17 -040058 * flushb.c: Use platform independent method of defining the
59 BLKFLSBUF and FDFLUSH ioctl's. Also include sys/mount.h
60 since on newer glibc's BLKFLSBUF is defined there.
61
Theodore Ts'o16645f82001-06-22 20:54:11 -040062 * bitops.h: The C language versions of ext2fs_swab16/32 need to be
63 included if EXT2FS_ENABLE_SWAPFS is defined, since we need
64 to support byte swapping even if we don't support the
65 conversion functions. (Fixes Debian bug #101686).
66
Theodore Ts'o89a1fa82001-06-22 20:40:51 -040067 * dirblock.c (ext2fs_read_dir_block): Remove use of dir_entry_2
68 since the byte-swapping code all assumes the
69 ext2_dir_entry structure. (It's a question of whether or
70 not name_len should be byte-swapped or not, and whether
71 it's a 16 bit or 8 bit field.)
72
Theodore Ts'o997b8202001-06-15 18:33:43 +0000732001-06-15 Theodore Tso <tytso@valinux.com>
74
Theodore Ts'of4f75ba2001-06-16 01:14:28 +000075 * Release of E2fsprogs 1.21
76
772001-06-15 Theodore Tso <tytso@valinux.com>
78
Theodore Ts'od1e66b72001-06-15 22:44:32 +000079 * Makefile.in: Fix bug in installation of ext2_types.h. It is a
80 file which is generated and is therefore found in the
81 build directory, not source directory.
82
Theodore Ts'o997b8202001-06-15 18:33:43 +000083 * ismounted.c (check_mntent_file): Use a test file in / to check
84 to see if the root filesystem is mounted read-only. This
85 protects against the case where /etc might not be on /, as
86 well as the case where /etc/mtab doesn't exist. (Both are
87 should-never happen scenarios, but you never know...)
88
Theodore Ts'o6bd13482001-06-14 07:00:55 +0000892001-06-14 Theodore Tso <tytso@valinux.com>
90
91 * ismounted.c (ext2fs_check_if_mounted): Fix grammer in comment.
92 Remove unneeded #pragma argsused, since the arguments are
93 always used.
94
Theodore Ts'o30ae14c2001-06-13 22:38:56 +0000952001-06-13 Theodore Tso <tytso@valinux.com>
96
Theodore Ts'o65794882001-06-14 00:24:42 +000097 * ext2_types.h.in: If linux/types.h has been defined, then don't
98 try to redefine the typedefs.
99
Theodore Ts'o364a3732001-06-13 23:46:39 +0000100 * Makefile.in (HFILES): Add ext2_types.h to the list of files
101 which should be installed.
102
Theodore Ts'o66a46142001-06-13 23:26:19 +0000103 * ismounted.c (check_mntent_file): Work around GNU hurd brain
Theodore Ts'o83d5abf2001-06-13 23:31:27 +0000104 damage. Addresses Debian bug #100304.
Theodore Ts'o66a46142001-06-13 23:26:19 +0000105
Theodore Ts'o30ae14c2001-06-13 22:38:56 +0000106 * Makefile.in: Limit some .o files from being included into the
107 library if --disable-debugfs, --disable-swapfs,
108 --disable-imager, or --disable-resizer are used.
109
Theodore Ts'ocbbf0312001-06-13 00:12:04 +00001102001-06-12 Theodore Tso <tytso@valinux.com>
111
112 * inode.c, tst_iscan.c: Stop using the compatibility badblocks
113 function, and use the ext2fs_badblocks_* functions
114 instead.
115
Theodore Ts'o5df55d72001-06-11 07:00:04 +00001162001-06-11 Theodore Tso <tytso@valinux.com>
117
Theodore Ts'o3034f622001-06-11 15:17:45 +0000118 * Makefile.in, gen_bitmap.c, bitops.h: Move inline functions
119 ext2fs_mark_generic_bitmap and
120 ext2fs_unmark_generic_bitmap to gen_bitmap.c as normal
121 functions. (This saves space and doesn't significantly
122 change the speed of e2fsck on a P-III.)
123
Theodore Ts'o5df55d72001-06-11 07:00:04 +0000124 * ext2fs.h, bitops.h, block.c, bmap.c, closefs.c, dirblock.c,
125 inode.c, native.c, openfs.c, rw_bitmaps.c, swapfs.c: Only
126 include the byte-swapping logic if ENABLE_SWAPFS is turned
127 on or if we're on a big-endian machine.
128
129 * initialize.c (ext2fs_initialize):Use WORDS_BIGENDIAN directly to
130 set EXT2_FLAG_SWAP_BYTES, instead of using
131 ext2fs_native_flag.
132
133 * native.c (ext2fs_native_flag): Use WORDS_BIGENDIAN provided by
134 autoconf to determine whether or not return
135 EXT2_FLAG_SWAP_BYTES.
136
Theodore Ts'o349a4842001-06-11 00:49:29 +00001372001-06-10 Theodore Tso <tytso@valinux.com>
138
139 * Makefile.in: Remove the dependence on the libe2p library.
140
141 * mkjournal.c (ext2fs_add_journal_inode): Replace use of fsetflags
142 with direct usage of the ioctl/fchflags so that we don't
143 have to depend on the libe2p library.
144
Theodore Ts'o30e50b72001-06-08 09:43:40 +00001452001-06-08 Theodore Tso <tytso@valinux.com>
146
147 * ext2_types.h.in: Use unsigned ints in favor of unsigned longs
148 when trying to find a 32-bit wide type.
149
150 * icount.c (insert_icount_el): Fix the code used to estimate the
151 size of the new icount array to be more intelligent, to
152 avoid reallocating the array too many times. Thanks to
153 Enrique Perez-Terron for pointing this out.
154
Theodore Ts'of36d14f2001-06-02 04:13:16 +00001552001-06-02 Theodore Tso <tytso@valinux.com>
156
157 * valid_blk.c (ext2fs_inode_has_valid_blocks): Only check i_blocks
158 for a symlink to determine whether it is a fast symlink.
159
Theodore Ts'o797f5ef2001-06-01 23:49:46 +00001602001-06-01 Theodore Tso <tytso@valinux.com>
161
162 * Makefile.in, dosio.c, ext2_fs.h, ext2_types.h.in, ext2fs.h:
Theodore Ts'o36a23e12001-06-02 00:54:10 +0000163 Move include/asm/types.h.in to lib/ext2fs/ext2_types.h.in.
Theodore Ts'o797f5ef2001-06-01 23:49:46 +0000164
Theodore Ts'od5f858d2001-05-25 17:14:23 +00001652001-05-25 Theodore Tso <tytso@valinux.com>
166
Theodore Ts'obb185862001-05-25 17:35:00 +0000167 * Release of E2fsprogs 1.20
168
1692001-05-25 Theodore Tso <tytso@valinux.com>
170
Theodore Ts'od5f858d2001-05-25 17:14:23 +0000171 * ismounted.c: More cleanups for ismounted.c, some from Andreas,
172 some to clean up Andreas's patches. Use strncpy instead
173 of strcpy to save the root's mountpoint. Clean up #ifdef
174 structure. Remove uneeded variable in testing/debug driver.
175
Theodore Ts'occ860172001-05-25 16:32:53 +00001762001-05-24 Andreas Dilger <adilger@turbolinux.com>
177
178 * ismounted.c: Add check for root device which doesn't depend on
179 /etc/fstab or /proc/mounts to be correct. Don't call
180 endmntent() before we are done with mnt struct.
181
Theodore Ts'o4ed8ebe2001-05-23 18:30:10 +00001822001-05-23 Theodore Tso <tytso@valinux.com>
183
184 * ext2_err.et.in (EXT2_ET_JOURNAL_UNSUPP_VERSION): Added new error
185 code.
186
Theodore Ts'ob10820c2001-05-21 05:23:31 +00001872001-05-21 Theodore Tso <tytso@valinux.com>
188
189 * ext2_fs.h: Change assignment of EXT2_FEATURE_COMPAT_DIR_INDEX to
190 make room for pre-existing usage of
191 EXT2_FEATURE_COMPAT_EXT_ATTR. Add flag EXT2_INDEX_FL with
192 the same codepoint as EXT2_BTREE_FL.
193
Theodore Ts'o7c2d2562001-05-21 02:54:21 +00001942001-05-20 Theodore Tso <tytso@valinux.com>
195
196 * ext2fs.h: #include <> instead of "" for ext2fs and et header
197 files, since they will be installed in /usr/include
198
Theodore Ts'o7a34cb02001-05-14 04:28:35 +00001992001-05-14 Theodore Tso <tytso@valinux.com>
200
Theodore Ts'o9f8046f2001-05-14 11:35:52 +0000201 * alloc.c, alloc_tables.c, badblocks.c, bb_compat.c, bb_inode.c,
202 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
203 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
204 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
205 expanddir.c, ext2_fs.h, fileio.c, finddev.c, flushb.c,
206 freefs.c, get_pathname.c, getsize.c, icount.c, imager.c,
207 initialize.c, inline.c, inode.c, irel_ma.c, ismounted.c,
208 link.c, lookup.c, mkdir.c, mkjournal.c, namei.c, native.c,
209 newdir.c, nt_io.c, openfs.c, read_bb.c, read_bb_file.c,
210 rs_bitmap.c, rw_bitmaps.c, swapfs.c, test_io.c,
211 tst_badblocks.c, tst_byteswap.c, tst_getsize.c,
212 tst_iscan.c, unix_io.c, unlink.c, valid_blk.c, version.c,
213 write_bb_file.c, ext2_fs.h: Moved file from include/linux.
214 Adjust all files in this directroy to include this file.
215
Theodore Ts'o7a34cb02001-05-14 04:28:35 +0000216 * mkjournal.c (ext2fs_create_journal_superblock): Remove redundant
217 code.
218
Theodore Ts'o0f679452001-05-05 16:42:24 +00002192001-05-05 Theodore Tso <tytso@valinux.com>
220
221 * fileio.c (ext2fs_file_read): Factored out common code and
222 cleaned up function. Fixed a bug where if there was an
223 error reading from the disk, the number of bytes read
224 wasn't reliably set. (Fixes Debian bug #79163)
225 (ext2fs_file_write): Factored out common code and made
226 function more efficient; if writing a full block, don't
227 bother to do a read-modify-write cycle.
228
Theodore Ts'o1cca4d62001-05-05 05:12:14 +00002292001-05-04 Theodore Tso <tytso@valinux.com>
230
231 * dirblock.c (ext2fs_read_dir_block): Check for an directory
232 record length which isn't a multiple four, and treat that
233 as an invalid. Scan the directory and return an error
234 (EXT2_ET_DIR_CORRUPTED) if the directory records are
235 corrupted.
236 (ext2fs_write_dir_block): If while byte-swapping the
237 directory block, if there's an error, abort and return
238 EXT2_ET_DIR_CORRUPTED.
239
Theodore Ts'oa78926e2001-05-03 04:02:29 +00002402001-05-02 Theodore Tso <tytso@valinux.com>
241
242 * ext2fs.h (EXT2_FLAG_IMAGE_FILE): Add new flag, and add
243 image_header field in the ext2_filsys structure
244
245 * block.c (block_iterate_ind, block_iterate_dind, block_iterate_tind):
246 * inode.c (ext2fs_read_inode):
247 * rw_bitmaps.c (read_bitmaps):
248 * openfs.c (ext2fs_open): Add support for EXT2_FLAG_IMAGE_FILE
249
250 * imager.c (ext2fs_image_bitmap_read): Fix bug in imager to make
251 sure the full bitmap is saved.
252
Theodore Ts'of955cc12001-05-01 19:04:28 +00002532001-05-01 Theodore Tso <tytso@valinux.com>
254
Theodore Ts'oa78926e2001-05-03 04:02:29 +0000255 * e2image.h (struct ext2_image_hdr): Add space for the device name
256 in the image header.
257
Theodore Ts'of955cc12001-05-01 19:04:28 +0000258 * dir_iterate.c (ext2fs_process_dir_block): Add a double-check to
259 make sure the rec_len is a multiple of 4, to prevent
260 bus-errors on architectures which care about mis-aligned
261 pointer references.
262
Theodore Ts'o954a6832001-04-26 01:42:37 +00002632001-04-25 Theodore Tso <tytso@valinux.com>
264
265 * getsize.c (ext2fs_get_device_size): Use an unsigned long to
266 query the device sizes using the BLKGETSIZE ioctl.
267
Theodore Ts'o03603942001-04-17 00:53:25 +00002682001-04-16 Theodore Tso <tytso@valinux.com>
269
Theodore Ts'o52db0b42001-04-17 02:22:05 +0000270 * ismounted.c (check_mntent): Check /proc/mounts on Linux systems
271 before checking /etc/mtab. The EXT2_MF_READONLY flag is
272 now set from the /etc/mtab options field for all
273 filesystems, not just the root filesystem. Add debugging
274 code to make it easier to test ext2fs_check_if_mounted().
275
Theodore Ts'o03603942001-04-17 00:53:25 +0000276 * mkjournal.c (ext2fs_create_journal_superblock): Add safety
277 check; return an error if there's an attempt to create a
278 journal less than 1024 filesystem blocks.
279
280 * ext2_err.et.in, mkjournal.c: Change EXT2_JOURNAL_NOT_BLOCK and
281 EXT2_NO_JOURNAL_SB to be EXT2_ET_*.
282
Theodore Ts'o9ec53cf2001-02-20 16:28:40 +00002832001-02-20 Theodore Tso <tytso@valinux.com>
284
285 * bitops.h (ext2fs_swab16, ext2fs_swab32): Add i386 assembly
286 inline functions.
287
288 * tst_byteswap.c: New function to test the byteswap functions.
289 Add to regression test suite.
290
Theodore Ts'oc5423c52001-02-08 05:45:17 +00002912001-02-08 Theodore Tso <tytso@valinux.com>
292
293 * e2image.h (struct ext2_image_hdr): Fix type for fs_hostname
294
Theodore Ts'od23042a2001-02-08 03:37:16 +00002952001-02-07 Theodore Tso <tytso@valinux.com>
296
297 * mkjournal.c (ext2fs_create_journal_superblock): Fix the setting
298 of s_first for external devices to always be 1, since
299 jsb->s_first is always relative to the start of the
300 journal superblock. Use htonl(1) when setting s_nr_users.
301
Theodore Ts'o02088862001-01-18 01:44:19 +00003022001-01-17 Theodore Ts'o <tytso@valinux.com>
303
304 * mkjournal.c (ext2fs_add_journal_device): Fix bug where the
305 device number of the filesystem (instead of the journal)
306 was being dropped into s_journal_dev.
307
Theodore Ts'oa1128472001-01-16 06:56:14 +00003082001-01-15 Theodore Ts'o <tytso@valinux.com>
309
310 * initialize.c (ext2fs_initialize): Add support for initializing
311 the ext2 superblock for external journal devices. This
312 basically means we don't bother to allocate any block
313 group descriptors.
314
315 * openfs.c (ext2fs_open): Only open external journal devices if
316 the new flag EXT2_FLAG_JOURNAL_DEV_OK is passed to
317 ext2fs_open. When opening such devices, don't try to read
318 the block group descriptors, since they're not there.
319
320 * ext2_err.et.in (EXT2_NO_JOURNAL_SB): Add new error code
321
322 * mkjournal.c: Export a new function,
323 ext2fs_create_journal_superblock(), which allocates and
324 returns a buffer containing a journal superblock. This is
325 needed by mke2fs to create an external journal. Rewrote
326 ext2fs_add_journal_device() so that it no longer creates
327 the external journal, but rather adds a filesystem to an
328 existing external journal. It handles all of the UUID
329 manipulation.
330
331 * ext2fs.h: List the EXT3_FEATURE_JOURNAL_DEV as a flag supported
332 by the library. Define the EXT2_FLAG_JOURNAL_DEV_OK.
333 Changed function prototype for ext2fs_add_journal_device().
334
Theodore Ts'o80779942001-01-14 18:03:43 +00003352001-01-14 Theodore Ts'o <tytso@valinux.com>
336
337 * closefs.c (ext2fs_flush): Don't write out anything beyond the
338 primary superblock if EXT2_INCOMPAT_JOURNAL_DEV is
339 listed.
340
Theodore Ts'ob94bd812001-01-12 17:26:05 +00003412001-01-12 Theodore Ts'o <tytso@valinux.com>
342
343 * imager.c: Fix gcc -Wall complaints and a series of bugs where
344 retval wasn't set correctly. (Thanks to Andreas Dilger
345 for pointing this out.)
346
Theodore Ts'o4d0f3e12001-01-11 15:48:50 +00003472001-01-11 <tytso@snap.thunk.org>
348
349 * flushb.c (ext2fs_sync_device): New function which centralizes
350 all of the places which might try to use the BLKFLSBUF
351 or FDFLUSH ioctls (and usually failing to define them
352 since the system header files don't usually do this for
353 us, and we're trying to avoid usage of kernel include
354 files now).
355
Theodore Ts'o31dbecd2001-01-11 04:54:39 +00003562001-01-10 <tytso@snap.thunk.org>
357
358 * alloc.c, bb_inode.c, bitmaps.c, bitops.h, block.c, bmap.c,
359 bmove.c, brel.h, cmp_bitmaps.c, dblist.c, dblist_dir.c,
360 dir_iterate.c, expanddir.c, ext2fs.h, ext2fsP.h, fileio.c,
361 finddev.c, get_pathname.c, icount.c, inode.c, irel.h,
362 irel_ma.c, ismounted.c, link.c, lookup.c, mkdir.c,
363 mkjournal.c, namei.c, newdir.c, read_bb_file.c, test_io.c,
364 tst_iscan.c, unix_io.c, unlink.c: Change use of ino_t to
365 ext2_ino_t, to protect applications that attempt to
366 compile -D_FILE_OFFSET_BITS=64, since this inexplicably
367 changes ino_t(!?). So we use ext2_ino_t to avoid an
368 unexpected ABI change.
369
Theodore Ts'ocdaf1fa2001-01-05 22:23:22 +00003702001-01-05 <tytso@snap.thunk.org>
371
Theodore Ts'oe446d712001-01-05 22:27:06 +0000372 * dirblock.c (ext2fs_read_dir_block): Fix a potential case where
373 we may overrun allocated memory in case of a corrupted
374 filesystem (or an e2fsck test case :-) when byte-swapping
375 the directory block.
376
Theodore Ts'ocdaf1fa2001-01-05 22:23:22 +0000377 * ext2fs.h: Indent the #warning to fix gcc -Wall complaint.
378
379 * mkjournal.c (ext2fs_add_journal_device): Fix various gcc -Wall
380 complaints including a missing return 0 at the end of
381 ext2fs_add_journal_device.
382
Theodore Ts'o43ec8732001-01-03 14:56:46 +00003832001-01-03 <tytso@snap.thunk.org>
384
Theodore Ts'o4becab62001-01-03 19:22:42 +0000385 * Makefile.in: Link in libe2p when creating libext2fs as a shared
386 library, since mkjournal.c now references fsetflags().
387
388 * mkjournal.c (ext2fs_add_journal_inode): Folded in Andreas
389 Dilger's changes (with fixups) to allow on-line creation
390 of a journal file.
391
Theodore Ts'o43ec8732001-01-03 14:56:46 +0000392 * ext2fs.h, closefs.c (ext2fs_flush): Add new flag,
393 EXT2_FLAG_SUPER_ONLY, which the close routines to only
394 update the superblock, and not the group descriptors.
395
3962000-12-30 Andreas Dilger <adilger@turbolinux.com>
397
398 * ismounted.c: add ext2fs_check_mount_point() function, which will
399 optionally return the mount point of a device if mounted
400
Theodore Ts'o31a17b32001-01-03 13:04:12 +00004012000-12-14 Andreas Dilger <adilger@turbolinux.com>
402
403 * mkjournal.c: rename ext2fs_add_journal_fs() to the more descriptive
404 ext2fs_add_journal_inode()
405
Theodore Ts'oe5b38a52001-01-01 16:17:12 +00004062001-01-01 <tytso@snap.thunk.org>
407
408 * ext2fs.h: Remove definition of ext2fs_sb. Note: this may break
409 source (but not binary) compatibility of some users of the
410 ext2 library. They should just simply do a global search
411 and replace of struct ext2fs_sb with struct
412 ext2_super_block, and use their own private copy of
413 ext2_fs.h if they aren't already.
414
415 * closefs.c, initialize.c, link.c, newdir.c, openfs.c, swapfs.c:
416 Replace use of ext2fs_sb with ext2_super_block.
417
Theodore Ts'o2fe1efe2000-12-31 13:39:17 +00004182000-12-31 <tytso@snap.thunk.org>
419
420 * ext2fs.h: Cleaned up header file by removing definitions of
421 feature flags that might not have been defined in older
422 ext2 header files. Now that we're using our own
423 include/linux/ext2fs.h header file, this can never happen.
424
425 * jfs_dat.h: Removed old header file which is no longer needed.
426
Theodore Ts'o7dcfa6e2000-12-13 17:50:14 +00004272000-12-13 Theodore Ts'o <tytso@valinux.com>
428
Theodore Ts'oa917d1c2000-12-13 18:36:23 +0000429 * closefs.c (ext2fs_update_dynamic_rev): New function suggested
Theodore Ts'o3fe973b2000-12-13 17:55:49 +0000430 by Andreas Dilger to update the filesystem revision to
431 EXT2_DYNAMIC_REV.
432
Theodore Ts'o7dcfa6e2000-12-13 17:50:14 +0000433 * swapfs.c (ext2fs_swap_super): Add byte swapping for the journal
434 fields.
435
Theodore Ts'o58618732000-12-09 05:47:45 +00004362000-12-09 <tytso@snap.thunk.org>
437
Theodore Ts'o31a17b32001-01-03 13:04:12 +0000438 * ext2fs.h, mkjournal.c (ext2fs_add_journal_inode,
Theodore Ts'o4e246702000-12-09 14:39:16 +0000439 ext2fs_add_journal_device): Add a new argument to the APIs
440 of these function, which is a flags word. This is used to
441 allow the creation of a V1 superblock for those folks who
442 are using ext3 0.3b in production. Note, the user-land
443 interface for getting at this flag won't be documented, as
444 the V1 superblock is deprecated.
445
Theodore Ts'o58618732000-12-09 05:47:45 +0000446 * mkjournal.c (init_journal_superblock): Sync Stephen's changes
447 which creates a V2 superblock instead of a V1 superblock.
448
Theodore Ts'of20d0d52000-12-05 03:53:41 +00004492000-11-21 <tytso@snap.thunk.org>
450
451 * test_io.c (test_write_blk, test_write_byte): Fix typos pointed
452 out by Andreas Dilger.
453
Theodore Ts'o72ed1262000-11-12 19:32:20 +00004542000-11-05 <tytso@snap.thunk.org>
455
456 * imager.c (ext2fs_image_{inode,super,bitmap}_{read,write},
457 ext2_fs.h, Makefile.in: New file that has routines that
458 save ext2fs metadata to a file.
459
460 * ext2_err.et.in (EXT2_ET_MAGIC_E2IMAGE): New error code assigned.
461
462 * e2image.h: New file which defines the file format for the ext2
463 image file. (Saved copy of ext2 metadata to a file as a
464 saving throw against worst-case damage.)
465
Theodore Ts'o6a7f4552000-11-12 19:07:06 +00004662000-11-01 <tytso@snap.thunk.org>
467
468 * inode.c (ext2fs_flush_icache): Add new function
469 ext2fs_flush_icache() which flushes the internal inode
470 cache. Applications which modify the inode table blocks
471 directly must call this function.
472
Theodore Ts'oc180ac82000-10-26 20:24:43 +00004732000-10-26 <tytso@snap.thunk.org>
474
Theodore Ts'o17ee8b12000-10-26 20:45:58 +0000475 * mkjournal.c: Add #include of netinet/in.h, since Solaris
476 requires it for ntohl().
477
Theodore Ts'oc180ac82000-10-26 20:24:43 +0000478 * ext2_io.h (io_channel_write_byte): Add new interface to allow
479 callers to write specific byte ranges. This is an
480 optional interface, which not all IO channels may
481 implement.
482
483 * unix_io.c (unix_write_byte):
484 * test_io.c (test_write_byte): Add implementation of the
485 write_byte function.
486
487 * closefs.c (write_primary_superblock, ext2fs_flush): Add a new
488 function which writes the primary superblock. If the IO
489 channel supports writing raw bytes directly, only fields
490 which were modified are written to the disk. This makes
491 it safe(r) to use utilities like tune2fs on a mounted
492 filesystem.
493
494 * freefs.c (ext2fs_free): Free the original superblock if it is
495 available.
496
497 * openfs.c (ext2fs_open): Store a copy of the original superblock
498 when opening it.
499
500 * ext2fs.h: Add a field to store the original superblock in the
501 ext2 context structure.
502
Theodore Ts'o43819662000-10-25 02:06:09 +00005032000-10-24 <tytso@snap.thunk.org>
504
505 * llseek.c: Add #ifdef's for IA64 (it's a 64-bit platform, so we
506 don't need to use llseek).
507
Theodore Ts'od3cd93c2000-10-24 18:33:16 +00005082000-10-24 <tytso@valinux.com>
509
510 * Makefile.in, ext2fs.h, jfs_dat.h, mkjournal.c: Add functions for
511 creating an ext3 journal on a filesystem.
512
5132000-08-21 <tytso@valinux.com>
514
515 * ext2_err.et.in (EXT2_JOURNAL_NOT_BLOCK): Add new error code.
516
Theodore Ts'oadfc8c62000-10-18 19:22:24 +00005172000-08-22 <tytso@valinux.com>
518
519 * unix_io.c: Make massive changes to support a multiple block
520 writethrough cacheing.
521
522 * ext2_io.h: Added flags field to the io_channel structure.
523
Theodore Ts'ode23aa12000-08-19 17:00:47 +00005242000-08-19 <tytso@valinux.com>
525
526 * finddev.c, ext2fs.h, Makefile.in: Add new file, finddev.c, which
527 provides the function ext2fs_find_block_device(). This
528 function returns the pathname to a block device, given its
529 device number.
530
Theodore Ts'of9e67062000-07-13 23:25:54 +00005312000-07-13 <tytso@valinux.com>
532
533 * Release of E2fsprogs 1.19
534
Theodore Ts'oab146762000-07-07 04:37:35 +00005352000-07-07 Theodore Ts'o <tytso@valinux.com>
536
537 * ext2fs.h (EXT2_LIB_FEATURE_INCOMPAT_SUPP): Add
538 EXT3_FEATURE_INCOMPAT_RECOVER (aka needs_recovery) to the
539 list of filesystem flags supported by the library.
540
Theodore Ts'o57dca852000-07-04 19:20:25 +00005412000-07-04 Theodore Ts'o <tytso@valinux.com>
542
Theodore Ts'o8f13d8c2000-07-04 19:41:29 +0000543 * ext2fs.h: Update to include latest journalling additions to the
544 superblock.
545
Theodore Ts'o57dca852000-07-04 19:20:25 +0000546 * dll/jump.funcs: Add new jumptable entries for
547 ext2fs_write_bb_FILE, ext2fs_read_bb_FILE2, and
548 ext2fs_badblocks_equal.
549
550 * tst_badblocks.c: Update test program to test
551 ext2fs_read_bb_FILE2 and ext2fs_write_FILE.
552
553 * write_bb_file.c (ext2fs_write_bb_FILE): New function which
554 writes out bad blocks list to a file.
555
556 * read_bb_file.c (ext2fs_read_bb_FILE2): Add new function which
557 changes the callback function to take two additional
558 arguments; a private blind pointer supplied by the caller,
559 and pointer to a char * containing a pointer to the
560 invalid string.
561
562 * badblocks.c (ext2fs_badblocks_equal): Add new function which
563 returns true if two badblocks list are equal.
564
565 * Makefile.in: Remove explicit link of -lc in the shared library.
566 (It shouldn't be necessary, and is harmful in some cases).
567
Theodore Ts'oabf7d382000-06-10 19:27:17 +00005682000-06-10 Theodore Ts'o <tytso@valinux.com>
569
570 * getsize.c (main): Add debugging code under #ifdef DEBUG
571
Theodore Ts'o2e8d40d2000-05-27 15:15:40 +00005722000-05-27 Theodore Ts'o <tytso@valinux.com>
573
574 * mkdir.c (ext2fs_mkdir): Read the parent directory's inode
575 earlier, so that if there's an error reading it, we can
576 more cleanly back out of the operation.
577
Theodore Ts'of0f4acb2000-05-25 23:22:11 +00005782000-05-25 <tytso@snap.thunk.org>
579
Theodore Ts'odc5f68c2000-05-25 23:31:54 +0000580 * getsize.c (ext2fs_get_device_size): Use open64() instead of
Theodore Ts'o7fd86d32000-05-25 23:42:22 +0000581 open() if it exists. Under linux, manually define the
582 ioctl for BLKGETSIZE if it isn't already defined and it's
583 safe to do so.
Theodore Ts'odc5f68c2000-05-25 23:31:54 +0000584
585 * unix_io.c (unix_open): Use open64() instead of open() if it
586 exists.
587
588 * llseek.c: Simplify header includes of unistd.h. If lseek64 is
589 available (and prototypes are defined) use it in
590 preference to llseek.
591
Theodore Ts'of0f4acb2000-05-25 23:22:11 +0000592 * Makefile: Add hack dependency rule so that parallel makes work
593 correctly.
594
Theodore Ts'ofa7ef712000-05-19 02:11:41 +00005952000-05-18 Theodore Ts'o <tytso@valinux.com>
596
597 * ext2fs.h: Add appropriate ifdef's to support C++ compilation.
598
Theodore Ts'oe589f672000-04-03 13:45:40 +00005992000-04-03 Theodore Ts'o <tytso@valinux.com>
600
Theodore Ts'o06af47f2000-04-03 13:51:00 +0000601 * block.c: Readibility tweak in conditionals involving
602 ctx->fs->flags.
603
Theodore Ts'oe589f672000-04-03 13:45:40 +0000604 * ext2fs.h: Use AUTOCONF SIZEOF_* macros if available to determine
605 how to define __s64 and __u64. Turn off "compression is
606 experimental" warning if the cpp macro
607 I_KNOW_THAT_COMPRESSION_IS_EXPERIMENTAL is defined.
608
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +00006092000-02-11 <tytso@snap.thunk.org>
610
Theodore Ts'o5a63dd22000-02-11 15:44:08 +0000611 * ext2fs.h: Define EXT2FS_COMPRESSED_BLKADDR and HOLE_BLKADDR.
612 Conditionally include Compression as a supported type if
613 ENABLE_COMPRESSION (via --enable-compression) is turned on.
614
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +0000615 * swapfs.c (ext2fs_swap_super): Swap the compression usage bitmap.
616
Theodore Ts'o28ffafb2000-02-08 19:14:02 +00006172000-02-08 <tytso@snap.thunk.org>
618
619 * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap,
620 ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
621 ext2fs_mark_inode_bitmap, ext2fs_unmark_inode_bitmap):
622 Change to return the previous state of the bit that is
623 being marked or unmarked. For speed optimization.
624
Theodore Ts'o80e808f2000-02-02 16:19:59 +00006252000-02-02 Theodore Ts'o <tytso@valinux.com>
626
627 * getsize.c, ismounted.c: Remove unneeded include of linux/fs.h
628
629 * swapfs.c: Remove #ifdef HAVE_EXT2_INODE_VERSION since it's not
630 needed any more; we know it will always be i_generation.
631 Add support for swapping the high bits of the uid and gid.
632
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +00006331999-11-19 <tytso@valinux.com>
634
Theodore Ts'odab278a1999-11-19 18:49:27 +0000635 * mkdir.c (ext2fs_mkdir): Only update the parent's inode link
636 counts if the link was successful. Patch suggested by
637 jeremy@goop.org.
638
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +0000639 * Makefile.in (distclean): Remove TAGS and Makefile.in.old from
640 the source directory.
641
Theodore Ts'ocd086361999-11-10 16:00:39 +00006421999-11-10 <tytso@valinux.com>
643
644 * Release of E2fsprogs 1.18
645
Theodore Ts'o9b9fe8a1999-11-08 22:05:04 +00006461999-11-08 <tytso@valinux.com>
647
648 * Makefile.in (tst_badblocks): Add freefs.o to the object list,
649 since ext2fs_badblocks_list_free was moved to freefs.c.
650
651 * tst_badblocks.c: Use the newer badblocks API names. Add
652 duplicate blocks to the test inputs to test dealing with
653 adding blocks which are already in the badblocks list.
654
655 * badblocks.c (ext2fs_badblocks_list_add): If appending to the end
656 of the list, use a shortcut O(1) operations instead of an
657 O(n) operation. (Idea suggested by David Beattie.)
658
659 * freefs.c (ext2fs_free): Use ext2fs_badblocks_list_free() instead
660 of badblocks_list_free(), to save a procedure call.
661
Theodore Ts'o416c93d1999-10-26 04:49:54 +00006621999-10-26 <tytso@valinux.com>
663
Theodore Ts'o28e11941999-10-26 18:17:20 +0000664 * Release of E2fsprogs 1.17
665
6661999-10-26 <tytso@valinux.com>
667
Theodore Ts'o416c93d1999-10-26 04:49:54 +0000668 * ext2fs.h: Add kludge to deal with the fact that egcs cpp doesn't
669 seem to handle ~0UL the same way as they used to.
670
Theodore Ts'o601002b1999-10-26 02:06:39 +00006711999-10-25 <tytso@valinux.com>
672
Theodore Ts'ofe70fd31999-10-26 02:34:47 +0000673 * nt_io.c (_OpenNtName): Open the device using
674 FILE_SYNCHRONOUS_IO_NONALERT instead of
675 FILE_SYNCHRONOUS_IO_ALERT
676 (nt_open): At the end of the device open routine, unlock
677 the drive but do not dismount it.
678
Theodore Ts'o601002b1999-10-26 02:06:39 +0000679 * initialize.c (CREATOR_OS): Use __GNU__ instead of __gnu__ to
680 detect the Hurd OS.
681
Theodore Ts'oe6198e51999-10-23 00:58:54 +00006821999-10-22 <tytso@valinux.com>
683
Theodore Ts'o614fdfd1999-10-23 03:19:51 +0000684 * Release of E2fsprogs 1.16
685
6861999-10-22 <tytso@valinux.com>
687
Theodore Ts'oe6198e51999-10-23 00:58:54 +0000688 * mkdir.c (ext2fs_mkdir): Pass EXT2_FT_DIR flag to ext2fs_link().
689
690 * link.c (ext2fs_link): This call now uses the low three bits of
691 the flags parameter to pass the directory filetype
692 information; it will set the directory entry FILETYPE
693 information if the filesystem supports it.
694
695 * newdir.c (ext2fs_new_dir_block): If the FILETYPE superblock
696 option is set, then create the '.' and '..' entries with
697 the filetype set to EXT2_FT_DIR.
698
Theodore Ts'oaa4115a1999-10-21 19:33:18 +00006991999-09-24 <tytso@valinux.com>
700
701 * nt_io.c: New file which supports I/O under Windows NT.
702
Theodore Ts'o3a5f8ea1999-09-14 20:21:26 +00007031999-09-07 <tytso@valinux.com>
704
705 * ext2fs.h: Add new fields for journalling and define new
706 feature bits used by newer filesystems: IMAGIC_INODES,
707 HAS_JOURNAL, RECOVER.
708
709 * expanddir.c (ext2fs_expand_dir, expand_dir_proc): Change where
710 we update the inode block count and size files so that the
711 block count field is updated correctly when we create an
712 indirect block.
713
7141999-07-18 Theodore Ts'o <tytso@valinux.com>
Theodore Ts'o657cb971999-07-30 23:19:10 +0000715
716 * Release of E2fsprogs 1.15
717
Theodore Ts'oe72a9ba1999-06-25 15:40:18 +00007181999-06-23 <tytso@valinux.com>
719
720 * swapfs.c (ext2fs_swap_inode): Add compatibility for Linux 2.3
721 kernels that use i_generation instead of i_version. Patch
722 supplied by Jon Bright <sircus@sircus.demon.co.uk>.
723
7241999-06-21 <tytso@valinux.com>
Theodore Ts'o813bbb21999-06-22 03:17:45 +0000725
726 * dir_iterate.c (ext2fs_process_dir_block): Check for corrupted
727 directory entry before calling the callback function.
728 This should prevent some core dumps of insufficiently
729 paranoid callback functions.
730
Theodore Ts'oa4bf69d1999-05-29 21:53:30 +00007311999-05-29 <tytso@rsts-11.mit.edu>
732
733 * ext2fs.h: Add feature definition for AFS IMAGIC inodes.
734
735 * fileio.c (ext2fs_file_open): Remove obsolete comment stating
736 that we don't handle writing yet (we do). Fixed bug where
737 we weren't allocating a big enough buffer for ext2_bmap.
738
Theodore Ts'of0687a51999-05-29 21:48:03 +00007391999-05-03 <tytso@rsts-11.mit.edu>
740
741 * openfs.c (ext2fs_open): Check to make sure that the number of
742 blocks per group is not zero --- if so, it must be a bad
743 superblock!
744
Theodore Ts'o9e51eca1999-01-09 16:32:31 +00007451999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
746
747 * Release of E2fsprogs 1.14
748
Theodore Ts'o665f7101999-01-08 13:33:39 +00007491999-01-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
750
751 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Check to see if
752 the inode number is zero; if it's zero, return
753 EXT2_ET_BAD_INODE_NUM.
754
Theodore Ts'o7a469521999-01-04 08:50:59 +00007551998-12-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
756
757 * initialize.c (ext2fs_initialize): Use EXT2_FIRST_INODE instead
758 of EXT2_FIRST_INO to ensure compatibility with Linux 1.2
759 header files.
760
Theodore Ts'o73f17cf1999-01-04 07:35:45 +0000761Mon Jan 4 02:32:09 1999 Theodore Y. Ts'o <tytso@mit.edu>
762
763 * llseek.c (ext2fs_llseek): Change ext2fs_llseek() in the
764 non-Linux case to use EINVAL by default, unless it isn't
765 defined, in which case we use EXT2_ET_INVALID_ARGUMENT
766 instead.
767
Theodore Ts'o556ad131998-12-19 08:10:58 +00007681998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu>
769
770 * Release of E2fsprogs 1.13
771
Theodore Ts'o5a679c81998-12-03 16:40:38 +00007721998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
773
774 * Makefile.in: Updated dependencies.
775
Theodore Ts'o8d7e83b1998-09-23 00:27:26 +00007761998-09-22 Theodore Ts'o <tytso@rsts-11.mit.edu>
777
778 * initialize.c (ext2fs_initialize): Make sure that we allocate
779 enough inodes so that we can make a valid filesystem.
780
Theodore Ts'o2eb374c1998-09-03 01:22:57 +00007811998-09-02 Theodore Ts'o <tytso@rsts-11.mit.edu>
782
783 * rw_bitmaps.c: Fixed signed/unsigned warnings.
784
785 * fileio.c (ext2fs_file_set_size): Remove unneeded extern from the
786 function declaration.
787
788 * dblist.c (make_dblist): Add safety check in case the dblist
789 pointer passed in is null (in which case, assign it to
790 fs->dblist). Fixed some signed/unsigned warnings.
791
792 * bmap.c: Make addr_per_block be of type blk_t to avoid
793 signed/unsigned warnings.
794
795 * namei.c (ext2fs_follow_link): Remove uneeded extern from the
796 function declaration.
797
798 * get_pathname.c (get_pathname_proc): Use return value from
799 ext2fs_get_mem, instead of checking if &gp->name is
800 NULL.
801
802 * dir_iterate.c (ext2fs_process_dir_block):
803 * dblist_dir.c (ext2fs_dblist_dir_iterate): Remove uneeded extern
804 from the function declaration.
805
806 * block.c (ext2fs_block_iterate2): If the read_inode call fails,
807 return the error directly instead of jumping to the
808 cleanup routine, since we don't need to do any cleanup.
809
810 * alloc_table.c (ext2fs_allocate_group_table): Make this
811 function take a dgrp_t for its group argument.
812
813 * ext2fs.h: Make dgrp_t an __u32 type, and make
814 fs->desc_group_count be of type dgrp_t.
815
Theodore Ts'of75c28d1998-08-01 04:18:06 +00008161998-07-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
817
818 * badblocks.c (ext2fs_badblocks_list_add): Use a bigger increment
819 than 10 blocks when we need to expand the size of the
820 badblocks list.
821
Theodore Ts'o4a5fa191998-07-09 05:42:45 +00008221998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
823
824 * Release of E2fsprogs 1.12
825
Theodore Ts'o30c42611998-06-30 05:33:11 +00008261998-06-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
827
828 * closefs.c (ext2fs_flush): Update the s_block_group_nr field as
829 appropriate for all of the block group copies, so that
830 it's clear where the beginning of the filesystem is on the
831 disk. (For when the partition table gets scrod.)
832
833 * ext2fs.h: Change the name of the feature from
834 EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE to
835 EXT2_FEATURE_INCOMPAT_FILESIZE (to match with the kernel).
836
Theodore Ts'o818180c1998-06-27 05:11:14 +00008371998-06-18 Theodore Ts'o <tytso@rsts-11.mit.edu>
838
839 * inode.c (get_next_blockgroup): Fix bug where if
840 get_next_blockgroup() is called early because of a missing
841 inode table in a block group, the current_inode counter
842 wasn't incremented correctly.
843
Theodore Ts'o4faba5b1998-06-16 05:23:41 +00008441998-06-16 Theodore Ts'o <tytso@rsts-11.mit.edu>
845
846 * read_bb.c (ext2fs_read_bb_inode): Make function more robust
847 against a completely trashed bad block inode.
848
Theodore Ts'o03673db1998-06-10 20:39:43 +00008491998-06-10 Theodore Ts'o <tytso@rsts-11.mit.edu>
850
851 * alloc_tables.c (ext2fs_allocate_group_table): Fix bug so that if
852 the stride length hits a bad value, we retry the block
853 allocation starting at the beginning of the block group.
854
855 * ext2fs.h, bb_inode.c, block.c, bmove.c, dir_iterate.c,
856 expanddir.c, ext2fsP.h, read_bb.c: Change blkcnt_t to be
857 e2_blkcnt_t to avoid collision with LFS API.
858
Theodore Ts'o353952d1998-05-01 05:32:18 +00008591998-05-01 Theodore Ts'o <tytso@rsts-11.mit.edu>
860
861 * initialize.c (ext2fs_initialize): Initialize s_inodes_count in a
862 way that avoids overflows on disk sizes greater than 4GB.
863
Theodore Ts'o4c77fe51998-04-30 17:35:59 +00008641998-04-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
865
866 * ext2fs.h: Define EXT2_QSORT_TYPE appropriately for the
867 return type for comparison functions for qsort.
868
869 * dblist.c (dir_block_cmp): Use EXT2_QSORT_TYPE in function
870 declaration.
871
Theodore Ts'o76f875d1998-04-27 01:41:13 +00008721998-04-26 Theodore Ts'o <tytso@rsts-11.mit.edu>
873
874 * ext2fs.h, bitops.h: Add support for the Watcom C compiler to do
875 inline functions.
876
877 * ext2fs.h, dosio.c: Use asm/types.h instead of linux/types.h to
878 evade a potential problem with glibc's header files trying
879 to spike out linux/types.h.
880
881 * ext2fs.h (ext2fs_resize_mem): Change the function prototype to
882 include the old size of the memory, which is needed for
883 some braindamaged memory allocation systems that don't
884 support realloc().
885
886 * badblocks.c (ext2fs_badblocks_list_add):
887 bb_inode.c (clear_bad_block_proc):
888 dblist.c (ext2fs_add_dir_block):
889 icount.c (insert_icount_el):
890 irel_ma.c (ima_put):
891 rs_bitmap.c (ext2fs_resize_generic_bitmap): Update functions to
892 pass the old size of the memory to be resized to
893 ext2fs_resize_mem().
894
Theodore Ts'o469bec81998-04-01 02:46:43 +00008951998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
896
897 * Makefile.in: Change to use new installation directory variables
898 convention. Fix uninstall rules to take $(DESTDIR) into
899 account.
900
Theodore Ts'o4a31c481998-03-30 01:27:25 +00009011998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu>
902
903 * ext2fs.h: If __STRICT_ANSI__ is defined and we're on a platform
904 with 32 bit longs, then we need to manually define __s64
905 and __u64, since the current kernel header files don't
906 define these if __STRICT_ANSI__ is defined. This is a
907 problem if we are compiling with full GCC warnings, since
908 we do need 64 bit support.
909
910 * Makefile.in (OBJS): Remove bmove.o from files to be built,
911 since we're not using ext2fs_move_blocks() and there
912 is some question as to its usefulness in its current
913 form.
914
915 * bmap.c (block_bmap): Remove unused function.
916
917 * bmove.c (process_block): Fix -Wall warning.
918
Theodore Ts'o36a43d61998-03-24 16:17:51 +00009191998-03-23 Theodore Ts'o <tytso@rsts-11.mit.edu>
920
921 * block.c (ext2fs_block_iterate3): Make the ref_offset field
922 contain the offset into the inode.i_blocks array when
923 ref_block is zero. Since we haven't done a formal
924 release of e2fsprogs since block_iterate2 was first
925 introduced, I removed block_iterate2, and renamed
926 block_iterate3 to be block_iterate2.
927
928 * bb_inode.c, bmove.c, dblist_dir.c, dir_iterate.c,
929 expanddir.c, ext2fs.h, ext2fsP.h, read_bb.c: Change
930 use of block_iterate and block_iterate2 to
931 block_iterate2 with the new prototype for the
932 interator function. (using blkcnt_t forr blockcount)
933
Theodore Ts'o674a4ee1998-03-23 02:06:52 +00009341998-03-21 Theodore Ts'o <tytso@rsts-11.mit.edu>
935
936 * ext2fs.h: Add new superblock fields (s_algorithm_usage_bitmap,
937 s_prealloc_blocks, s_prealloc_dir_blocks). Added
938 conditional defines of new features COMPAT_DIR_PREALLOC,
939 RO_COMPAT_LARGE_FILE RO_COMPAT_BTREE_DIR,
940 INCOMPAT_COMPRESSION, INCOMPAT_DIRNAME_SIZE. Changed
941 the library to declare that we support COMPAT_DIR_PREALLOC,
942 INCOMPAT_DIRNAME_SIZE, RO_COMPAT_LARGE_FILE.
943
944 * fileio.c: Rename function ext2fs_file_llseek to be
945 ext2fs_file_lseek, which is more accurate.
946
947 * block.c: Add new function ext2fs_block_iterate3 which calls
948 the iterator function with the blockcount argument of
949 type blkcnt_t. This version of the function is
950 allowed to handle large files; the other fucntions are
951 not.
952
953 * ext2fs.h: Add new type blkcnt_t
954
955 * ext2_err.et.in: Add error code EXT2_ET_FILE_TOO_BIG
956
957 * block.c (ext2fs_block_iterate2): Fix bug where the block count
958 field wasn't getting correctly incremented for sparse
959 files when the indirect or doubly-indirect block
960 specified in the inode was zero.
961
962Sun Mar 8 22:42:47 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
963
964 * unlink.c (unlink_proc):
965 * lookup.c (lookup_proc):
966 * link.c (link_proc):
967 * get_pathname.c (get_pathname_proc):
968 * dir_iterate.c (ext2fs_process_dir_block): Mask off high 8 bits
969 from dirent->name_len, so it can be used for other
970 purposes.
971
972 * ext2fs.h: Add definition of EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE,
973 and indicate that we have support for this incompatible
974 option.
975
Theodore Ts'oc7752561998-02-24 04:25:52 +0000976Mon Feb 23 08:46:33 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
977
978 * ext2_err.et.in: Added new error code, EXT2_ET_CANCEL_REQUESTED.
979
Theodore Ts'o79b05db1998-02-21 05:01:19 +0000980Fri Feb 20 23:58:01 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
981
982 * dblist.c (ext2fs_get_num_dirs): Improve the estimation of the
983 number of directories when the block group information is
984 unreliable.
985
Theodore Ts'oc4e749a1998-02-20 05:33:14 +00009861998-02-20 Theodore Y. Ts'o <tytso@edt.mit.edu>
987
Theodore Ts'o218a4861998-02-21 01:41:39 +0000988 * inode.c (ext2fs_get_next_inode): Always do the check to see if the
989 inode table is missing so that we catch the case where the
990 first block group is missing.
991
Theodore Ts'oc4e749a1998-02-20 05:33:14 +0000992 * getsize.c, ismounted.c, unix_io.c: #include errno.h since it's
993 needed.
994
Theodore Ts'o9abd2ce1998-02-16 22:00:37 +0000995Mon Feb 16 16:16:00 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
996
997 * ext2_io.h, ext2fs.h: Protect against being included multiple times.
998
999 * bmove.c: #include ext2fsP.h instead of "ext2fs/ext2fs.h"
1000
1001 * test_io.c (test_flush): Add a debugging printf when the flush
1002 method is called.
1003
1004 * rw_bitmaps.c (ext2fs_read_bitmaps): If the bitmaps are already
1005 read in, return right away.
1006
Theodore Ts'o5953b9d1998-02-01 13:23:02 +00001007Sun Feb 1 08:20:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1008
1009 * bitops.h: Don't try to do i386 inline asm functions if the
1010 compiler isn't GCC.
1011
1012 * ext2fs.h: If EXT2_FLAT_INCLUDES is defined, #include e2_types.h,
1013 instead of linux/types.h, and e2_bitops.h instead of
1014 ext2fs/bitops.h.
1015
1016 * icount.c, version.c: Don't #include <et/com_err.h>, as it isn't
1017 necessary.
1018
Theodore Ts'ob5abe6f1998-01-19 14:47:53 +00001019Sat Jan 17 13:13:31 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1020
1021 * inode.c (ext2fs_open_inode_scan): Initialize the group variables
1022 so that we don't need to call get_next_blockgroup() the
1023 first time around. Saves a bit of time, and prevents us
1024 from needing to assign -1 to current_group (which is an
1025 unsigned value).
1026
1027 * icount.c (insert_icount_el): Cast the estimated number of inodes
1028 from a float to an ino_t.
1029
1030 * alloc.c, alloc_tables.c, badlbocks.c, bb_compat.c, bb_inode.c,
1031 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
1032 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
1033 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
1034 expanddir.c, ext2fs.h, fileio.c, freefs.c,
1035 get_pathname.c, getsize.c, icount.c, initialize.c,
1036 inline.c, inode.c, irel_ma.c, ismounted.c, link.c,
1037 lookup.c, mkdir.c, namei.c, native.c, newdir.c,
1038 openfs.c, read_bb.c, read_bb_file.c, rs_bitmap.c,
1039 rw_bitmaps.c, swapfs.c, test_io.c, tst_badblocks.c,
1040 tst_getsize.c, tst_iscan.c, unix_io.c, unlink.c,
1041 valid_blk.c, version.c: If EXT2_FLAT_INCLUDES is
1042 defined, then assume all of the
1043 ext2-specific header files are in a flat directory.
1044
1045 * block.c, bmove.c, dirblock.c, fileio.c: Explicitly cast
1046 all assignments from void * to be compatible with C++.
1047
1048Tue Jan 6 11:28:15 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1049
1050 * closefs.c (ext2fs_flush): Add a call to io_channel_flush() to
1051 make sure the contents of the disk are flushed to disk.
1052
1053Mon Dec 29 14:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1054
1055 * dblist.c (ext2fs_add_dir_block): Change new to be new_entry to
1056 avoid C++ namespace clash.
1057
1058 * bitmaps.c (ext2fs_copy_bitmap): Change new to be new_map to
1059 avoid C++ namespace clash.
1060
1061 * ext2fs.h, bb_inode.c, block.c, bmove.c, brel.h, brel_ma.c,
1062 irel.h, irel_ma.c, dblist.c, dblist_dir.c, dir_iterate.c,
1063 ext2fsP.h, expanddir.c, get_pathname.c, inode.c, link.c,
1064 unlink.c: Change private to be priv_data (to avoid C++
1065 namespace clash)
1066
Theodore Ts'o5be8dc21997-12-01 18:24:10 +00001067Fri Nov 28 09:26:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1068
1069 * dblist.c (ext2fs_get_num_dirs): Make ext2fs_get_num_dirs more
1070 paranoid about validating the directory counts from the
1071 block group information.
1072
1073 * all files: Don't include stdlib.h anymore; include it in
1074 ext2_fs.h, since that file requires stdlib.h
1075
Theodore Ts'o89270b51997-11-24 11:44:25 +00001076Thu Nov 20 16:07:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1077
1078 * expanddir.c (ext2fs_expand_dir): Check to make sure the block
1079 bitmap is loaded, and return an error if it is not.
1080 (expand_dir_proc): Only use ext2fs_write_dir_block when
1081 writing a directory block, not when writing out a fresh
1082 indirect block.
1083
Theodore Ts'od36d8351997-11-12 03:48:07 +00001084Tue Nov 11 22:46:45 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1085
1086 * Makefile.in, tst_getsize.c: Added new file which is used to test
1087 the ext2fs_get_device_size function.
1088
1089 * ext2_err.et.in (EXT2_ET_UNIMPLEMENTED): Added new error code.
1090
Theodore Ts'o79a90bd1997-11-03 19:16:55 +00001091Sun Nov 2 20:36:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1092
1093 * ext2fs.h: Make ext2fs_get_mem take an unsigned argument.
1094
1095 * fileio.c (ext2fs_file_get_size, ext2fs_file_set_size,
1096 ext2fs_file_get_fs): New functions added.
1097
1098
1099Fri Oct 31 12:16:52 1997 <tytso@EDT.MIT.EDU>
1100
1101 * bitops.c (ext2fs_warn_bitmap, ext2fs_warn_bitmap2): Don't call
1102 com_err if OMIT_COM_ERR is defined.
1103
Theodore Ts'o1f0b6c11997-10-31 06:07:47 +00001104Thu Oct 30 11:33:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1105
1106 * Rename new error codes to _ET_ in them for consistency.
1107
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001108Sat Oct 25 00:06:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1109
Theodore Ts'o7b4e4531997-10-26 03:41:24 +00001110 * [all files, basically]: Added definition of ext2fs_get_mem,
1111 ext2fs_free_mem, and ext2fs_resize_mem in ext2fs.h, and
1112 changed all library routines to use these wrapper functions.
1113
Theodore Ts'o78d8f901997-10-26 01:53:39 +00001114 * dblist.c, mkdir.c: use EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND
1115 instead of the system error messages.
1116
1117 * ext2_err.et.in: Added new error messages EXT2_DIR_EXISTS and
1118 EXT2_DB_NOT_FOUND
1119
Theodore Ts'o30fab291997-10-25 22:37:42 +00001120 * ext2fs.h: Added function declarations and constants for bmap.c
1121 and fileio.c.
1122
1123 * ext2_err.et.in: Added new error messages EXT2_FILE_RO and
1124 EXT2_ET_MAGIC_EXT2_FILE
1125
1126 * Makefile.in: Added files bmap.c and fileio.c, and temporarily
1127 commented out brel_ma.c and irel_ma.c
1128
1129 * bmap.c: New file which maps a file's logical block number to its
1130 physical block number.
1131
1132 * fileio.c: New file which implements simple file reading and
1133 writing primitives.
1134
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001135 * alloc.c (ext2fs_alloc_block): New function which allocates a
Theodore Ts'o30fab291997-10-25 22:37:42 +00001136 block, zeros it, and updates the filesystem accounting
1137 records appropriately.
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001138
1139Wed Oct 22 16:47:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1140
1141 * ext2_err.et.in: Added new error codes: EXT2_NO_MEMORY,
1142 EXT2_INVALID_ARGUMENT, EXT2_BLOCK_ALLOC_FAIL,
1143 EXT2_INODE_ALLOC_FAIL, EXT2_NOT_DIRECTORY
1144
1145 * Change various library files to use these functions instead of
1146 EINVAL, ENOENT, etc.
1147
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +00001148Mon Oct 20 19:32:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1149
1150 * llseek.c: Check HAVE_LLSEEK_PROTOTYPE to see whether or not we
1151 need to declare llseek().
1152
Theodore Ts'o1d2ff461997-10-19 23:00:21 +00001153Sun Oct 19 18:56:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1154
Theodore Ts'od40259f1997-10-20 00:44:26 +00001155 * Rename io.h to be ext2_io.h (avoid namespace collisions)
1156
Theodore Ts'o1d2ff461997-10-19 23:00:21 +00001157 * Add #ifdef's for HAVE_SYS_STAT_H and HAVE_SYS_TYPES_H
1158
Theodore Ts'od163b091997-10-03 17:42:28 +00001159Fri Oct 3 13:35:59 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1160
1161 * llseek.c (ext2fs_llseek): Fix type error for ext2fs_llseek()
1162
1163 * icount.c (ext2fs_icount_validate):
1164 * bmove.c (process_block): Fix lint error in type for fprintf().
1165
1166Mon Sep 15 11:45:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1167
1168 * inode.c (ext2fs_check_directory): Add support for the callback
1169 to return the error code EXT2_ET_CALLBACK_NOTHANDLED.
1170
Theodore Ts'offf876b1997-09-13 00:32:29 +00001171Thu Sep 4 12:28:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1172
1173 * bitmaps.c (ext2fs_set_bitmap_padding): New function which sets the
1174 padding of the bitmap to be all one's.
1175
Theodore Ts'obc75f2a1997-09-04 00:43:10 +00001176Wed Sep 3 14:27:30 1997 Theodore Y. Ts'o <tytso@edt.mit.edu>
1177
1178 * llseek.c: Added missing semicolon to glibc fixup declaration of
1179 llseek().
1180
1181 * bmove.c: Add #include of errno.h
1182
Theodore Ts'oe9affb71997-08-24 02:57:55 +00001183Sat Aug 23 22:47:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1184
1185 * Makefile.in (ELF_SO_VERSION): Bump version to be 2.4 since we've
1186 added a new field to the io_channel (app_data).
1187
1188 * io.h: Add a new element to the io_channel structure, app_data.
1189
1190 * initialize.c, openfs.c: Set io->app_data to point at the
1191 filesystem handle.
1192
Theodore Ts'o1c27cac1997-08-14 17:20:42 +00001193Thu Aug 14 08:14:17 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1194
1195 * io.h: Change the prototype of ext2fs_llseek() to use int's
1196 instead of unsigned int's.
1197
1198 * llseek.c: Change to allow PIC and !HAVE_LLSEEK. Add a prototype
1199 to make life easer for GNU Libc 2.
1200
1201 * rw_bitmaps.c: On the PowerPC, the big-endian variant of the ext2
1202 filesystem has its bitmaps stored as 32-bit words with bit
1203 0 as the LSB of each word. Thus a bitmap with only bit 0
1204 set would be, as a string of bytes, 00 00 00 01 00 ... To
1205 cope with this, we byte-reverse each word of a bitmap if
1206 we have a big-endian filesystem, that is, if we are *not*
1207 byte-swapping other word-sized numbers.
1208
Theodore Ts'o3cb6c501997-08-11 20:29:22 +00001209Mon Aug 11 03:30:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1210
1211 * dosio.c: New file to do DOS/BIOS disk accesses.
1212
1213 * namei.c (open_namei): Make pathlen be of type size_t.
1214
1215 * llseek.c: Always #include stdlib.h since it's need to define
1216 size_t.
1217
1218 * io.h: Use errcode_t for magic numbers.
1219
1220 * icount.c (get_icount_el): Use size_t where appropriate
1221
1222 * dupfs.c (ext2fs_dup_handle):
1223 * dblist.c (dir_block_cmp): Use size_t where appropriate.
1224
1225 * read_bb.c (ext2fs_read_bb_inode):
1226 * cmp_bitmaps.c (ext2fs_compare_inode_bitmap): Use blk_t, ino_t
1227 and size_t where appropriate.
1228
1229 * closefs.c (ext2fs_flush): Use dgrp_t instead of int where
1230 appropriate.
1231
1232 * openfs.c (ext2fs_open):
1233 * check_desc.c (ext2fs_check_desc): Use blk_t instead of int where
1234 appropriate.
1235
1236 * rw_bitmaps.c (read_bitmaps):
1237 * irel_ma.c:
1238 * inode.c (ext2fs_write_inode):
1239 * initialize.c (ext2fs_initialize):
1240 * brel_ma.c: Fix to make be 16-bit safe.
1241
1242 * link.c (ext2fs_link):
1243 * unlink.c (ext2fs_unlink):
1244 * lookup.c (lookup_proc):
1245 * ismounted.c (ext2fs_check_if_mounted):
1246 * block.c (xlate_func): Add #pragma argsused for Turbo C.
1247
Theodore Ts'o4cbe8af1997-08-10 23:07:40 +00001248Sun Aug 10 10:05:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1249
1250 * block.c (ext2fs_block_iterate2): Use retval which is a errcode_t
1251 type.
1252
1253 * bitmaps.c (make_bitmap): Use size_t instead of int where
1254 appropriate.
1255
1256 * bb_inode.c (set_bad_block_proc): Add #pragma argsused for Turbo C.
1257
1258 * alloc.c (ext2fs_new_inode): Use ino_t instead of int for the
1259 group number.
1260
1261 * get_pathname.c: Use ino_t instead of int where appropriate.
1262
1263 * ext2fs.h: Make the magic structure element be errcode_t instead
1264 of int.
1265
1266 * alloc.c alloc_tables.c badblocks.c bb_compat.c bb_inode.c
1267 bitmaps.c block.c bmove.c brel_ma.c check_desc.c closefs.c
1268 cmp_bitmaps.c dblist.c dblist_dir.c dir_iterate.c
1269 dirblock.c dupfs.c expanddir.c freefs.c get_pathname.c
1270 icount.c initialize.c inline.c inode.c irel_ma.c link.c
1271 llseek.c lookup.c mkdir.c namei.c newdir.c read_bb.c
1272 read_bb_file.c rs_bitmap.c rw_bitmaps.c swapfs.c
1273 test_io.c tst_badblocks.c tst_iscan.c unix_io.c unlink.c
1274 valid_blk.c version.c: Add an #ifdef for HAVE_UNISTD_H
1275
Theodore Ts'o024996c1997-06-17 05:38:35 +00001276Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1277
Theodore Ts'oa1230b11997-07-02 02:41:59 +00001278 * unix_io.c (unix_read_blk): If ext2fs_llseek() fails, but errno
1279 is zero, then return EXT2_IO_LLSEEK_FAILED.
1280
1281 * ext2_err.et.in: Add a new error code, EXT2_IO_LLSEEK_FAILED.
1282
Theodore Ts'o024996c1997-06-17 05:38:35 +00001283 * Release of E2fsprogs 1.11
1284
Theodore Ts'o549860c1997-06-17 03:55:00 +00001285Mon Jun 16 23:53:06 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1286
1287 * dblist.c (ext2fs_dblist_count): Added new function which returns
1288 the number of directory blocks in dblist.
1289
Theodore Ts'o36f21431997-06-14 07:25:40 +00001290Sat Jun 14 01:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1291
1292 * unix_io.c (unix_flush): Make the io_channel flush function do a
1293 fsync to flush the kernel buffers to disk.
1294
Theodore Ts'o9941fb71997-06-11 22:27:41 +00001295Wed Jun 11 18:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1296
1297 * inode.c (ext2fs_inode_scan_goto_blockgroup): Fix bug; the
1298 current inode number wasn't being set by the
1299 goto_blockgroup function.
1300
Theodore Ts'o1e1da291997-06-09 14:51:29 +00001301Mon Jun 9 10:45:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1302
1303 * bmove.c (ext2fs_move_blocks): New function which takes a bitmap
1304 of blocks which need to be moved, and moves those blocks
1305 to another location in the filesystem.
1306
1307 * rs_bitmap.c (ext2fs_resize_generic_bitmap): When expanding a
1308 bitmap, make sure all of the new parts of the bitmap are
1309 zero.
1310
1311Sun Jun 8 16:24:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1312
1313 * bitmaps.c (ext2fs_copy_bitmap): Fix bug; the destination bitmap
1314 wasn't being returned to the caller.
1315
1316 * alloc_tables.c (ext2fs_allocate_group_table): Add new function
1317 ext2fs_allocate_group_table() which sets the group tables
1318 for a particular block group. The relevant code was
1319 factored out of ext2fs_allocate_tables().
1320
1321 * dblist.c (make_dblist): Adjust the initial size of the directory
Theodore Ts'o024996c1997-06-17 05:38:35 +00001322 block list to be a bit more realistic (ten plus twice the
Theodore Ts'o1e1da291997-06-09 14:51:29 +00001323 number of directories in the filesystem).
1324
Theodore Ts'of635d7f1997-05-09 02:50:16 +00001325Thu May 8 22:19:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1326
1327 * badblocks.c (ext2fs_badblocks_list_test): Fix bug where
1328 ext2fs_badblocks_list_test would test the list (and exceed
1329 array boundaries) if there were no bad blocks on the bad
1330 blocks list. (Showed up when user tried: mke2fs -c -b 4096).
1331
Theodore Ts'oa29f4d31997-04-29 21:26:48 +00001332Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1333
1334 * Release of E2fsprogs version 1.10
1335
1336Thu Apr 24 10:13:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1337
1338 * alloc_tables.c (ext2fs_allocate_tables): Correctly place the
1339 inode and block bitmaps based on the RAID 0 stride
1340 parameter (which is passed by mke2fs).
1341
1342 * ext2fs.h: Add "stride" parameter to ext2_filsys, to be used by
1343 mke2fs to communicate the stride length to
1344 ext2fs_allocate_tables()
1345
1346Wed Apr 23 21:50:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1347
1348 * initialize.c (ext2fs_initialize): Fix to compile under Linux 1.2
1349 systems. (We can't assume that the new filesystem types
1350 are supported.)
1351
1352Wed Apr 23 18:40:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1353
1354 * alloc_tables.c (ext2fs_allocate_tables): Make sure that we
1355 allocate the inode and block bitmaps inside block group at
1356 all times.
1357
1358Mon Apr 21 00:06:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1359
1360 * alloc.c (ext2fs_new_block): Fix bug where if goal==0 and the
1361 filesystem has no free blocks, ext2fs_new_block would loop
1362 forever.
1363
1364 * dupfs.c (ext2fs_dup_handle): Duplicate an ext2 filesystem handle
1365
1366 * freefs.c (ext2fs_free_inode_cache): Decrement refcount and only
1367 free if refcount goes to zero.
1368
1369 * inode.c (create_icache): Initialize refcount to 1.
1370
1371 * ext2fsP.h: Added refcount to ext2_inode_cache
1372
1373 * dblist.c (ext2fs_copy_dblist): New function to copy a directory
1374 block list.
1375
1376 * badblocks.c (ext2fs_badblocks_copy): New function to copy a
1377 badblocks structure.
1378
1379Sun Apr 20 23:19:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1380
1381 * bitmaps.c (ext2fs_copy_bitmap): New function to copy a bitmap.
1382
1383 * unix_io.c, test_io.c (unix_open, test_open): Initialize the
1384 refcount to 1.
1385 (unix_close, test_close): Decrement the refcount and only
1386 close the io_channel if the refcount goes to 0.
1387
1388 * io.h: Add refcount to the io_channel structure. Add new macro
1389 interface io_channel_bumpcount() to bump the refcount.
1390
1391Thu Apr 17 20:25:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1392
1393 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Use the inode
1394 cache in the filesystem handle, instead of the inode cache
1395 in a static variable.
1396
1397 * freefs.c: Added static function to free the inode cache (called by
1398 ext2fs_free).
1399
1400 * ext2fsP.h: Added definition of the ext2_inode_cache structures.
1401
1402 * ext2fs.h: Added pointer to the inode_cache structure.
1403
1404 * block.c (block_iterate_ind, block_iterate_dind,
1405 block_iterate_tind): If there are holes in the indirect,
1406 doubly indirect, or triply indirect blocks, increment the
1407 block count field automatically.
1408
1409Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1410
1411 * Release of E2fsprogs version 1.09
1412
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +00001413Mon Apr 14 20:38:56 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1414
1415 * version.c (ext2fs_parse_version_string): Check the passed in
1416 version string (instead of the hard-coded one).
1417
1418 * alloc_tables.c (ext2fs_allocate_tables): If the last block is
1419 greater filesystem size, clamp it to prevent allocating a
1420 block or inode bitmap beyond the filesystem.
1421
1422 * initialize.c (ext2fs_initialize): Fix bug where the metatdata
1423 overhead calculation was accidentally removed.
1424
1425Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1426
1427 * Release of E2fsprogs version 1.08
1428
Theodore Ts'o521e3681997-04-29 17:48:10 +00001429Thu Apr 10 13:15:15 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1430
1431 * dblist.c (ext2fs_set_dir_block): New function which sets the
1432 block of a dblist entry, given the directory inode and
1433 blockcnt.
1434
1435Sat Apr 5 12:42:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1436
1437 * alloc_tables.c (ext2fs_allocate_tables): Allocate the bitmap and
1438 inode bitmaps at staggered locations across the block
1439 groups, to avoid concentrating the bitmaps on a small
1440 number of disks when using striped RAID arrays.
1441
1442 * initialize.c (ext2fs_initialize): By default, choose the maximum
1443 possible number of blocks per group (based on the size of
1444 the bitmaps in the blocksize).
1445
1446Fri Apr 4 11:28:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1447
1448 * initialize.c (ext2fs_initialize): Add support for
1449 EXT2_COMPAT_SPARSE_SUPER feature.
1450
1451 * closefs.c (ext2fs_bg_has_super): New function to determine
1452 whether or a particular block group should have a
1453 superblock and block group descriptor. Used for the
1454 EXT2_COMPAT_SPARSE_SUPER feature is turned on.
1455 (ext2fs_flush): Check ext2fs_bg_has_super to see whether
1456 or not the superblock should be written out for the block
1457 group.
1458
1459 * ext2fs.h (EXT2_COMPAT_SPARSE_SUPER): Define compatibility flag
1460 for sparse duplicate superblocks.
1461
1462 * version.c (ext2fs_get_library_version): New function which
1463 returns the library version.
1464
1465 * version.c (ext2fs_parse_version_string): New function which
1466 parses a version string and returns a version number,
1467 so application programs can compare version numbers as
1468 integers.
1469
1470Wed Mar 26 00:43:52 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1471
1472 * icount.c (ext2fs_create_icount): Change function so that it also
1473 takes a new argument which contains a "hint" icount
1474 structure. This "hint" icount allows the create function
1475 to set up the sorted list in advance. This reduces
1476 significantly the amount of data moving needed to insert
1477 these inodes into the list later.
1478
1479 * icount.c (ext2fs_icount_validate): New function which validates
1480 that the icount structure's rep invariant.
1481
1482 * icount.c (get_icount_el): Completely revamped implementation
1483 to subsume put_icount_el(). Put_icount_el() used to
1484 use an O(N) implementation to insert in the middle
1485 of the icount list. It now uses a O(ln N) to search
1486 for where the icount should be inserted, and then uses
1487 a memcpy to move the list down (instead of a for loop).
1488
1489 * icount.c (ext2fs_icount_fetch, ext2fs_icount_store,
1490 ext2fs_icount_increment, ext2fs_icount_decrement): Check
1491 to see if the inode is within bounds; if it isn't, return
1492 EINVAL.
1493
1494 * bitops.h (ext2fs_test_generic_bitmap): Fix error message given
1495 when a bad inode number is passed to test_generic_bitmap
1496 to be EXT2FS_TEST_ERROR instead of the wrong
1497 EXT2FS_UNMARK_ERROR.
1498
Theodore Ts'o21c84b71997-04-29 16:15:03 +00001499Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
1500
1501 * Release of E2fsprogs version 1.07
1502
1503Sun Mar 2 16:46:18 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1504
1505 * Makefile.in (ELF_VERSION): Change version to be 2.2
1506
1507Tue Feb 11 14:54:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1508
1509 * alloc.c (ext2fs_get_free_blocks): Change routine to use
1510 ext2fs_fast_test_block_bitmap_range().
1511
1512 * bitops.h (ext2fs_fast_test_block_bitmap_range,
1513 ext2fs_test_block_bitmap_range: New inline functions which
1514 test to see whether a contiguous range of blocks is
1515 available.
1516
1517Thu Feb 6 10:00:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1518
1519 * badblocks.c (ext2fs_badblocks_list_create): Rename sybmols to use
1520 use ext2fs_badblocks_* instead of badblocks_*
1521
1522 * bb_compat.c: New file which translates between old badblocks_*()
1523 names to ext2fs_badblocks_*()
1524
1525 * unlink.c (ext2fs_unlink): New file, moved ext2fs_unlink() from
1526 link.c (since e2fsck doesn't use ext2fs_unlink()).
1527
1528 * rs_bitmap.c (ext2fs_resize_generic_bitmap): New file, contains
1529 bitmap resizing routine moved from bitmaps.c, since e2fsck
1530 doesn't need to use this function.
1531
1532 * lookup.c (ext2fs_lookup): Moved ext2fs_lookup to its own file,
1533 since e2fsck only needs ext2fs_lookup.
1534
1535Mon Feb 3 10:11:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1536
1537 * inode.c (ext2fs_open_inode_scan): Set fs->badblocks if it is not
1538 already set; this is needed so that programs like dump
1539 which use the inode scan functions will deal with
1540 filesystems that have bad blocks in the inode table.
1541
1542Sun Feb 2 00:17:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1543
1544 * ext2fs.h (struct_badblocks_list, struct_badblocks_iterate):
1545 Moved to ext2fsP.h, since it doesn't need to be part of
1546 the public interface.
1547
1548 * dir_iterate.c: Move ext2_dir_iterate out of namei.c.
1549
1550Sat Feb 1 10:14:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1551
1552 * dblist.c (ext2fs_get_num_dirs): New file, which implements a
1553 directory block list abstraction. (Code moved from
1554 e2fsck).
1555
1556 * ext2fs.h, inode.c: Moved definition of ext2_struct_inode_scan to
1557 to inode.c (since no one else should be peeking inside it!)
1558
1559 * valid_blk.c (ext2_inode_has_valid_blocks): New function.
1560
1561 * openfs.c (ext2fs_open): Check the feature set in the ext2
1562 superblock, and refuse to open filesystems if they contain
1563 incompatible features. (Can be overriden with the
1564 EXT2_FLAG_FORCE
1565
1566Sun Jan 12 11:31:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1567
1568 * block.c (ext2fs_block_iterate2): Added new function
1569 ext2fs_block_iterate2 which changes the function
1570 signature of the callback function to include the
1571 referencing block and offset.
1572
1573 * inode.c (ext2fs_inode_scan_goto_blockgroup): Added new function
1574 ext2fs_inode_scan_goto_blockgroup which allows an
1575 application to jump to a particular block group while
1576 doing an inode scan.
1577
1578Wed Jan 1 23:50:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1579
1580 * dirblock.c: Include string.h, since we use memcpy().
1581
1582Tue Dec 3 12:27:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1583
1584 * getsize.c (ext2fs_get_device_size): The ioctl BLKGETSIZE returns
1585 a long not an int; this doesn't matter on i386 machines,
1586 but it does on Alpha's.
1587
1588Fri Nov 29 20:57:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1589
1590 * inode.c (ext2fs_write_inode, ext2fs_read_inode): If the inode
1591 table pointer is NULL, then return an error indicating
1592 that the inode table is missing.
1593 (get_next_blockgroup, get_next_blocks,
1594 ext2fs_get_next_inode): Don't treat a missing inode table
1595 as permanent error. Return MISSING_INODE_TABLE, but as an
1596 advisory error code, much like BAD_BLOCK_IN_INODE_TABLE.
1597
1598 * rw_bitmaps.c (ext2fs_write_block_bitmap,
1599 ext2fs_write_inode_bitmap): If the inode or block bitmap
1600 block is zero, then don't write out the inode or block
1601 bitmap. The idea here is to avoid stomping on the
1602 superblock.
1603 (read_bitmaps): If the inode or block bitmap block is
1604 zero, then fill in that portion of the inode or block
1605 bitmap with all zeros.
1606
1607 * inode.c (ext2fs_get_next_inode): Fix bug in handling of bad
1608 blocks in inode table when the inode table size is
1609 non-standard (and can therefore span blocks).
1610
1611Tue Oct 29 20:13:14 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1612
1613 * alloc.c (ext2fs_new_block): Fix fencepost error in
1614 ext2fs_new_block; make sure we don't try to allocate the
1615 first block beyond the end of the filesystem.
1616
1617Mon Oct 14 11:00:48 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1618
1619 * inode.c (check_for_inode_bad_blocks): New function called by
1620 get_next_blocks() to avoid reading in bad blocks marked in
1621 fs->badblocks. Inodes located in bad blocks are returned
1622 by ext2fs_get_next_inode() returns the error code
1623 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE.
1624
1625 * alloc_tables.c (ext2fs_allocate_tables): New function which
1626 performs the part of mke2fs's job of allocating the
1627 filesystem tables.
1628
1629 * test_io.c (test_close): IO manager which is used for testing
1630 purposes.
1631
1632Sun Oct 13 04:31:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1633
1634 * inode.c (ext2fs_get_next_inode): Separate out the function of
1635 setting up for a new block group to get_next_blockgroup().
1636 Separate out the function of reading in blocks of the
1637 inode table to get_next_blocks().
1638
1639 * ext2fs.h: Add the badblocks list to the ext2_filsys entry
1640
1641 * badblocks.c (badblocks_list_add, badblocks_list_test): Add
1642 blocks to the badblock list in sorted order. This allows
1643 badblocks_list_test to be coded using a binary search for
1644 speed.
1645
1646Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1647
1648 * Release of E2fsprogs version 1.06
1649
Theodore Ts'o5c576471997-04-29 15:29:49 +00001650Mon Oct 7 00:44:17 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1651
1652 * ext2fs.h, block.c, closefs.c, dirblock.c, inode.c, native.c,
1653 open.c: Change EXT2_SWAP to EXT2_FLAG_SWAP for
1654 consistency's sake.
1655
1656 * closefs.c (ext2fs_flush): If the flag EXT2_MASTER_SB_ONLY is
1657 set, then only write out the master superblock.
1658
1659Sun Oct 6 21:45:26 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1660
1661 * block.c (ext2fs_block_iterate): Fixed bug which caused
1662 block_iterate to fail to handle HURD created filesystems;
1663 it tested the inode translator field before the inode was
1664 loaded.
1665
1666Tue Sep 17 14:08:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1667
1668 * initialize.c (ext2fs_initialize): Make sure the description for
1669 the inode bitmap is set correctly.
1670
1671 * bitmaps.c (ext2fs_allocate_generic_bitmap): Fix minor type typo.
1672
1673Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1674
1675 * Release of E2fsprogs version 1.05
1676
Theodore Ts'o1e3472c1997-04-29 14:53:37 +00001677Sat Sep 7 07:36:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1678
1679 * initialize.c: Override the kernel's idea of default
1680 checkinterval from 0 (never) to 180 days.
1681
1682Wed Aug 28 03:20:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1683
1684 * namei.c (ext2fs_namei_follow): New function which follows
1685 symbolic link (if any) at the target.
1686
1687Tue Aug 27 01:48:43 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1688
1689 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Add support
1690 for shortcut function fs->read_inode() and fs->write_inode().
1691 Added inode_cache to reduce CPU time spent in doing
1692 byte swapping.
1693
1694 * swapfs.c (ext2fs_swap_super): Swap the new fields in a V2
1695 superblock.
1696
1697 * namei.c (ext2fs_follow_link): New function.
1698 (ext2fs_namei): Extended to have support for chasing
1699 symbolic links. ext2fs_namei() still returns an inode
1700 which is a symbolic link. Symbolic links are only chased
1701 while resolving the containing directory. To chase
1702 symbolic links of the final result, use
1703 ext2fs_follow_link().
1704
1705Mon Aug 26 23:46:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1706
1707 * ext2_err.et.in: Added new error code EXT2_ET_SYMLINK_LOOP.
1708
1709 * bitops.h (ext2fs_set_bit, ext2fs_celar_bit): Use asm inlines
1710 provided by Pete A. Zaitcev (zaitcev@lab.sun.mcst.ru).
1711
1712Thu Aug 22 00:40:18 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1713
1714 * initialize.c (ext2fs_initialize): On systems where the byte
1715 order is not i386 compatible, set the swap_byte flag.
1716
1717 * inode.c (inocpy_with_swap): Check to see if inode contains a
1718 fast symlink before swapping the inode block fields. This
1719 required adding a new argument to inocpy_with_swap to
1720 determine whether the mode field is in host order or not.
1721
1722Wed Aug 21 00:45:42 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1723
1724 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit): On
1725 the sparc, if EXT2_STD_BITOPS set, use the standard
1726 i386-compatible bitmask operations, instead on the
1727 non-standard native bitmask operators.
1728
1729Fri Aug 9 11:11:35 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1730
1731 * block.c (ext2fs_block_iterate): Cause block iterator to return
1732 the HURD translator block (along with everything else).
1733 If the flag BLOCK_FLAG_DATA_ONLY is passed to the block
1734 iterator, then don't return any meta data blocks
1735 (including the HURD translator).
1736
1737Wed Jul 17 17:13:34 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1738
1739 * gen_uuid.c: New file, which generates DCE-compatible UUIDs.
1740
1741 * uuid.c: New file, containing UUID utility functions.
1742
1743Tue Jul 16 10:19:16 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1744
1745 * ext2fs.h: Add a definition of the "real" ext2 superblock.
1746
1747Fri May 24 14:54:55 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1748
1749 * ext2fs.h: Fix erroneous ino_t type used in block_bitmap type.
1750
1751Sun May 19 15:39:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1752
1753 * openfs.c (ext2fs_open): If the blocksize in the superblock is
1754 zero, return the error EXT2_ET_CORRUPT_SUPERBLOCK, since
1755 that's a basic value that must be correct for the rest of
1756 the library to work.
1757
1758 * ext2_err.et.in (EXT2_ET_CORRUPT_SUPERBLOCK): Added new error
1759 code.
1760
Theodore Ts'o62c06f71997-04-29 14:34:47 +00001761Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1762
1763 * Release of E2fsprogs version 1.04
1764
Theodore Ts'o7f88b041997-04-26 14:48:50 +00001765Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
1766
1767 * Release of E2fsprogs version 1.03
1768
1769Tue Mar 26 12:06:32 1996 <tytso@rsts-11.mit.edu>
1770
1771 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit):
1772 Change the m68k bit numbering for bitmasks to match with
1773 the bit numbering used by all other ext2 implementations.
1774
1775Thu Mar 7 03:37:00 1996 <tytso@rsts-11.mit.edu>
1776
1777 * inode.c (ext2fs_get_next_inode, ext2fs_close_inode_scan,
1778 ext2fs_open_inode_scan): Support dynamically-sized inodes.
1779
1780Wed Mar 6 12:26:29 1996 <tytso@rsts-11.mit.edu>
1781
1782 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Support
1783 dynamically-sized inodes.
1784
1785 * openfs.c (ext2fs_open): Allow dynamic revision filesystem to be
1786 loaded.
1787
1788Tue Mar 5 03:49:37 1996 <tytso@rsts-11.mit.edu>
1789
1790 * initialize.c (ext2fs_initialize): Catch an error condition where
1791 the passed in size is *really* too small.
1792
1793 * alloc.c (ext2fs_new_inode):
1794 * ext2fs.h (EXT2_FIRST_INODE): Add support for dynamic revision to
1795 get first inode.
1796
1797Wed Feb 21 15:56:17 1996 <tytso@rsts-11.mit.edu>
1798
1799 * getsize.c (ext2fs_get_device_size): Open the device read-only
1800 when trying to determine its size.
1801
Theodore Ts'o74becf31997-04-26 14:37:06 +00001802Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
1803
1804 * Release of E2fsprogs version 1.02
1805
1806Sat Dec 9 09:57:50 1995 <tytso@rsts-11.mit.edu>
1807
1808 * rw_bitops.c (ext2fs_write_block_bitmap):
1809 * bitops.c (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
1810 * bitops.h (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
1811 Rename {test,set,clear}_bit to ext2fs_{test,set,clear}_bit,
1812 to avoid conflicts with with kernel include files. Also
1813 rename ADDR and CONST_ADDR to EXT2FS_ADDR and
1814 EXT2FS_CONST_ADDR.
1815
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001816Thu Oct 26 12:09:16 1995 <tytso@rsts-11.mit.edu>
1817
1818 * ext2_err.et: Updated message in EXT2_ET_BASE to say version 0.5c
1819
1820 * swapfs.c (ext2fs_swap_super): Put an #ifdef check around
1821 s_def_resuid and s_def_resgid for backwards compatibility.
1822
1823Fri Oct 20 23:33:31 1995 <tytso@rsts-11.mit.edu>
1824
1825 * bitops.h: Added #ifdef's for Sparc.
1826
1827Wed Sep 6 22:14:46 1995 <tytso@rsts-11.mit.edu>
1828
1829 * getsize.c: #include <sys/ioctl.h> under Linux to pick up ioctl()
1830 declaration
1831
1832 * closefs.c: #include <string.h> to pick up memset() declaration
1833
1834Mon Sep 4 21:45:29 1995 Remy Card <card@bbj>
1835
1836 * Makefile.in: Added support for BSD shared libraries.
1837
1838 * initialize.c (ext2fs_initialize): Correctly set the s_creator_os
1839 flag.
1840
1841Mon Sep 4 09:55:30 1995 <tytso@rsts-11.mit.edu>
1842
1843 * unix_io.c (unix_open): Add a double check; if the passed in name
1844 is NULL, return EXT2_ET_BAD_DEVICE_NAME.
1845
1846 * ext2_err.et (EXT2_ET_BAD_DEVICE_NAME): Added new error code
1847
1848Wed Aug 16 15:44:10 1995 <tytso@rsts-11.mit.edu>
1849
1850 * inode.c (ext2fs_check_directory): Use LINUX_S_ISDIR instead of
1851 S_ISDIR.
1852
1853Tue Aug 15 13:08:36 1995 <tytso@rsts-11.mit.edu>
1854
1855 * getsize.c (ext2fs_get_device_size): Add support for reading the
1856 partition size from a BSD disk label.
1857
1858Thu Aug 10 09:33:26 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1859
1860 * getsize.c (ext2fs_get_device_size): New function that determins
1861 the size of a device. Used by mke2fs and e2fsck.
1862
1863Sat Aug 12 03:09:54 1995 Remy Card <card@bbj>
1864
1865 * Makefile.in (install): Install static libraries in $(ulibdir)
1866 (/usr/lib on Linux) instead of $(libdir) (/lib on Linux).
1867
1868Wed Aug 9 17:04:23 1995 Theodore Y. Ts'o <tytso@dcl>
1869
1870 * bitmaps.c (ext2fs_free_inode_bitmap, ext2fs_free_block_bitmap):
1871 Move these functions to freefs.c.
1872
1873 * closefs.c (ext2fs_flush): If swapping blocks, clear the group
1874 descriptors shadow memory to keep purify quiet. (This
1875 also has the nice benefit that the unused portion of the
1876 shadow descriptors are zeroed out.)
1877
1878 * dirblock.c (ext2fs_write_dir_block): We need to use
1879 dirent->rec_len *before* it's byteswapped to find the
1880 location of the next directory structure!
1881
1882 * alloc.c (ext2fs_new_inode): Fix bug which could potentially
1883 cause ext2fs_new_inode to loop infinitely if we're trying
1884 to allocate an inode in group #0 and there are no free
1885 inodes at all in the system.
1886
1887 * closefs.c: #include <errno.h> if it exists.
1888
1889Sun Aug 6 13:27:50 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1890
1891 * ext2fs.h (BLOCK_FLAG_HOLE): Added new definition for
1892 BLOCK_FLAG_APPEND. Added documentation for the block
1893 interator flags.
1894
1895Sat Aug 5 11:44:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1896
1897 * Makefile.in (DLL_INSTALL_DIR, ELF_INSTALL_DIR): Set the
1898 installation directories correctly.
1899
1900Tue Jul 18 09:27:38 1995 <tytso@rsx-11.mit.edu>
1901
1902 * namei.c (process_dir_block):
1903 * mkdir.c (ext2fs_mkdir):
1904 * expanddir.c (expand_dir_proc): Use ext2fs_{read,write}_dir_block
1905 to read/write the directory block.
1906
1907 * dirblock.c (ext2fs_read_dir_block), ext2fs_write_dir_block): New
1908 file containing functions for reading and writing
1909 directory blocks (byte swapping if necesssary)
1910
1911 * block.c (block_iterate_ind, block_iterate_dind,
1912 block_iterate_tind): Byte swap the block addresses if
1913 EXT2_SWAP_BYTES is set (and swap them back before writing
1914 them out.)
1915
1916 * inode.c (inocpy_with_swap): New function.
1917 (ext2fs_get_next_inode, ext2fs_read_inode, ext2fs_write_inode):
1918 Call inocpy_with_swap if EXT2_SWAP_BYTES if set.
1919
1920 * closefs.c (ext2fs_flush): If EXT2_SWAP_BYTES is set, then swap
1921 the superblock and group descriptors before writing it out.
1922
1923 * openfs.c (ext2fs_open): If the magic number is byte-swapped,
1924 then set the EXT2_SWAP_BYTES and byte-swap the superblock
1925 and group descriptors.
1926
1927 * swapfs.c (ext2fs_swap_super, ext2fs_swap_group_desc): New functions
1928 to desp ext2 filesystem structures.
1929
1930 * bitops.c (set_bit, clear_bit, test_bit): Use modifications
1931 supplied by Pete A. Zaitcev so that the C language
1932 versions of these functions are more portable. They will
1933 now work on both little and big endian systems, and the
1934 assumption that 32-bit integers are used is gone.
1935
1936 * bitops.h (ext2_swab16, ext2_swab32): Added new functions for
1937 doing byte swapping.
1938
1939 * ext2fs.h (EXT2_SWAP_BYTES): Add new flag which indicates that
1940 byte swapping should take place.
1941
1942Sun Jul 16 06:21:43 1995 <tytso@rsx-11.mit.edu>
1943
1944 * Makefile.in, cmp_bitmaps.c (ext2fs_compare_block_bitmap_end,
1945 ext2fs_compare_inode_bitmap_end): Added new file
1946 containing routines to compare bitmaps.
1947
1948 * ext2_err.et (EXT2_ET_NEQ_BLOCK_BITMAP, EXT2_ET_NEQ_INODE_BITMAP):
1949 Added new error codes.
1950
1951Sat Jul 15 04:23:37 1995 <tytso@rsx-11.mit.edu>
1952
1953 * inode.c (ext2fs_get_next_inode): Don't check scan->inode_buffer;
1954 if the magic number is correct, it will be allocated.
1955
1956Fri Jul 14 19:02:59 1995 <tytso@rsx-11.mit.edu>
1957
1958 * block.c (block_iterate_ind, block_iterate_dind,
1959 block_iterate_tind): Don't recompute block_nr each loop;
1960 just increment it! Factor check of BLOCK_FLAG_APPEND out
1961 of the loop. Factor mask of BLOCK_CHANGED into changed
1962 variable out of the loop. (block_iterate_ind, in
1963 particular, gets called a lot, so every little
1964 optimization helps.)
1965
1966Thu Jul 13 08:02:45 1995 <tytso@rsx-11.mit.edu>
1967
1968 * block.c (block_iterate_ind, block_iterate_dind,
1969 block_iterate_tind): Precompute limit of loop to speed up
1970 block_iterate_ind and company.
1971
1972 * bitops.h (ext2fs_fast_mark_block_bitmap,
1973 ext2fs_fast_unmark_block_bitmap, ext2fs_fast_test_block_bitmap,
1974 ext2fs_fast_mark_inode_bitmap, ext2fs_fast_unmark_inode_bitmap,
1975 ext2fs_fast_test_inode_bitmap): Add fast version of these
1976 functions, which don't do range checking.
1977
1978 * bitops.h (ext2fs_get_block_bitmap_start,
1979 ext2fs_get_inode_bitmap_start, ext2fs_get_block_bitmap_end,
1980 ext2fs_get_inode_bitmap_end): Add new accessor functions
1981 which return the start and end points of the bitmaps.
1982
1983Tue Jul 11 18:59:41 1995 <tytso@rsx-11.mit.edu>
1984
1985 * llseek.c (ext2_llseek): If the offset is small enough, use lseek
1986 instead of llseek. The errno if the offset is too large
1987 and lseek is not supported should be EINVAL, not -EINVAL.
1988
1989Thu Jun 15 23:43:02 1995 Remy Card <card@bbj>
1990
1991 * Makefile.in: Added support for ELF shared libraries.
1992 Fixed typos in the compilation rules.
1993 (distclean): Added Makefile.
1994
1995 * llseek.c (llseek): New function, if llseek() does not exist in the
1996 C library.
1997 (ext2_llseek): Changed to call llseek().
1998
1999Mon Jun 12 08:29:07 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2000
2001 * ext2fs.h: Use __u32 to define blk_t, instead of unsigned long.
2002
2003Sun Jun 11 15:02:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2004
2005 * mkdir.c (ext2fs_mkdir): Use LINUX_S_IFDIR instead of S_IFDIR.
2006
2007 * ext2fs.h (LINUX_S_IFDIR): Define a linux specific versions of
2008 the S_*, which are normally defined in <sys/stat.h>. This
2009 allows us to compile e2fsprogs on a non-Linux system,
2010 which may have a different value for S_IFDIR.
2011
2012Sat Jun 10 23:47:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2013
2014 * bitops.c (clear_bit, set_bit): Remove calls to cli() and sti();
2015 this is a user-mode application!
2016
2017Thu Jun 8 13:13:22 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
2018
2019 * llseek.c: Put the include of <linux/unistd.h> inside the #ifdef
2020 __linux__ so that non-linux systems won't see it.
2021
2022 * alloc.c: Include <errno.h> if possible.
2023 * badblocks.c: Ditto.
2024 * bb_inode.c: Ditto.
2025 * bitmaps.c: Ditto.
2026 * block.c: Ditto.
2027 * expanddir.c: Ditto.
2028 * get_pathname.c: Ditto.
2029 * initialize.c: Ditto.
2030 * inode.c: Ditto.
2031 * llseek.c: Ditto.
2032 * mkdir.c: Ditto.
2033 * namei.c: Ditto.
2034 * newdir.c: Ditto.
2035 * openfs.c: Ditto.
2036 * rw_bitmaps.c: Ditto.
2037 * unix_io.c: Ditto.
2038
2039 * Makefile.in: Rewritten to conform to GNU coding standards and
2040 support separate compilation directories.
2041
2042Thu May 11 04:13:12 1995 <tytso@rsx-11.mit.edu>
2043
2044 * initialize.c (ext2fs_initialize): Don't allow more than one
2045 bitmaps's worth of inodes in a group.
2046
Theodore Ts'of3db3561997-04-26 13:34:30 +00002047Sat Mar 11 14:07:11 1995 Theodore Y. Ts'o <tytso@localhost>
2048
2049 * llseek.c (ext2_llseek): Added error checking to the llseek()
2050 compat code to protect against overflow. This only
2051 applies to 1.0 and early 1.1 kernels, which don't support
2052 the llseek() system call.
2053
2054Thu Nov 24 16:29:00 1994 Theodore Y. Ts'o (tytso@rt-11)
2055
2056 * unix_io.c (unix_open): Initialize the read_error and write_error
2057 io_channel pointers to be null.
2058
2059 * bb_inode.c (clear_bad_block_proc): If an illegal block number is
2060 found, clear it but don't try to update the filesystem
2061 accounting information, since that's hopeless anyway.
2062
2063 * block.c (bloblock_iterate_ind, bloblock_iterate_dind,
2064 bloblock_iterate_tind): Check to see if the indirect blocks are
2065 valid before trying to read them.
2066
2067 * ext2_err.et (EXT2_ET_BAD_IND_BLOCK, EX2_ET_BAD_DIND_BLOCK,
2068 EXT2_ET_BAD_TIND_BLOCK): Add new error codes.
2069
2070 * bitops.h (ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
2071 ext2fs_test_block_bitmap, ext2fs_mark_inode_bitmap,
2072 ext2fs_unmark_inode_bitmap, ext2fs_test_inode_bitmap): If an
2073 illegal block or inode number is passed in, return instead
2074 of trying to test, set, or clear the bit.
2075
2076Mon Nov 7 21:32:33 1994 Remy Card <card@bbj>
2077
2078 * Makefile: Added a dummy install target in case shared libraries
2079 are not built.
2080
2081Mon Oct 24 14:11:44 1994 (tytso@rsx-11)
2082
2083 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix calculation of how
2084 the real last block of the bitmap should be calculated.
2085
2086Wed Sep 7 10:05:36 1994 (tytso@rsx-11)
2087
2088 * bitmaps.c (ext2fs_fudge_inode_bitmap_end,
2089 ext2fs_fudge_block_bitmap_end, ext2fs_clear_inode_bitmap,
2090 ext2fs_clear_block_bitmap, ext2fs_free_inode_bitmap,
2091 ext2fs_free_block_bitmap): Add magic number checking for
2092 the inode and block bitmaps.
2093
2094 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix to set the correct
2095 magic number for a block bitmap instead of an inode bitmap.
2096
2097 * inode.c (ext2fs_close_inode_scan, ext2fs_get_next_inode): Add
2098 magic number checking for the inode_scan structure.
2099
2100 * badblocks.c (badblocks_list_free, badblocks_list_add,
2101 badblocks_list_test, badblocks_list_iterate_begin,
2102 badblocks_list_iterate, badblocks_list_iterate_end): Add
2103 magic number checking for the badblocks_list and
2104 badblocks_iterate structures.
2105
2106 * ext2_err.et (EXT2_ET_MAGIC_UNIX_IO_CHANNEL):
2107 * unix_io.c (unix_open, unix_close, unix_set_blksize, unix_read_blk,
2108 unix_write_blk, unix_flush): Add magic number checking
2109 both for io_channel structure and unix_private_data
2110 structure.
2111
2112 * openfs.c (ext2fs_open): Add check for io_manager structure's
2113 magic number.
2114
2115 * rw_bitmaps.c (ext2fs_write_inode_bitmap, ext2fs_write_block_bitmap,
2116 ext2fs_read_inode_bitmap, ext2fs_read_block_bitmap,
2117 ext2fs_read_bitmaps, ext2fs_write_bitmaps):
2118 * read_bb.c (ext2fs_read_bb_inode):
2119 * read_bb_file.c (ext2fs_read_bb_FILE):
2120 * newdir.c (ext2fs_new_dir_block):
2121 * namei.c (ext2fs_dir_iterate, ext2fs_lookup, ext2fs_namei):
2122 * link.c (ext2fs_link, ext2fs_unlink):
2123 * inode.c (ext2fs_open_inode_scan, ext2fs_read_inode,
2124 ext2fs_write_inode, ext2fs_get_blocks,
2125 ext2fs_check_directory):
2126 * get_pathname.c (ext2fs_get_pathname):
2127 * expanddir.c (ext2fs_expand_dir):
2128 * block.c (ext2fs_block_iterate):
2129 * bitmaps.c (ext2fs_allocate_inode_bitmap,
2130 ext2fs_allocate_block_bitmap):
2131 * bb_inode.c (ext2fs_update_bb_inode):
2132 * alloc.c (ext2fs_new_inode,ext2fs_new_block,ext2fs_get_free_blocks):
2133 * check_desc.c (ext2fs_check_desc):
2134 * closefs.c (ext2fs_close, ext2fs_flush):
2135 * freefs.c (ext2fs_free): Add check for ext2_filsys magic number.
2136
2137 * Makefile:
2138 * ext2fs.h:
2139 * openfs.c:
2140 * check_desc.c (ext2fs_check_desc): Move ext2fs_check_desc from
2141 openfs.c into its own file.
2142
2143 * ext2fs.h (EXT2_CHECK_MAGIC): Added macro for checking for
2144 structure magic numbers.
2145
2146 * closefs.c (ext2fs_flush): Folded in Remy Card's changes to clear
2147 the EXT2_VALID_FS flag in the backup superblock blocks, so that if
2148 someone uses the -b option to specify the use of the backup
2149 superblock --- this usually means that the main superblock is
2150 toast. :-)
2151
2152 * ext2fs.h:
2153 * ext2_err.et (EXT2_ET_REV_TOO_HIGH):
2154 * openfs.c (ext2fs_open): Folded in Remy Card's changes to add a
2155 revision level to the superblock.
2156
2157Sun Aug 21 00:50:08 1994 Theodore Y. Ts'o (tytso@rt-11)
2158
2159 * ext2fs.h:
2160 * bitmaps.c:
2161 * bitops.c
2162 * bitops.h:
2163 * openfs.c:
2164 * initialize.c: Completely revamped the inode and block bitmap
2165 structures, so that they can be better chance of being extensible
2166 in a shared library. They are now their own type, instead of
2167 being a char *. Also, the function signatures of
2168 ext2fs_test_block_bitmap, ext2fs_mark_block_bitmap,
2169 ext2fs_unmark_block_bitmap, ext2fs_test_inode_bitmap,
2170 ext2fs_mark_inode_bitmap, and ext2fs_unmark_inode_bitmap were
2171 changed to eliminate the ext2_filsys argument, since it is no
2172 longer necessary.
2173
2174Wed Aug 17 21:46:44 1994 Remy Card (card@bbj)
2175
2176 * unix_io.c (unix_read_blk and unix_write_blk): use the llseek
2177 system call if available.
2178
2179 * llseek.c: new file. This is the stub calling the llseek system
2180 call which allows supports for 2GB+ file systems.
2181
2182 * initialize.c (ext2fs_initialize): Ext2fs_initialize now stores
2183 the creator operating system.
2184
2185Wed Aug 17 10:03:24 1994 Theodore Y. Ts'o (tytso@rt-11)
2186
2187 * initialize.c (ext2fs_initialize): Ext2fs_initialize now sets up
2188 the group descriptor statistics in addition to everything else.
2189 This relieves mke2fs of the responsibility of doing it.
2190
2191 * bitops.c, bitops.h: Add assembly inline functions for the 68000.
2192 Added a new #define, _EXT2_HAVE_ASM_BITOPS_ to control whether or
2193 not the generic C function equivalents should be included or not.
2194
2195 * openfs.c (ext2fs_open): If a superblock is specified, then use
2196 the backup group descriptors that go along with this superblock,
2197 instead of using the primary group descriptors. This allows
2198 e2fsck to recover filesystems where the primary group descriptors
2199 have been trashed.
2200
2201