blob: a8a4274f1e53ea5504f80ee08d75112dda3d26ac [file] [log] [blame]
Theodore Ts'o8cf93332001-12-16 02:23:36 -050012001-12-16 Theodore Tso <tytso@valinux.com>
2
Theodore Ts'o4ea7bd02001-12-16 23:23:37 -05003 * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap),
4 ext_attr.c (ext2fs_read_ext_attr, ext2fs_write_ext_attr),
5 fileio.c (ext2fs_file_write): Fix gcc -Wall nits
6
Theodore Ts'o8cf93332001-12-16 02:23:36 -05007 * Makefile.in, jfs_user.h: linux/jfs.h has been renamed to
8 linux/jbd.h
9
Theodore Ts'obd278802001-12-03 05:47:32 +0100102001-12-03 Theodore Tso <tytso@valinux.com>
11
12 * unix_io.c (unix_open): Make sure the ulimit workaround works
13 regardless of the version of glibc which is used to
14 compild e2fsprogs.
15
Theodore Ts'o8880e752001-11-26 21:05:36 -0500162001-11-26 Theodore Tso <tytso@valinux.com>
17
18 * unix_io.c (unix_open): Work around a bug in 2.4.10+ kernels by
19 trying to unset the filesize limit if at all possible,
20 if a block device is getting opened. (The filesize limit
21 shouldn't be applied against writes to a block device, but
22 starting in 2.4.10, the kernel is doing this.)
23
Theodore Ts'ob3f5b4c2001-11-05 19:22:02 -0500242001-11-05 Theodore Tso <tytso@valinux.com>
25
Theodore Ts'o5bc28df2001-11-09 17:34:54 -050026 * mkjournal.c (ext2fs_add_journal_inode): When creating a .journal
27 file on adding a journal to an already-mounted filesystem,
28 try to clear the ext2 file attributes on an already
29 existing .journal file so that we don't fail if on a
30 partially added journal to the filesystem.
31
Theodore Ts'ob3f5b4c2001-11-05 19:22:02 -050032 * ext2_fs.h: Define a new ext2 file attribute, EXT2_NOTAIL_FL,
33 which signals that a particular inode should not have the
34 last bits of data (the "tail") be merged with another
35 file. This is necessary to keep LILO happy.
36
Theodore Ts'ofbf91112001-09-20 10:47:47 -0400372001-09-20 Theodore Tso <tytso@thunk.org>
38
39 * Release of E2fsprogs 1.25
40
Theodore Ts'o7746cad2001-09-17 00:02:21 -0400412001-09-16 Theodore Tso <tytso@valinux.com>
42
43 * ext2_ext_attr.h: Remove unneeded #include of <linux/config.h>
44 which was breaking the build on the Hurd. (Addresses
45 Debian bug #112414).
46
Theodore Ts'o2038b632001-09-14 07:44:25 -0400472001-09-13 Theodore Ts'o <tytso@valinux.com>
48
49 * ismounted.c (check_mntent_file): We now validate the entry in
50 /etc/mtab to make sure the filesystem is really mounted,
51 since some broken distributions (read: Slackware) have
52 buggy boot scripts that don't initialize /etc/mtab before
53 checking non-root filesystems. (Slackware also doesn't
54 check the root filesystem separately, and reboot if the
55 root filesystem had changes applied to it, which is
56 dangerous and broken.)
57
Theodore Ts'ofb707752001-09-04 15:00:37 -0400582001-09-02 Theodore Tso <tytso@thunk.org>
59
60 * Release of E2fsprogs 1.24a
61
Theodore Ts'o109624a2001-08-31 00:59:55 -0400622001-08-30 Theodore Tso <tytso@thunk.org>
63
64 * Release of E2fsprogs 1.24
65
Theodore Ts'oeddeb562001-08-30 17:24:02 -0400662001-08-30 Theodore Tso <tytso@valinux.com>
67
68 * getsize.c (ext2fs_get_device_size): Back out BLKGETSIZE64
69 changes, since the ioctl number has been reused by another
70 unofficial patch.
71
Theodore Ts'o943ed872001-08-27 12:29:22 -0400722001-08-15 Theodore Tso <tytso@valinux.com>
73
74 * Release of E2fsprogs 1.23
75
Theodore Ts'o89a6ebd2001-08-05 20:31:09 -0400762001-08-05 Theodore Tso <tytso@valinux.com>
77
78 * alloc.c (ext2fs_new_inode, ext2fs_new_block): Use the fast
79 version of the bitmap test routines to speed up these
80 routines. (At some point I may want to make these
81 routines use the find_first_bit functions, but that will
82 add a lot of complexity since it means that these
83 functions will have to break the bitmap abstraction
84 boundary. It's not clear it's worth it.)
85
86 * mkjournal.c (mkjournal_proc): Remember the last block allocated
87 to speed up ext2fs_new_block().
88
Theodore Ts'o37517212001-07-29 12:01:09 -0400892001-07-29 Theodore Tso <tytso@valinux.com>
90
91 * finddev.c (scan_dir): Fix memory leak; we weren't calling
92 closedir() when exiting the function in all cases.
93
Theodore Ts'of35e6442001-07-27 15:35:21 -0400942001-07-27 Theodore Tso <tytso@valinux.com>
95
Theodore Ts'o4e40f6c2001-07-27 23:33:40 -040096 * mkjournal.c (ext2fs_create_journal_superblock): Set the first
97 block usable in the journal for external journals to be 2
98 or 3, depending on the blocksize, so that the existing
99 kernel code does the right thing.
100
Theodore Ts'o343fa652001-07-27 22:15:06 -0400101 * getsize.c (ext2fs_get_device_size): Add support for the
102 BLKGETSIZE64 ioctl. (Ioctl defined by unofficial patches
103 from Ben LaHaise, but it's likely this interface won't
104 change.)
105
Theodore Ts'of35e6442001-07-27 15:35:21 -0400106 * mkjournal.c (ext2fs_add_journal_device): Use the correct block
107 when writing the journal superblock, too. (Oops! Needed
108 to make 1k filesystems with external journal to work.)
109
Theodore Ts'o36131b32001-07-26 23:44:39 -04001102001-07-26 Theodore Tso <tytso@valinux.com>
111
112 * mkjournal.c (ext2fs_add_journal_device): Use the correct block
113 to find the journal superblock if the blocksize is 1024.
114
Theodore Ts'oadee8d72001-07-23 00:17:49 -04001152001-07-21 Theodore Tso <tytso@valinux.com>
116
117 * ext2_err.et.in (EXT2_ET_LOAD_EXT_JOURNAL): Add new error code
118
Theodore Ts'o6ae296e2001-07-20 12:33:37 -04001192001-07-20 Theodore Tso <tytso@valinux.com>
120
Theodore Ts'o241f7d22001-07-20 14:17:19 -0400121 * ext_attr.c (ext2fs_write_ext_attr): When writing the extended
122 attribute block, set the filesystem changed bit.
123
Theodore Ts'o6ae296e2001-07-20 12:33:37 -0400124 * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set):
125 Comment out these functions since we're not using them.
126
Theodore Ts'o3c6b8972001-07-10 14:27:58 -04001272001-07-10 Theodore Tso <tytso@valinux.com>
128
129 * closefs.c (write_primary_superblock): After writing changes to
130 the primary superblock, update the original superblock
131 copy so we don't have to re-write those changes in the
132 future.
133 (ext2fs_flush): Clear the superblock dirty flag after
134 we've flushed out changes to disk.
135
Theodore Ts'of41e7e62001-07-07 22:14:23 -04001362001-07-07 Theodore Tso <tytso@valinux.com>
137
138 * bitops.h (ext2fs_find_first_bit_set): Use %esi instead of %ebx
139 to avoid register conflicts when compiling in PIC mode.
140
Theodore Ts'oac493822001-07-04 14:04:58 -04001412001-07-04 Theodore Tso <tytso@valinux.com>
142
143 * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set):
144 Add new functions (C and in i386 assembler) which quickly
145 find bits set in a bitmask.
146
Theodore Ts'o67960132001-06-23 00:16:37 -04001472001-06-23 Theodore Tso <tytso@valinux.com>
148
Theodore Ts'o342d8472001-07-02 11:54:09 -0400149 * Makefile.in, ext_attr.c, ext2_attr.c, ext2fs.h: Add new files
150 ext2_ext_attr.h and ext_attr.c for extended attributes
151 support.
152
Theodore Ts'o67960132001-06-23 00:16:37 -0400153 * Release of E2fsprogs 1.22
154
Theodore Ts'o89a1fa82001-06-22 20:40:51 -04001552001-06-22 Theodore Tso <tytso@valinux.com>
156
Theodore Ts'ob23520d2001-06-22 21:52:14 -0400157 * mkjournal.c (ext2fs_add_journal_inode): Move close of file
158 descriptor so that adding a journal to a mounted
159 filesystem doesn't die. (Fixes a bug accidentally
160 introduced in e2fsprogs 1.21.)
161
Theodore Ts'o78332622001-06-22 21:20:47 -0400162 * mkjournal.c (ext2fs_add_journal_inode): Only use fchflags if
163 HAVE_CHFLAGS and UF_NODUMP are defined, since the Hurd has
164 fchflags without defining UF_NODUMP. (Addresses Debian
165 bug #101361)
166
Theodore Ts'od90f3492001-06-22 21:01:17 -0400167 * flushb.c: Use platform independent method of defining the
168 BLKFLSBUF and FDFLUSH ioctl's. Also include sys/mount.h
169 since on newer glibc's BLKFLSBUF is defined there.
170
Theodore Ts'o16645f82001-06-22 20:54:11 -0400171 * bitops.h: The C language versions of ext2fs_swab16/32 need to be
172 included if EXT2FS_ENABLE_SWAPFS is defined, since we need
173 to support byte swapping even if we don't support the
174 conversion functions. (Fixes Debian bug #101686).
175
Theodore Ts'o89a1fa82001-06-22 20:40:51 -0400176 * dirblock.c (ext2fs_read_dir_block): Remove use of dir_entry_2
177 since the byte-swapping code all assumes the
178 ext2_dir_entry structure. (It's a question of whether or
179 not name_len should be byte-swapped or not, and whether
180 it's a 16 bit or 8 bit field.)
181
Theodore Ts'o997b8202001-06-15 18:33:43 +00001822001-06-15 Theodore Tso <tytso@valinux.com>
183
Theodore Ts'of4f75ba2001-06-16 01:14:28 +0000184 * Release of E2fsprogs 1.21
185
1862001-06-15 Theodore Tso <tytso@valinux.com>
187
Theodore Ts'od1e66b72001-06-15 22:44:32 +0000188 * Makefile.in: Fix bug in installation of ext2_types.h. It is a
189 file which is generated and is therefore found in the
190 build directory, not source directory.
191
Theodore Ts'o997b8202001-06-15 18:33:43 +0000192 * ismounted.c (check_mntent_file): Use a test file in / to check
193 to see if the root filesystem is mounted read-only. This
194 protects against the case where /etc might not be on /, as
195 well as the case where /etc/mtab doesn't exist. (Both are
196 should-never happen scenarios, but you never know...)
197
Theodore Ts'o6bd13482001-06-14 07:00:55 +00001982001-06-14 Theodore Tso <tytso@valinux.com>
199
200 * ismounted.c (ext2fs_check_if_mounted): Fix grammer in comment.
201 Remove unneeded #pragma argsused, since the arguments are
202 always used.
203
Theodore Ts'o30ae14c2001-06-13 22:38:56 +00002042001-06-13 Theodore Tso <tytso@valinux.com>
205
Theodore Ts'o65794882001-06-14 00:24:42 +0000206 * ext2_types.h.in: If linux/types.h has been defined, then don't
207 try to redefine the typedefs.
208
Theodore Ts'o364a3732001-06-13 23:46:39 +0000209 * Makefile.in (HFILES): Add ext2_types.h to the list of files
210 which should be installed.
211
Theodore Ts'o66a46142001-06-13 23:26:19 +0000212 * ismounted.c (check_mntent_file): Work around GNU hurd brain
Theodore Ts'o83d5abf2001-06-13 23:31:27 +0000213 damage. Addresses Debian bug #100304.
Theodore Ts'o66a46142001-06-13 23:26:19 +0000214
Theodore Ts'o30ae14c2001-06-13 22:38:56 +0000215 * Makefile.in: Limit some .o files from being included into the
216 library if --disable-debugfs, --disable-swapfs,
217 --disable-imager, or --disable-resizer are used.
218
Theodore Ts'ocbbf0312001-06-13 00:12:04 +00002192001-06-12 Theodore Tso <tytso@valinux.com>
220
221 * inode.c, tst_iscan.c: Stop using the compatibility badblocks
222 function, and use the ext2fs_badblocks_* functions
223 instead.
224
Theodore Ts'o5df55d72001-06-11 07:00:04 +00002252001-06-11 Theodore Tso <tytso@valinux.com>
226
Theodore Ts'o3034f622001-06-11 15:17:45 +0000227 * Makefile.in, gen_bitmap.c, bitops.h: Move inline functions
228 ext2fs_mark_generic_bitmap and
229 ext2fs_unmark_generic_bitmap to gen_bitmap.c as normal
230 functions. (This saves space and doesn't significantly
231 change the speed of e2fsck on a P-III.)
232
Theodore Ts'o5df55d72001-06-11 07:00:04 +0000233 * ext2fs.h, bitops.h, block.c, bmap.c, closefs.c, dirblock.c,
234 inode.c, native.c, openfs.c, rw_bitmaps.c, swapfs.c: Only
235 include the byte-swapping logic if ENABLE_SWAPFS is turned
236 on or if we're on a big-endian machine.
237
238 * initialize.c (ext2fs_initialize):Use WORDS_BIGENDIAN directly to
239 set EXT2_FLAG_SWAP_BYTES, instead of using
240 ext2fs_native_flag.
241
242 * native.c (ext2fs_native_flag): Use WORDS_BIGENDIAN provided by
243 autoconf to determine whether or not return
244 EXT2_FLAG_SWAP_BYTES.
245
Theodore Ts'o349a4842001-06-11 00:49:29 +00002462001-06-10 Theodore Tso <tytso@valinux.com>
247
248 * Makefile.in: Remove the dependence on the libe2p library.
249
250 * mkjournal.c (ext2fs_add_journal_inode): Replace use of fsetflags
251 with direct usage of the ioctl/fchflags so that we don't
252 have to depend on the libe2p library.
253
Theodore Ts'o30e50b72001-06-08 09:43:40 +00002542001-06-08 Theodore Tso <tytso@valinux.com>
255
256 * ext2_types.h.in: Use unsigned ints in favor of unsigned longs
257 when trying to find a 32-bit wide type.
258
259 * icount.c (insert_icount_el): Fix the code used to estimate the
260 size of the new icount array to be more intelligent, to
261 avoid reallocating the array too many times. Thanks to
262 Enrique Perez-Terron for pointing this out.
263
Theodore Ts'of36d14f2001-06-02 04:13:16 +00002642001-06-02 Theodore Tso <tytso@valinux.com>
265
266 * valid_blk.c (ext2fs_inode_has_valid_blocks): Only check i_blocks
267 for a symlink to determine whether it is a fast symlink.
268
Theodore Ts'o797f5ef2001-06-01 23:49:46 +00002692001-06-01 Theodore Tso <tytso@valinux.com>
270
271 * Makefile.in, dosio.c, ext2_fs.h, ext2_types.h.in, ext2fs.h:
Theodore Ts'o36a23e12001-06-02 00:54:10 +0000272 Move include/asm/types.h.in to lib/ext2fs/ext2_types.h.in.
Theodore Ts'o797f5ef2001-06-01 23:49:46 +0000273
Theodore Ts'od5f858d2001-05-25 17:14:23 +00002742001-05-25 Theodore Tso <tytso@valinux.com>
275
Theodore Ts'obb185862001-05-25 17:35:00 +0000276 * Release of E2fsprogs 1.20
277
2782001-05-25 Theodore Tso <tytso@valinux.com>
279
Theodore Ts'od5f858d2001-05-25 17:14:23 +0000280 * ismounted.c: More cleanups for ismounted.c, some from Andreas,
281 some to clean up Andreas's patches. Use strncpy instead
282 of strcpy to save the root's mountpoint. Clean up #ifdef
283 structure. Remove uneeded variable in testing/debug driver.
284
Theodore Ts'occ860172001-05-25 16:32:53 +00002852001-05-24 Andreas Dilger <adilger@turbolinux.com>
286
287 * ismounted.c: Add check for root device which doesn't depend on
288 /etc/fstab or /proc/mounts to be correct. Don't call
289 endmntent() before we are done with mnt struct.
290
Theodore Ts'o4ed8ebe2001-05-23 18:30:10 +00002912001-05-23 Theodore Tso <tytso@valinux.com>
292
293 * ext2_err.et.in (EXT2_ET_JOURNAL_UNSUPP_VERSION): Added new error
294 code.
295
Theodore Ts'ob10820c2001-05-21 05:23:31 +00002962001-05-21 Theodore Tso <tytso@valinux.com>
297
298 * ext2_fs.h: Change assignment of EXT2_FEATURE_COMPAT_DIR_INDEX to
299 make room for pre-existing usage of
300 EXT2_FEATURE_COMPAT_EXT_ATTR. Add flag EXT2_INDEX_FL with
301 the same codepoint as EXT2_BTREE_FL.
302
Theodore Ts'o7c2d2562001-05-21 02:54:21 +00003032001-05-20 Theodore Tso <tytso@valinux.com>
304
305 * ext2fs.h: #include <> instead of "" for ext2fs and et header
306 files, since they will be installed in /usr/include
307
Theodore Ts'o7a34cb02001-05-14 04:28:35 +00003082001-05-14 Theodore Tso <tytso@valinux.com>
309
Theodore Ts'o9f8046f2001-05-14 11:35:52 +0000310 * alloc.c, alloc_tables.c, badblocks.c, bb_compat.c, bb_inode.c,
311 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
312 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
313 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
314 expanddir.c, ext2_fs.h, fileio.c, finddev.c, flushb.c,
315 freefs.c, get_pathname.c, getsize.c, icount.c, imager.c,
316 initialize.c, inline.c, inode.c, irel_ma.c, ismounted.c,
317 link.c, lookup.c, mkdir.c, mkjournal.c, namei.c, native.c,
318 newdir.c, nt_io.c, openfs.c, read_bb.c, read_bb_file.c,
319 rs_bitmap.c, rw_bitmaps.c, swapfs.c, test_io.c,
320 tst_badblocks.c, tst_byteswap.c, tst_getsize.c,
321 tst_iscan.c, unix_io.c, unlink.c, valid_blk.c, version.c,
322 write_bb_file.c, ext2_fs.h: Moved file from include/linux.
323 Adjust all files in this directroy to include this file.
324
Theodore Ts'o7a34cb02001-05-14 04:28:35 +0000325 * mkjournal.c (ext2fs_create_journal_superblock): Remove redundant
326 code.
327
Theodore Ts'o0f679452001-05-05 16:42:24 +00003282001-05-05 Theodore Tso <tytso@valinux.com>
329
330 * fileio.c (ext2fs_file_read): Factored out common code and
331 cleaned up function. Fixed a bug where if there was an
332 error reading from the disk, the number of bytes read
333 wasn't reliably set. (Fixes Debian bug #79163)
334 (ext2fs_file_write): Factored out common code and made
335 function more efficient; if writing a full block, don't
336 bother to do a read-modify-write cycle.
337
Theodore Ts'o1cca4d62001-05-05 05:12:14 +00003382001-05-04 Theodore Tso <tytso@valinux.com>
339
340 * dirblock.c (ext2fs_read_dir_block): Check for an directory
341 record length which isn't a multiple four, and treat that
342 as an invalid. Scan the directory and return an error
343 (EXT2_ET_DIR_CORRUPTED) if the directory records are
344 corrupted.
345 (ext2fs_write_dir_block): If while byte-swapping the
346 directory block, if there's an error, abort and return
347 EXT2_ET_DIR_CORRUPTED.
348
Theodore Ts'oa78926e2001-05-03 04:02:29 +00003492001-05-02 Theodore Tso <tytso@valinux.com>
350
351 * ext2fs.h (EXT2_FLAG_IMAGE_FILE): Add new flag, and add
352 image_header field in the ext2_filsys structure
353
354 * block.c (block_iterate_ind, block_iterate_dind, block_iterate_tind):
355 * inode.c (ext2fs_read_inode):
356 * rw_bitmaps.c (read_bitmaps):
357 * openfs.c (ext2fs_open): Add support for EXT2_FLAG_IMAGE_FILE
358
359 * imager.c (ext2fs_image_bitmap_read): Fix bug in imager to make
360 sure the full bitmap is saved.
361
Theodore Ts'of955cc12001-05-01 19:04:28 +00003622001-05-01 Theodore Tso <tytso@valinux.com>
363
Theodore Ts'oa78926e2001-05-03 04:02:29 +0000364 * e2image.h (struct ext2_image_hdr): Add space for the device name
365 in the image header.
366
Theodore Ts'of955cc12001-05-01 19:04:28 +0000367 * dir_iterate.c (ext2fs_process_dir_block): Add a double-check to
368 make sure the rec_len is a multiple of 4, to prevent
369 bus-errors on architectures which care about mis-aligned
370 pointer references.
371
Theodore Ts'o954a6832001-04-26 01:42:37 +00003722001-04-25 Theodore Tso <tytso@valinux.com>
373
374 * getsize.c (ext2fs_get_device_size): Use an unsigned long to
375 query the device sizes using the BLKGETSIZE ioctl.
376
Theodore Ts'o03603942001-04-17 00:53:25 +00003772001-04-16 Theodore Tso <tytso@valinux.com>
378
Theodore Ts'o52db0b42001-04-17 02:22:05 +0000379 * ismounted.c (check_mntent): Check /proc/mounts on Linux systems
380 before checking /etc/mtab. The EXT2_MF_READONLY flag is
381 now set from the /etc/mtab options field for all
382 filesystems, not just the root filesystem. Add debugging
383 code to make it easier to test ext2fs_check_if_mounted().
384
Theodore Ts'o03603942001-04-17 00:53:25 +0000385 * mkjournal.c (ext2fs_create_journal_superblock): Add safety
386 check; return an error if there's an attempt to create a
387 journal less than 1024 filesystem blocks.
388
389 * ext2_err.et.in, mkjournal.c: Change EXT2_JOURNAL_NOT_BLOCK and
390 EXT2_NO_JOURNAL_SB to be EXT2_ET_*.
391
Theodore Ts'o9ec53cf2001-02-20 16:28:40 +00003922001-02-20 Theodore Tso <tytso@valinux.com>
393
394 * bitops.h (ext2fs_swab16, ext2fs_swab32): Add i386 assembly
395 inline functions.
396
397 * tst_byteswap.c: New function to test the byteswap functions.
398 Add to regression test suite.
399
Theodore Ts'oc5423c52001-02-08 05:45:17 +00004002001-02-08 Theodore Tso <tytso@valinux.com>
401
402 * e2image.h (struct ext2_image_hdr): Fix type for fs_hostname
403
Theodore Ts'od23042a2001-02-08 03:37:16 +00004042001-02-07 Theodore Tso <tytso@valinux.com>
405
406 * mkjournal.c (ext2fs_create_journal_superblock): Fix the setting
407 of s_first for external devices to always be 1, since
408 jsb->s_first is always relative to the start of the
409 journal superblock. Use htonl(1) when setting s_nr_users.
410
Theodore Ts'o02088862001-01-18 01:44:19 +00004112001-01-17 Theodore Ts'o <tytso@valinux.com>
412
413 * mkjournal.c (ext2fs_add_journal_device): Fix bug where the
414 device number of the filesystem (instead of the journal)
415 was being dropped into s_journal_dev.
416
Theodore Ts'oa1128472001-01-16 06:56:14 +00004172001-01-15 Theodore Ts'o <tytso@valinux.com>
418
419 * initialize.c (ext2fs_initialize): Add support for initializing
420 the ext2 superblock for external journal devices. This
421 basically means we don't bother to allocate any block
422 group descriptors.
423
424 * openfs.c (ext2fs_open): Only open external journal devices if
425 the new flag EXT2_FLAG_JOURNAL_DEV_OK is passed to
426 ext2fs_open. When opening such devices, don't try to read
427 the block group descriptors, since they're not there.
428
429 * ext2_err.et.in (EXT2_NO_JOURNAL_SB): Add new error code
430
431 * mkjournal.c: Export a new function,
432 ext2fs_create_journal_superblock(), which allocates and
433 returns a buffer containing a journal superblock. This is
434 needed by mke2fs to create an external journal. Rewrote
435 ext2fs_add_journal_device() so that it no longer creates
436 the external journal, but rather adds a filesystem to an
437 existing external journal. It handles all of the UUID
438 manipulation.
439
440 * ext2fs.h: List the EXT3_FEATURE_JOURNAL_DEV as a flag supported
441 by the library. Define the EXT2_FLAG_JOURNAL_DEV_OK.
442 Changed function prototype for ext2fs_add_journal_device().
443
Theodore Ts'o80779942001-01-14 18:03:43 +00004442001-01-14 Theodore Ts'o <tytso@valinux.com>
445
446 * closefs.c (ext2fs_flush): Don't write out anything beyond the
447 primary superblock if EXT2_INCOMPAT_JOURNAL_DEV is
448 listed.
449
Theodore Ts'ob94bd812001-01-12 17:26:05 +00004502001-01-12 Theodore Ts'o <tytso@valinux.com>
451
452 * imager.c: Fix gcc -Wall complaints and a series of bugs where
453 retval wasn't set correctly. (Thanks to Andreas Dilger
454 for pointing this out.)
455
Theodore Ts'o4d0f3e12001-01-11 15:48:50 +00004562001-01-11 <tytso@snap.thunk.org>
457
458 * flushb.c (ext2fs_sync_device): New function which centralizes
459 all of the places which might try to use the BLKFLSBUF
460 or FDFLUSH ioctls (and usually failing to define them
461 since the system header files don't usually do this for
462 us, and we're trying to avoid usage of kernel include
463 files now).
464
Theodore Ts'o31dbecd2001-01-11 04:54:39 +00004652001-01-10 <tytso@snap.thunk.org>
466
467 * alloc.c, bb_inode.c, bitmaps.c, bitops.h, block.c, bmap.c,
468 bmove.c, brel.h, cmp_bitmaps.c, dblist.c, dblist_dir.c,
469 dir_iterate.c, expanddir.c, ext2fs.h, ext2fsP.h, fileio.c,
470 finddev.c, get_pathname.c, icount.c, inode.c, irel.h,
471 irel_ma.c, ismounted.c, link.c, lookup.c, mkdir.c,
472 mkjournal.c, namei.c, newdir.c, read_bb_file.c, test_io.c,
473 tst_iscan.c, unix_io.c, unlink.c: Change use of ino_t to
474 ext2_ino_t, to protect applications that attempt to
475 compile -D_FILE_OFFSET_BITS=64, since this inexplicably
476 changes ino_t(!?). So we use ext2_ino_t to avoid an
477 unexpected ABI change.
478
Theodore Ts'ocdaf1fa2001-01-05 22:23:22 +00004792001-01-05 <tytso@snap.thunk.org>
480
Theodore Ts'oe446d712001-01-05 22:27:06 +0000481 * dirblock.c (ext2fs_read_dir_block): Fix a potential case where
482 we may overrun allocated memory in case of a corrupted
483 filesystem (or an e2fsck test case :-) when byte-swapping
484 the directory block.
485
Theodore Ts'ocdaf1fa2001-01-05 22:23:22 +0000486 * ext2fs.h: Indent the #warning to fix gcc -Wall complaint.
487
488 * mkjournal.c (ext2fs_add_journal_device): Fix various gcc -Wall
489 complaints including a missing return 0 at the end of
490 ext2fs_add_journal_device.
491
Theodore Ts'o43ec8732001-01-03 14:56:46 +00004922001-01-03 <tytso@snap.thunk.org>
493
Theodore Ts'o4becab62001-01-03 19:22:42 +0000494 * Makefile.in: Link in libe2p when creating libext2fs as a shared
495 library, since mkjournal.c now references fsetflags().
496
497 * mkjournal.c (ext2fs_add_journal_inode): Folded in Andreas
498 Dilger's changes (with fixups) to allow on-line creation
499 of a journal file.
500
Theodore Ts'o43ec8732001-01-03 14:56:46 +0000501 * ext2fs.h, closefs.c (ext2fs_flush): Add new flag,
502 EXT2_FLAG_SUPER_ONLY, which the close routines to only
503 update the superblock, and not the group descriptors.
504
5052000-12-30 Andreas Dilger <adilger@turbolinux.com>
506
507 * ismounted.c: add ext2fs_check_mount_point() function, which will
508 optionally return the mount point of a device if mounted
509
Theodore Ts'o31a17b32001-01-03 13:04:12 +00005102000-12-14 Andreas Dilger <adilger@turbolinux.com>
511
512 * mkjournal.c: rename ext2fs_add_journal_fs() to the more descriptive
513 ext2fs_add_journal_inode()
514
Theodore Ts'oe5b38a52001-01-01 16:17:12 +00005152001-01-01 <tytso@snap.thunk.org>
516
517 * ext2fs.h: Remove definition of ext2fs_sb. Note: this may break
518 source (but not binary) compatibility of some users of the
519 ext2 library. They should just simply do a global search
520 and replace of struct ext2fs_sb with struct
521 ext2_super_block, and use their own private copy of
522 ext2_fs.h if they aren't already.
523
524 * closefs.c, initialize.c, link.c, newdir.c, openfs.c, swapfs.c:
525 Replace use of ext2fs_sb with ext2_super_block.
526
Theodore Ts'o2fe1efe2000-12-31 13:39:17 +00005272000-12-31 <tytso@snap.thunk.org>
528
529 * ext2fs.h: Cleaned up header file by removing definitions of
530 feature flags that might not have been defined in older
531 ext2 header files. Now that we're using our own
532 include/linux/ext2fs.h header file, this can never happen.
533
534 * jfs_dat.h: Removed old header file which is no longer needed.
535
Theodore Ts'o7dcfa6e2000-12-13 17:50:14 +00005362000-12-13 Theodore Ts'o <tytso@valinux.com>
537
Theodore Ts'oa917d1c2000-12-13 18:36:23 +0000538 * closefs.c (ext2fs_update_dynamic_rev): New function suggested
Theodore Ts'o3fe973b2000-12-13 17:55:49 +0000539 by Andreas Dilger to update the filesystem revision to
540 EXT2_DYNAMIC_REV.
541
Theodore Ts'o7dcfa6e2000-12-13 17:50:14 +0000542 * swapfs.c (ext2fs_swap_super): Add byte swapping for the journal
543 fields.
544
Theodore Ts'o58618732000-12-09 05:47:45 +00005452000-12-09 <tytso@snap.thunk.org>
546
Theodore Ts'o31a17b32001-01-03 13:04:12 +0000547 * ext2fs.h, mkjournal.c (ext2fs_add_journal_inode,
Theodore Ts'o4e246702000-12-09 14:39:16 +0000548 ext2fs_add_journal_device): Add a new argument to the APIs
549 of these function, which is a flags word. This is used to
550 allow the creation of a V1 superblock for those folks who
551 are using ext3 0.3b in production. Note, the user-land
552 interface for getting at this flag won't be documented, as
553 the V1 superblock is deprecated.
554
Theodore Ts'o58618732000-12-09 05:47:45 +0000555 * mkjournal.c (init_journal_superblock): Sync Stephen's changes
556 which creates a V2 superblock instead of a V1 superblock.
557
Theodore Ts'of20d0d52000-12-05 03:53:41 +00005582000-11-21 <tytso@snap.thunk.org>
559
560 * test_io.c (test_write_blk, test_write_byte): Fix typos pointed
561 out by Andreas Dilger.
562
Theodore Ts'o72ed1262000-11-12 19:32:20 +00005632000-11-05 <tytso@snap.thunk.org>
564
565 * imager.c (ext2fs_image_{inode,super,bitmap}_{read,write},
566 ext2_fs.h, Makefile.in: New file that has routines that
567 save ext2fs metadata to a file.
568
569 * ext2_err.et.in (EXT2_ET_MAGIC_E2IMAGE): New error code assigned.
570
571 * e2image.h: New file which defines the file format for the ext2
572 image file. (Saved copy of ext2 metadata to a file as a
573 saving throw against worst-case damage.)
574
Theodore Ts'o6a7f4552000-11-12 19:07:06 +00005752000-11-01 <tytso@snap.thunk.org>
576
577 * inode.c (ext2fs_flush_icache): Add new function
578 ext2fs_flush_icache() which flushes the internal inode
579 cache. Applications which modify the inode table blocks
580 directly must call this function.
581
Theodore Ts'oc180ac82000-10-26 20:24:43 +00005822000-10-26 <tytso@snap.thunk.org>
583
Theodore Ts'o17ee8b12000-10-26 20:45:58 +0000584 * mkjournal.c: Add #include of netinet/in.h, since Solaris
585 requires it for ntohl().
586
Theodore Ts'oc180ac82000-10-26 20:24:43 +0000587 * ext2_io.h (io_channel_write_byte): Add new interface to allow
588 callers to write specific byte ranges. This is an
589 optional interface, which not all IO channels may
590 implement.
591
592 * unix_io.c (unix_write_byte):
593 * test_io.c (test_write_byte): Add implementation of the
594 write_byte function.
595
596 * closefs.c (write_primary_superblock, ext2fs_flush): Add a new
597 function which writes the primary superblock. If the IO
598 channel supports writing raw bytes directly, only fields
599 which were modified are written to the disk. This makes
600 it safe(r) to use utilities like tune2fs on a mounted
601 filesystem.
602
603 * freefs.c (ext2fs_free): Free the original superblock if it is
604 available.
605
606 * openfs.c (ext2fs_open): Store a copy of the original superblock
607 when opening it.
608
609 * ext2fs.h: Add a field to store the original superblock in the
610 ext2 context structure.
611
Theodore Ts'o43819662000-10-25 02:06:09 +00006122000-10-24 <tytso@snap.thunk.org>
613
614 * llseek.c: Add #ifdef's for IA64 (it's a 64-bit platform, so we
615 don't need to use llseek).
616
Theodore Ts'od3cd93c2000-10-24 18:33:16 +00006172000-10-24 <tytso@valinux.com>
618
619 * Makefile.in, ext2fs.h, jfs_dat.h, mkjournal.c: Add functions for
620 creating an ext3 journal on a filesystem.
621
6222000-08-21 <tytso@valinux.com>
623
624 * ext2_err.et.in (EXT2_JOURNAL_NOT_BLOCK): Add new error code.
625
Theodore Ts'oadfc8c62000-10-18 19:22:24 +00006262000-08-22 <tytso@valinux.com>
627
628 * unix_io.c: Make massive changes to support a multiple block
629 writethrough cacheing.
630
631 * ext2_io.h: Added flags field to the io_channel structure.
632
Theodore Ts'ode23aa12000-08-19 17:00:47 +00006332000-08-19 <tytso@valinux.com>
634
635 * finddev.c, ext2fs.h, Makefile.in: Add new file, finddev.c, which
636 provides the function ext2fs_find_block_device(). This
637 function returns the pathname to a block device, given its
638 device number.
639
Theodore Ts'of9e67062000-07-13 23:25:54 +00006402000-07-13 <tytso@valinux.com>
641
642 * Release of E2fsprogs 1.19
643
Theodore Ts'oab146762000-07-07 04:37:35 +00006442000-07-07 Theodore Ts'o <tytso@valinux.com>
645
646 * ext2fs.h (EXT2_LIB_FEATURE_INCOMPAT_SUPP): Add
647 EXT3_FEATURE_INCOMPAT_RECOVER (aka needs_recovery) to the
648 list of filesystem flags supported by the library.
649
Theodore Ts'o57dca852000-07-04 19:20:25 +00006502000-07-04 Theodore Ts'o <tytso@valinux.com>
651
Theodore Ts'o8f13d8c2000-07-04 19:41:29 +0000652 * ext2fs.h: Update to include latest journalling additions to the
653 superblock.
654
Theodore Ts'o57dca852000-07-04 19:20:25 +0000655 * dll/jump.funcs: Add new jumptable entries for
656 ext2fs_write_bb_FILE, ext2fs_read_bb_FILE2, and
657 ext2fs_badblocks_equal.
658
659 * tst_badblocks.c: Update test program to test
660 ext2fs_read_bb_FILE2 and ext2fs_write_FILE.
661
662 * write_bb_file.c (ext2fs_write_bb_FILE): New function which
663 writes out bad blocks list to a file.
664
665 * read_bb_file.c (ext2fs_read_bb_FILE2): Add new function which
666 changes the callback function to take two additional
667 arguments; a private blind pointer supplied by the caller,
668 and pointer to a char * containing a pointer to the
669 invalid string.
670
671 * badblocks.c (ext2fs_badblocks_equal): Add new function which
672 returns true if two badblocks list are equal.
673
674 * Makefile.in: Remove explicit link of -lc in the shared library.
675 (It shouldn't be necessary, and is harmful in some cases).
676
Theodore Ts'oabf7d382000-06-10 19:27:17 +00006772000-06-10 Theodore Ts'o <tytso@valinux.com>
678
679 * getsize.c (main): Add debugging code under #ifdef DEBUG
680
Theodore Ts'o2e8d40d2000-05-27 15:15:40 +00006812000-05-27 Theodore Ts'o <tytso@valinux.com>
682
683 * mkdir.c (ext2fs_mkdir): Read the parent directory's inode
684 earlier, so that if there's an error reading it, we can
685 more cleanly back out of the operation.
686
Theodore Ts'of0f4acb2000-05-25 23:22:11 +00006872000-05-25 <tytso@snap.thunk.org>
688
Theodore Ts'odc5f68c2000-05-25 23:31:54 +0000689 * getsize.c (ext2fs_get_device_size): Use open64() instead of
Theodore Ts'o7fd86d32000-05-25 23:42:22 +0000690 open() if it exists. Under linux, manually define the
691 ioctl for BLKGETSIZE if it isn't already defined and it's
692 safe to do so.
Theodore Ts'odc5f68c2000-05-25 23:31:54 +0000693
694 * unix_io.c (unix_open): Use open64() instead of open() if it
695 exists.
696
697 * llseek.c: Simplify header includes of unistd.h. If lseek64 is
698 available (and prototypes are defined) use it in
699 preference to llseek.
700
Theodore Ts'of0f4acb2000-05-25 23:22:11 +0000701 * Makefile: Add hack dependency rule so that parallel makes work
702 correctly.
703
Theodore Ts'ofa7ef712000-05-19 02:11:41 +00007042000-05-18 Theodore Ts'o <tytso@valinux.com>
705
706 * ext2fs.h: Add appropriate ifdef's to support C++ compilation.
707
Theodore Ts'oe589f672000-04-03 13:45:40 +00007082000-04-03 Theodore Ts'o <tytso@valinux.com>
709
Theodore Ts'o06af47f2000-04-03 13:51:00 +0000710 * block.c: Readibility tweak in conditionals involving
711 ctx->fs->flags.
712
Theodore Ts'oe589f672000-04-03 13:45:40 +0000713 * ext2fs.h: Use AUTOCONF SIZEOF_* macros if available to determine
714 how to define __s64 and __u64. Turn off "compression is
715 experimental" warning if the cpp macro
716 I_KNOW_THAT_COMPRESSION_IS_EXPERIMENTAL is defined.
717
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +00007182000-02-11 <tytso@snap.thunk.org>
719
Theodore Ts'o5a63dd22000-02-11 15:44:08 +0000720 * ext2fs.h: Define EXT2FS_COMPRESSED_BLKADDR and HOLE_BLKADDR.
721 Conditionally include Compression as a supported type if
722 ENABLE_COMPRESSION (via --enable-compression) is turned on.
723
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +0000724 * swapfs.c (ext2fs_swap_super): Swap the compression usage bitmap.
725
Theodore Ts'o28ffafb2000-02-08 19:14:02 +00007262000-02-08 <tytso@snap.thunk.org>
727
728 * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap,
729 ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
730 ext2fs_mark_inode_bitmap, ext2fs_unmark_inode_bitmap):
731 Change to return the previous state of the bit that is
732 being marked or unmarked. For speed optimization.
733
Theodore Ts'o80e808f2000-02-02 16:19:59 +00007342000-02-02 Theodore Ts'o <tytso@valinux.com>
735
736 * getsize.c, ismounted.c: Remove unneeded include of linux/fs.h
737
738 * swapfs.c: Remove #ifdef HAVE_EXT2_INODE_VERSION since it's not
739 needed any more; we know it will always be i_generation.
740 Add support for swapping the high bits of the uid and gid.
741
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +00007421999-11-19 <tytso@valinux.com>
743
Theodore Ts'odab278a1999-11-19 18:49:27 +0000744 * mkdir.c (ext2fs_mkdir): Only update the parent's inode link
745 counts if the link was successful. Patch suggested by
746 jeremy@goop.org.
747
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +0000748 * Makefile.in (distclean): Remove TAGS and Makefile.in.old from
749 the source directory.
750
Theodore Ts'ocd086361999-11-10 16:00:39 +00007511999-11-10 <tytso@valinux.com>
752
753 * Release of E2fsprogs 1.18
754
Theodore Ts'o9b9fe8a1999-11-08 22:05:04 +00007551999-11-08 <tytso@valinux.com>
756
757 * Makefile.in (tst_badblocks): Add freefs.o to the object list,
758 since ext2fs_badblocks_list_free was moved to freefs.c.
759
760 * tst_badblocks.c: Use the newer badblocks API names. Add
761 duplicate blocks to the test inputs to test dealing with
762 adding blocks which are already in the badblocks list.
763
764 * badblocks.c (ext2fs_badblocks_list_add): If appending to the end
765 of the list, use a shortcut O(1) operations instead of an
766 O(n) operation. (Idea suggested by David Beattie.)
767
768 * freefs.c (ext2fs_free): Use ext2fs_badblocks_list_free() instead
769 of badblocks_list_free(), to save a procedure call.
770
Theodore Ts'o416c93d1999-10-26 04:49:54 +00007711999-10-26 <tytso@valinux.com>
772
Theodore Ts'o28e11941999-10-26 18:17:20 +0000773 * Release of E2fsprogs 1.17
774
7751999-10-26 <tytso@valinux.com>
776
Theodore Ts'o416c93d1999-10-26 04:49:54 +0000777 * ext2fs.h: Add kludge to deal with the fact that egcs cpp doesn't
778 seem to handle ~0UL the same way as they used to.
779
Theodore Ts'o601002b1999-10-26 02:06:39 +00007801999-10-25 <tytso@valinux.com>
781
Theodore Ts'ofe70fd31999-10-26 02:34:47 +0000782 * nt_io.c (_OpenNtName): Open the device using
783 FILE_SYNCHRONOUS_IO_NONALERT instead of
784 FILE_SYNCHRONOUS_IO_ALERT
785 (nt_open): At the end of the device open routine, unlock
786 the drive but do not dismount it.
787
Theodore Ts'o601002b1999-10-26 02:06:39 +0000788 * initialize.c (CREATOR_OS): Use __GNU__ instead of __gnu__ to
789 detect the Hurd OS.
790
Theodore Ts'oe6198e51999-10-23 00:58:54 +00007911999-10-22 <tytso@valinux.com>
792
Theodore Ts'o614fdfd1999-10-23 03:19:51 +0000793 * Release of E2fsprogs 1.16
794
7951999-10-22 <tytso@valinux.com>
796
Theodore Ts'oe6198e51999-10-23 00:58:54 +0000797 * mkdir.c (ext2fs_mkdir): Pass EXT2_FT_DIR flag to ext2fs_link().
798
799 * link.c (ext2fs_link): This call now uses the low three bits of
800 the flags parameter to pass the directory filetype
801 information; it will set the directory entry FILETYPE
802 information if the filesystem supports it.
803
804 * newdir.c (ext2fs_new_dir_block): If the FILETYPE superblock
805 option is set, then create the '.' and '..' entries with
806 the filetype set to EXT2_FT_DIR.
807
Theodore Ts'oaa4115a1999-10-21 19:33:18 +00008081999-09-24 <tytso@valinux.com>
809
810 * nt_io.c: New file which supports I/O under Windows NT.
811
Theodore Ts'o3a5f8ea1999-09-14 20:21:26 +00008121999-09-07 <tytso@valinux.com>
813
814 * ext2fs.h: Add new fields for journalling and define new
815 feature bits used by newer filesystems: IMAGIC_INODES,
816 HAS_JOURNAL, RECOVER.
817
818 * expanddir.c (ext2fs_expand_dir, expand_dir_proc): Change where
819 we update the inode block count and size files so that the
820 block count field is updated correctly when we create an
821 indirect block.
822
8231999-07-18 Theodore Ts'o <tytso@valinux.com>
Theodore Ts'o657cb971999-07-30 23:19:10 +0000824
825 * Release of E2fsprogs 1.15
826
Theodore Ts'oe72a9ba1999-06-25 15:40:18 +00008271999-06-23 <tytso@valinux.com>
828
829 * swapfs.c (ext2fs_swap_inode): Add compatibility for Linux 2.3
830 kernels that use i_generation instead of i_version. Patch
831 supplied by Jon Bright <sircus@sircus.demon.co.uk>.
832
8331999-06-21 <tytso@valinux.com>
Theodore Ts'o813bbb21999-06-22 03:17:45 +0000834
835 * dir_iterate.c (ext2fs_process_dir_block): Check for corrupted
836 directory entry before calling the callback function.
837 This should prevent some core dumps of insufficiently
838 paranoid callback functions.
839
Theodore Ts'oa4bf69d1999-05-29 21:53:30 +00008401999-05-29 <tytso@rsts-11.mit.edu>
841
842 * ext2fs.h: Add feature definition for AFS IMAGIC inodes.
843
844 * fileio.c (ext2fs_file_open): Remove obsolete comment stating
845 that we don't handle writing yet (we do). Fixed bug where
846 we weren't allocating a big enough buffer for ext2_bmap.
847
Theodore Ts'of0687a51999-05-29 21:48:03 +00008481999-05-03 <tytso@rsts-11.mit.edu>
849
850 * openfs.c (ext2fs_open): Check to make sure that the number of
851 blocks per group is not zero --- if so, it must be a bad
852 superblock!
853
Theodore Ts'o9e51eca1999-01-09 16:32:31 +00008541999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
855
856 * Release of E2fsprogs 1.14
857
Theodore Ts'o665f7101999-01-08 13:33:39 +00008581999-01-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
859
860 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Check to see if
861 the inode number is zero; if it's zero, return
862 EXT2_ET_BAD_INODE_NUM.
863
Theodore Ts'o7a469521999-01-04 08:50:59 +00008641998-12-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
865
866 * initialize.c (ext2fs_initialize): Use EXT2_FIRST_INODE instead
867 of EXT2_FIRST_INO to ensure compatibility with Linux 1.2
868 header files.
869
Theodore Ts'o73f17cf1999-01-04 07:35:45 +0000870Mon Jan 4 02:32:09 1999 Theodore Y. Ts'o <tytso@mit.edu>
871
872 * llseek.c (ext2fs_llseek): Change ext2fs_llseek() in the
873 non-Linux case to use EINVAL by default, unless it isn't
874 defined, in which case we use EXT2_ET_INVALID_ARGUMENT
875 instead.
876
Theodore Ts'o556ad131998-12-19 08:10:58 +00008771998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu>
878
879 * Release of E2fsprogs 1.13
880
Theodore Ts'o5a679c81998-12-03 16:40:38 +00008811998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
882
883 * Makefile.in: Updated dependencies.
884
Theodore Ts'o8d7e83b1998-09-23 00:27:26 +00008851998-09-22 Theodore Ts'o <tytso@rsts-11.mit.edu>
886
887 * initialize.c (ext2fs_initialize): Make sure that we allocate
888 enough inodes so that we can make a valid filesystem.
889
Theodore Ts'o2eb374c1998-09-03 01:22:57 +00008901998-09-02 Theodore Ts'o <tytso@rsts-11.mit.edu>
891
892 * rw_bitmaps.c: Fixed signed/unsigned warnings.
893
894 * fileio.c (ext2fs_file_set_size): Remove unneeded extern from the
895 function declaration.
896
897 * dblist.c (make_dblist): Add safety check in case the dblist
898 pointer passed in is null (in which case, assign it to
899 fs->dblist). Fixed some signed/unsigned warnings.
900
901 * bmap.c: Make addr_per_block be of type blk_t to avoid
902 signed/unsigned warnings.
903
904 * namei.c (ext2fs_follow_link): Remove uneeded extern from the
905 function declaration.
906
907 * get_pathname.c (get_pathname_proc): Use return value from
908 ext2fs_get_mem, instead of checking if &gp->name is
909 NULL.
910
911 * dir_iterate.c (ext2fs_process_dir_block):
912 * dblist_dir.c (ext2fs_dblist_dir_iterate): Remove uneeded extern
913 from the function declaration.
914
915 * block.c (ext2fs_block_iterate2): If the read_inode call fails,
916 return the error directly instead of jumping to the
917 cleanup routine, since we don't need to do any cleanup.
918
919 * alloc_table.c (ext2fs_allocate_group_table): Make this
920 function take a dgrp_t for its group argument.
921
922 * ext2fs.h: Make dgrp_t an __u32 type, and make
923 fs->desc_group_count be of type dgrp_t.
924
Theodore Ts'of75c28d1998-08-01 04:18:06 +00009251998-07-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
926
927 * badblocks.c (ext2fs_badblocks_list_add): Use a bigger increment
928 than 10 blocks when we need to expand the size of the
929 badblocks list.
930
Theodore Ts'o4a5fa191998-07-09 05:42:45 +00009311998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
932
933 * Release of E2fsprogs 1.12
934
Theodore Ts'o30c42611998-06-30 05:33:11 +00009351998-06-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
936
937 * closefs.c (ext2fs_flush): Update the s_block_group_nr field as
938 appropriate for all of the block group copies, so that
939 it's clear where the beginning of the filesystem is on the
940 disk. (For when the partition table gets scrod.)
941
942 * ext2fs.h: Change the name of the feature from
943 EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE to
944 EXT2_FEATURE_INCOMPAT_FILESIZE (to match with the kernel).
945
Theodore Ts'o818180c1998-06-27 05:11:14 +00009461998-06-18 Theodore Ts'o <tytso@rsts-11.mit.edu>
947
948 * inode.c (get_next_blockgroup): Fix bug where if
949 get_next_blockgroup() is called early because of a missing
950 inode table in a block group, the current_inode counter
951 wasn't incremented correctly.
952
Theodore Ts'o4faba5b1998-06-16 05:23:41 +00009531998-06-16 Theodore Ts'o <tytso@rsts-11.mit.edu>
954
955 * read_bb.c (ext2fs_read_bb_inode): Make function more robust
956 against a completely trashed bad block inode.
957
Theodore Ts'o03673db1998-06-10 20:39:43 +00009581998-06-10 Theodore Ts'o <tytso@rsts-11.mit.edu>
959
960 * alloc_tables.c (ext2fs_allocate_group_table): Fix bug so that if
961 the stride length hits a bad value, we retry the block
962 allocation starting at the beginning of the block group.
963
964 * ext2fs.h, bb_inode.c, block.c, bmove.c, dir_iterate.c,
965 expanddir.c, ext2fsP.h, read_bb.c: Change blkcnt_t to be
966 e2_blkcnt_t to avoid collision with LFS API.
967
Theodore Ts'o353952d1998-05-01 05:32:18 +00009681998-05-01 Theodore Ts'o <tytso@rsts-11.mit.edu>
969
970 * initialize.c (ext2fs_initialize): Initialize s_inodes_count in a
971 way that avoids overflows on disk sizes greater than 4GB.
972
Theodore Ts'o4c77fe51998-04-30 17:35:59 +00009731998-04-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
974
975 * ext2fs.h: Define EXT2_QSORT_TYPE appropriately for the
976 return type for comparison functions for qsort.
977
978 * dblist.c (dir_block_cmp): Use EXT2_QSORT_TYPE in function
979 declaration.
980
Theodore Ts'o76f875d1998-04-27 01:41:13 +00009811998-04-26 Theodore Ts'o <tytso@rsts-11.mit.edu>
982
983 * ext2fs.h, bitops.h: Add support for the Watcom C compiler to do
984 inline functions.
985
986 * ext2fs.h, dosio.c: Use asm/types.h instead of linux/types.h to
987 evade a potential problem with glibc's header files trying
988 to spike out linux/types.h.
989
990 * ext2fs.h (ext2fs_resize_mem): Change the function prototype to
991 include the old size of the memory, which is needed for
992 some braindamaged memory allocation systems that don't
993 support realloc().
994
995 * badblocks.c (ext2fs_badblocks_list_add):
996 bb_inode.c (clear_bad_block_proc):
997 dblist.c (ext2fs_add_dir_block):
998 icount.c (insert_icount_el):
999 irel_ma.c (ima_put):
1000 rs_bitmap.c (ext2fs_resize_generic_bitmap): Update functions to
1001 pass the old size of the memory to be resized to
1002 ext2fs_resize_mem().
1003
Theodore Ts'o469bec81998-04-01 02:46:43 +000010041998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
1005
1006 * Makefile.in: Change to use new installation directory variables
1007 convention. Fix uninstall rules to take $(DESTDIR) into
1008 account.
1009
Theodore Ts'o4a31c481998-03-30 01:27:25 +000010101998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu>
1011
1012 * ext2fs.h: If __STRICT_ANSI__ is defined and we're on a platform
1013 with 32 bit longs, then we need to manually define __s64
1014 and __u64, since the current kernel header files don't
1015 define these if __STRICT_ANSI__ is defined. This is a
1016 problem if we are compiling with full GCC warnings, since
1017 we do need 64 bit support.
1018
1019 * Makefile.in (OBJS): Remove bmove.o from files to be built,
1020 since we're not using ext2fs_move_blocks() and there
1021 is some question as to its usefulness in its current
1022 form.
1023
1024 * bmap.c (block_bmap): Remove unused function.
1025
1026 * bmove.c (process_block): Fix -Wall warning.
1027
Theodore Ts'o36a43d61998-03-24 16:17:51 +000010281998-03-23 Theodore Ts'o <tytso@rsts-11.mit.edu>
1029
1030 * block.c (ext2fs_block_iterate3): Make the ref_offset field
1031 contain the offset into the inode.i_blocks array when
1032 ref_block is zero. Since we haven't done a formal
1033 release of e2fsprogs since block_iterate2 was first
1034 introduced, I removed block_iterate2, and renamed
1035 block_iterate3 to be block_iterate2.
1036
1037 * bb_inode.c, bmove.c, dblist_dir.c, dir_iterate.c,
1038 expanddir.c, ext2fs.h, ext2fsP.h, read_bb.c: Change
1039 use of block_iterate and block_iterate2 to
1040 block_iterate2 with the new prototype for the
1041 interator function. (using blkcnt_t forr blockcount)
1042
Theodore Ts'o674a4ee1998-03-23 02:06:52 +000010431998-03-21 Theodore Ts'o <tytso@rsts-11.mit.edu>
1044
1045 * ext2fs.h: Add new superblock fields (s_algorithm_usage_bitmap,
1046 s_prealloc_blocks, s_prealloc_dir_blocks). Added
1047 conditional defines of new features COMPAT_DIR_PREALLOC,
1048 RO_COMPAT_LARGE_FILE RO_COMPAT_BTREE_DIR,
1049 INCOMPAT_COMPRESSION, INCOMPAT_DIRNAME_SIZE. Changed
1050 the library to declare that we support COMPAT_DIR_PREALLOC,
1051 INCOMPAT_DIRNAME_SIZE, RO_COMPAT_LARGE_FILE.
1052
1053 * fileio.c: Rename function ext2fs_file_llseek to be
1054 ext2fs_file_lseek, which is more accurate.
1055
1056 * block.c: Add new function ext2fs_block_iterate3 which calls
1057 the iterator function with the blockcount argument of
1058 type blkcnt_t. This version of the function is
1059 allowed to handle large files; the other fucntions are
1060 not.
1061
1062 * ext2fs.h: Add new type blkcnt_t
1063
1064 * ext2_err.et.in: Add error code EXT2_ET_FILE_TOO_BIG
1065
1066 * block.c (ext2fs_block_iterate2): Fix bug where the block count
1067 field wasn't getting correctly incremented for sparse
1068 files when the indirect or doubly-indirect block
1069 specified in the inode was zero.
1070
1071Sun Mar 8 22:42:47 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1072
1073 * unlink.c (unlink_proc):
1074 * lookup.c (lookup_proc):
1075 * link.c (link_proc):
1076 * get_pathname.c (get_pathname_proc):
1077 * dir_iterate.c (ext2fs_process_dir_block): Mask off high 8 bits
1078 from dirent->name_len, so it can be used for other
1079 purposes.
1080
1081 * ext2fs.h: Add definition of EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE,
1082 and indicate that we have support for this incompatible
1083 option.
1084
Theodore Ts'oc7752561998-02-24 04:25:52 +00001085Mon Feb 23 08:46:33 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1086
1087 * ext2_err.et.in: Added new error code, EXT2_ET_CANCEL_REQUESTED.
1088
Theodore Ts'o79b05db1998-02-21 05:01:19 +00001089Fri Feb 20 23:58:01 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1090
1091 * dblist.c (ext2fs_get_num_dirs): Improve the estimation of the
1092 number of directories when the block group information is
1093 unreliable.
1094
Theodore Ts'oc4e749a1998-02-20 05:33:14 +000010951998-02-20 Theodore Y. Ts'o <tytso@edt.mit.edu>
1096
Theodore Ts'o218a4861998-02-21 01:41:39 +00001097 * inode.c (ext2fs_get_next_inode): Always do the check to see if the
1098 inode table is missing so that we catch the case where the
1099 first block group is missing.
1100
Theodore Ts'oc4e749a1998-02-20 05:33:14 +00001101 * getsize.c, ismounted.c, unix_io.c: #include errno.h since it's
1102 needed.
1103
Theodore Ts'o9abd2ce1998-02-16 22:00:37 +00001104Mon Feb 16 16:16:00 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1105
1106 * ext2_io.h, ext2fs.h: Protect against being included multiple times.
1107
1108 * bmove.c: #include ext2fsP.h instead of "ext2fs/ext2fs.h"
1109
1110 * test_io.c (test_flush): Add a debugging printf when the flush
1111 method is called.
1112
1113 * rw_bitmaps.c (ext2fs_read_bitmaps): If the bitmaps are already
1114 read in, return right away.
1115
Theodore Ts'o5953b9d1998-02-01 13:23:02 +00001116Sun Feb 1 08:20:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1117
1118 * bitops.h: Don't try to do i386 inline asm functions if the
1119 compiler isn't GCC.
1120
1121 * ext2fs.h: If EXT2_FLAT_INCLUDES is defined, #include e2_types.h,
1122 instead of linux/types.h, and e2_bitops.h instead of
1123 ext2fs/bitops.h.
1124
1125 * icount.c, version.c: Don't #include <et/com_err.h>, as it isn't
1126 necessary.
1127
Theodore Ts'ob5abe6f1998-01-19 14:47:53 +00001128Sat Jan 17 13:13:31 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1129
1130 * inode.c (ext2fs_open_inode_scan): Initialize the group variables
1131 so that we don't need to call get_next_blockgroup() the
1132 first time around. Saves a bit of time, and prevents us
1133 from needing to assign -1 to current_group (which is an
1134 unsigned value).
1135
1136 * icount.c (insert_icount_el): Cast the estimated number of inodes
1137 from a float to an ino_t.
1138
1139 * alloc.c, alloc_tables.c, badlbocks.c, bb_compat.c, bb_inode.c,
1140 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
1141 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
1142 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
1143 expanddir.c, ext2fs.h, fileio.c, freefs.c,
1144 get_pathname.c, getsize.c, icount.c, initialize.c,
1145 inline.c, inode.c, irel_ma.c, ismounted.c, link.c,
1146 lookup.c, mkdir.c, namei.c, native.c, newdir.c,
1147 openfs.c, read_bb.c, read_bb_file.c, rs_bitmap.c,
1148 rw_bitmaps.c, swapfs.c, test_io.c, tst_badblocks.c,
1149 tst_getsize.c, tst_iscan.c, unix_io.c, unlink.c,
1150 valid_blk.c, version.c: If EXT2_FLAT_INCLUDES is
1151 defined, then assume all of the
1152 ext2-specific header files are in a flat directory.
1153
1154 * block.c, bmove.c, dirblock.c, fileio.c: Explicitly cast
1155 all assignments from void * to be compatible with C++.
1156
1157Tue Jan 6 11:28:15 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1158
1159 * closefs.c (ext2fs_flush): Add a call to io_channel_flush() to
1160 make sure the contents of the disk are flushed to disk.
1161
1162Mon Dec 29 14:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1163
1164 * dblist.c (ext2fs_add_dir_block): Change new to be new_entry to
1165 avoid C++ namespace clash.
1166
1167 * bitmaps.c (ext2fs_copy_bitmap): Change new to be new_map to
1168 avoid C++ namespace clash.
1169
1170 * ext2fs.h, bb_inode.c, block.c, bmove.c, brel.h, brel_ma.c,
1171 irel.h, irel_ma.c, dblist.c, dblist_dir.c, dir_iterate.c,
1172 ext2fsP.h, expanddir.c, get_pathname.c, inode.c, link.c,
1173 unlink.c: Change private to be priv_data (to avoid C++
1174 namespace clash)
1175
Theodore Ts'o5be8dc21997-12-01 18:24:10 +00001176Fri Nov 28 09:26:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1177
1178 * dblist.c (ext2fs_get_num_dirs): Make ext2fs_get_num_dirs more
1179 paranoid about validating the directory counts from the
1180 block group information.
1181
1182 * all files: Don't include stdlib.h anymore; include it in
1183 ext2_fs.h, since that file requires stdlib.h
1184
Theodore Ts'o89270b51997-11-24 11:44:25 +00001185Thu Nov 20 16:07:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1186
1187 * expanddir.c (ext2fs_expand_dir): Check to make sure the block
1188 bitmap is loaded, and return an error if it is not.
1189 (expand_dir_proc): Only use ext2fs_write_dir_block when
1190 writing a directory block, not when writing out a fresh
1191 indirect block.
1192
Theodore Ts'od36d8351997-11-12 03:48:07 +00001193Tue Nov 11 22:46:45 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1194
1195 * Makefile.in, tst_getsize.c: Added new file which is used to test
1196 the ext2fs_get_device_size function.
1197
1198 * ext2_err.et.in (EXT2_ET_UNIMPLEMENTED): Added new error code.
1199
Theodore Ts'o79a90bd1997-11-03 19:16:55 +00001200Sun Nov 2 20:36:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1201
1202 * ext2fs.h: Make ext2fs_get_mem take an unsigned argument.
1203
1204 * fileio.c (ext2fs_file_get_size, ext2fs_file_set_size,
1205 ext2fs_file_get_fs): New functions added.
1206
1207
1208Fri Oct 31 12:16:52 1997 <tytso@EDT.MIT.EDU>
1209
1210 * bitops.c (ext2fs_warn_bitmap, ext2fs_warn_bitmap2): Don't call
1211 com_err if OMIT_COM_ERR is defined.
1212
Theodore Ts'o1f0b6c11997-10-31 06:07:47 +00001213Thu Oct 30 11:33:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1214
1215 * Rename new error codes to _ET_ in them for consistency.
1216
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001217Sat Oct 25 00:06:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1218
Theodore Ts'o7b4e4531997-10-26 03:41:24 +00001219 * [all files, basically]: Added definition of ext2fs_get_mem,
1220 ext2fs_free_mem, and ext2fs_resize_mem in ext2fs.h, and
1221 changed all library routines to use these wrapper functions.
1222
Theodore Ts'o78d8f901997-10-26 01:53:39 +00001223 * dblist.c, mkdir.c: use EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND
1224 instead of the system error messages.
1225
1226 * ext2_err.et.in: Added new error messages EXT2_DIR_EXISTS and
1227 EXT2_DB_NOT_FOUND
1228
Theodore Ts'o30fab291997-10-25 22:37:42 +00001229 * ext2fs.h: Added function declarations and constants for bmap.c
1230 and fileio.c.
1231
1232 * ext2_err.et.in: Added new error messages EXT2_FILE_RO and
1233 EXT2_ET_MAGIC_EXT2_FILE
1234
1235 * Makefile.in: Added files bmap.c and fileio.c, and temporarily
1236 commented out brel_ma.c and irel_ma.c
1237
1238 * bmap.c: New file which maps a file's logical block number to its
1239 physical block number.
1240
1241 * fileio.c: New file which implements simple file reading and
1242 writing primitives.
1243
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001244 * alloc.c (ext2fs_alloc_block): New function which allocates a
Theodore Ts'o30fab291997-10-25 22:37:42 +00001245 block, zeros it, and updates the filesystem accounting
1246 records appropriately.
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001247
1248Wed Oct 22 16:47:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1249
1250 * ext2_err.et.in: Added new error codes: EXT2_NO_MEMORY,
1251 EXT2_INVALID_ARGUMENT, EXT2_BLOCK_ALLOC_FAIL,
1252 EXT2_INODE_ALLOC_FAIL, EXT2_NOT_DIRECTORY
1253
1254 * Change various library files to use these functions instead of
1255 EINVAL, ENOENT, etc.
1256
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +00001257Mon Oct 20 19:32:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1258
1259 * llseek.c: Check HAVE_LLSEEK_PROTOTYPE to see whether or not we
1260 need to declare llseek().
1261
Theodore Ts'o1d2ff461997-10-19 23:00:21 +00001262Sun Oct 19 18:56:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1263
Theodore Ts'od40259f1997-10-20 00:44:26 +00001264 * Rename io.h to be ext2_io.h (avoid namespace collisions)
1265
Theodore Ts'o1d2ff461997-10-19 23:00:21 +00001266 * Add #ifdef's for HAVE_SYS_STAT_H and HAVE_SYS_TYPES_H
1267
Theodore Ts'od163b091997-10-03 17:42:28 +00001268Fri Oct 3 13:35:59 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1269
1270 * llseek.c (ext2fs_llseek): Fix type error for ext2fs_llseek()
1271
1272 * icount.c (ext2fs_icount_validate):
1273 * bmove.c (process_block): Fix lint error in type for fprintf().
1274
1275Mon Sep 15 11:45:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1276
1277 * inode.c (ext2fs_check_directory): Add support for the callback
1278 to return the error code EXT2_ET_CALLBACK_NOTHANDLED.
1279
Theodore Ts'offf876b1997-09-13 00:32:29 +00001280Thu Sep 4 12:28:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1281
1282 * bitmaps.c (ext2fs_set_bitmap_padding): New function which sets the
1283 padding of the bitmap to be all one's.
1284
Theodore Ts'obc75f2a1997-09-04 00:43:10 +00001285Wed Sep 3 14:27:30 1997 Theodore Y. Ts'o <tytso@edt.mit.edu>
1286
1287 * llseek.c: Added missing semicolon to glibc fixup declaration of
1288 llseek().
1289
1290 * bmove.c: Add #include of errno.h
1291
Theodore Ts'oe9affb71997-08-24 02:57:55 +00001292Sat Aug 23 22:47:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1293
1294 * Makefile.in (ELF_SO_VERSION): Bump version to be 2.4 since we've
1295 added a new field to the io_channel (app_data).
1296
1297 * io.h: Add a new element to the io_channel structure, app_data.
1298
1299 * initialize.c, openfs.c: Set io->app_data to point at the
1300 filesystem handle.
1301
Theodore Ts'o1c27cac1997-08-14 17:20:42 +00001302Thu Aug 14 08:14:17 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1303
1304 * io.h: Change the prototype of ext2fs_llseek() to use int's
1305 instead of unsigned int's.
1306
1307 * llseek.c: Change to allow PIC and !HAVE_LLSEEK. Add a prototype
1308 to make life easer for GNU Libc 2.
1309
1310 * rw_bitmaps.c: On the PowerPC, the big-endian variant of the ext2
1311 filesystem has its bitmaps stored as 32-bit words with bit
1312 0 as the LSB of each word. Thus a bitmap with only bit 0
1313 set would be, as a string of bytes, 00 00 00 01 00 ... To
1314 cope with this, we byte-reverse each word of a bitmap if
1315 we have a big-endian filesystem, that is, if we are *not*
1316 byte-swapping other word-sized numbers.
1317
Theodore Ts'o3cb6c501997-08-11 20:29:22 +00001318Mon Aug 11 03:30:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1319
1320 * dosio.c: New file to do DOS/BIOS disk accesses.
1321
1322 * namei.c (open_namei): Make pathlen be of type size_t.
1323
1324 * llseek.c: Always #include stdlib.h since it's need to define
1325 size_t.
1326
1327 * io.h: Use errcode_t for magic numbers.
1328
1329 * icount.c (get_icount_el): Use size_t where appropriate
1330
1331 * dupfs.c (ext2fs_dup_handle):
1332 * dblist.c (dir_block_cmp): Use size_t where appropriate.
1333
1334 * read_bb.c (ext2fs_read_bb_inode):
1335 * cmp_bitmaps.c (ext2fs_compare_inode_bitmap): Use blk_t, ino_t
1336 and size_t where appropriate.
1337
1338 * closefs.c (ext2fs_flush): Use dgrp_t instead of int where
1339 appropriate.
1340
1341 * openfs.c (ext2fs_open):
1342 * check_desc.c (ext2fs_check_desc): Use blk_t instead of int where
1343 appropriate.
1344
1345 * rw_bitmaps.c (read_bitmaps):
1346 * irel_ma.c:
1347 * inode.c (ext2fs_write_inode):
1348 * initialize.c (ext2fs_initialize):
1349 * brel_ma.c: Fix to make be 16-bit safe.
1350
1351 * link.c (ext2fs_link):
1352 * unlink.c (ext2fs_unlink):
1353 * lookup.c (lookup_proc):
1354 * ismounted.c (ext2fs_check_if_mounted):
1355 * block.c (xlate_func): Add #pragma argsused for Turbo C.
1356
Theodore Ts'o4cbe8af1997-08-10 23:07:40 +00001357Sun Aug 10 10:05:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1358
1359 * block.c (ext2fs_block_iterate2): Use retval which is a errcode_t
1360 type.
1361
1362 * bitmaps.c (make_bitmap): Use size_t instead of int where
1363 appropriate.
1364
1365 * bb_inode.c (set_bad_block_proc): Add #pragma argsused for Turbo C.
1366
1367 * alloc.c (ext2fs_new_inode): Use ino_t instead of int for the
1368 group number.
1369
1370 * get_pathname.c: Use ino_t instead of int where appropriate.
1371
1372 * ext2fs.h: Make the magic structure element be errcode_t instead
1373 of int.
1374
1375 * alloc.c alloc_tables.c badblocks.c bb_compat.c bb_inode.c
1376 bitmaps.c block.c bmove.c brel_ma.c check_desc.c closefs.c
1377 cmp_bitmaps.c dblist.c dblist_dir.c dir_iterate.c
1378 dirblock.c dupfs.c expanddir.c freefs.c get_pathname.c
1379 icount.c initialize.c inline.c inode.c irel_ma.c link.c
1380 llseek.c lookup.c mkdir.c namei.c newdir.c read_bb.c
1381 read_bb_file.c rs_bitmap.c rw_bitmaps.c swapfs.c
1382 test_io.c tst_badblocks.c tst_iscan.c unix_io.c unlink.c
1383 valid_blk.c version.c: Add an #ifdef for HAVE_UNISTD_H
1384
Theodore Ts'o024996c1997-06-17 05:38:35 +00001385Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1386
Theodore Ts'oa1230b11997-07-02 02:41:59 +00001387 * unix_io.c (unix_read_blk): If ext2fs_llseek() fails, but errno
1388 is zero, then return EXT2_IO_LLSEEK_FAILED.
1389
1390 * ext2_err.et.in: Add a new error code, EXT2_IO_LLSEEK_FAILED.
1391
Theodore Ts'o024996c1997-06-17 05:38:35 +00001392 * Release of E2fsprogs 1.11
1393
Theodore Ts'o549860c1997-06-17 03:55:00 +00001394Mon Jun 16 23:53:06 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1395
1396 * dblist.c (ext2fs_dblist_count): Added new function which returns
1397 the number of directory blocks in dblist.
1398
Theodore Ts'o36f21431997-06-14 07:25:40 +00001399Sat Jun 14 01:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1400
1401 * unix_io.c (unix_flush): Make the io_channel flush function do a
1402 fsync to flush the kernel buffers to disk.
1403
Theodore Ts'o9941fb71997-06-11 22:27:41 +00001404Wed Jun 11 18:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1405
1406 * inode.c (ext2fs_inode_scan_goto_blockgroup): Fix bug; the
1407 current inode number wasn't being set by the
1408 goto_blockgroup function.
1409
Theodore Ts'o1e1da291997-06-09 14:51:29 +00001410Mon Jun 9 10:45:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1411
1412 * bmove.c (ext2fs_move_blocks): New function which takes a bitmap
1413 of blocks which need to be moved, and moves those blocks
1414 to another location in the filesystem.
1415
1416 * rs_bitmap.c (ext2fs_resize_generic_bitmap): When expanding a
1417 bitmap, make sure all of the new parts of the bitmap are
1418 zero.
1419
1420Sun Jun 8 16:24:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1421
1422 * bitmaps.c (ext2fs_copy_bitmap): Fix bug; the destination bitmap
1423 wasn't being returned to the caller.
1424
1425 * alloc_tables.c (ext2fs_allocate_group_table): Add new function
1426 ext2fs_allocate_group_table() which sets the group tables
1427 for a particular block group. The relevant code was
1428 factored out of ext2fs_allocate_tables().
1429
1430 * dblist.c (make_dblist): Adjust the initial size of the directory
Theodore Ts'o024996c1997-06-17 05:38:35 +00001431 block list to be a bit more realistic (ten plus twice the
Theodore Ts'o1e1da291997-06-09 14:51:29 +00001432 number of directories in the filesystem).
1433
Theodore Ts'of635d7f1997-05-09 02:50:16 +00001434Thu May 8 22:19:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1435
1436 * badblocks.c (ext2fs_badblocks_list_test): Fix bug where
1437 ext2fs_badblocks_list_test would test the list (and exceed
1438 array boundaries) if there were no bad blocks on the bad
1439 blocks list. (Showed up when user tried: mke2fs -c -b 4096).
1440
Theodore Ts'oa29f4d31997-04-29 21:26:48 +00001441Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1442
1443 * Release of E2fsprogs version 1.10
1444
1445Thu Apr 24 10:13:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1446
1447 * alloc_tables.c (ext2fs_allocate_tables): Correctly place the
1448 inode and block bitmaps based on the RAID 0 stride
1449 parameter (which is passed by mke2fs).
1450
1451 * ext2fs.h: Add "stride" parameter to ext2_filsys, to be used by
1452 mke2fs to communicate the stride length to
1453 ext2fs_allocate_tables()
1454
1455Wed Apr 23 21:50:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1456
1457 * initialize.c (ext2fs_initialize): Fix to compile under Linux 1.2
1458 systems. (We can't assume that the new filesystem types
1459 are supported.)
1460
1461Wed Apr 23 18:40:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1462
1463 * alloc_tables.c (ext2fs_allocate_tables): Make sure that we
1464 allocate the inode and block bitmaps inside block group at
1465 all times.
1466
1467Mon Apr 21 00:06:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1468
1469 * alloc.c (ext2fs_new_block): Fix bug where if goal==0 and the
1470 filesystem has no free blocks, ext2fs_new_block would loop
1471 forever.
1472
1473 * dupfs.c (ext2fs_dup_handle): Duplicate an ext2 filesystem handle
1474
1475 * freefs.c (ext2fs_free_inode_cache): Decrement refcount and only
1476 free if refcount goes to zero.
1477
1478 * inode.c (create_icache): Initialize refcount to 1.
1479
1480 * ext2fsP.h: Added refcount to ext2_inode_cache
1481
1482 * dblist.c (ext2fs_copy_dblist): New function to copy a directory
1483 block list.
1484
1485 * badblocks.c (ext2fs_badblocks_copy): New function to copy a
1486 badblocks structure.
1487
1488Sun Apr 20 23:19:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1489
1490 * bitmaps.c (ext2fs_copy_bitmap): New function to copy a bitmap.
1491
1492 * unix_io.c, test_io.c (unix_open, test_open): Initialize the
1493 refcount to 1.
1494 (unix_close, test_close): Decrement the refcount and only
1495 close the io_channel if the refcount goes to 0.
1496
1497 * io.h: Add refcount to the io_channel structure. Add new macro
1498 interface io_channel_bumpcount() to bump the refcount.
1499
1500Thu Apr 17 20:25:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1501
1502 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Use the inode
1503 cache in the filesystem handle, instead of the inode cache
1504 in a static variable.
1505
1506 * freefs.c: Added static function to free the inode cache (called by
1507 ext2fs_free).
1508
1509 * ext2fsP.h: Added definition of the ext2_inode_cache structures.
1510
1511 * ext2fs.h: Added pointer to the inode_cache structure.
1512
1513 * block.c (block_iterate_ind, block_iterate_dind,
1514 block_iterate_tind): If there are holes in the indirect,
1515 doubly indirect, or triply indirect blocks, increment the
1516 block count field automatically.
1517
1518Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1519
1520 * Release of E2fsprogs version 1.09
1521
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +00001522Mon Apr 14 20:38:56 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1523
1524 * version.c (ext2fs_parse_version_string): Check the passed in
1525 version string (instead of the hard-coded one).
1526
1527 * alloc_tables.c (ext2fs_allocate_tables): If the last block is
1528 greater filesystem size, clamp it to prevent allocating a
1529 block or inode bitmap beyond the filesystem.
1530
1531 * initialize.c (ext2fs_initialize): Fix bug where the metatdata
1532 overhead calculation was accidentally removed.
1533
1534Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1535
1536 * Release of E2fsprogs version 1.08
1537
Theodore Ts'o521e3681997-04-29 17:48:10 +00001538Thu Apr 10 13:15:15 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1539
1540 * dblist.c (ext2fs_set_dir_block): New function which sets the
1541 block of a dblist entry, given the directory inode and
1542 blockcnt.
1543
1544Sat Apr 5 12:42:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1545
1546 * alloc_tables.c (ext2fs_allocate_tables): Allocate the bitmap and
1547 inode bitmaps at staggered locations across the block
1548 groups, to avoid concentrating the bitmaps on a small
1549 number of disks when using striped RAID arrays.
1550
1551 * initialize.c (ext2fs_initialize): By default, choose the maximum
1552 possible number of blocks per group (based on the size of
1553 the bitmaps in the blocksize).
1554
1555Fri Apr 4 11:28:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1556
1557 * initialize.c (ext2fs_initialize): Add support for
1558 EXT2_COMPAT_SPARSE_SUPER feature.
1559
1560 * closefs.c (ext2fs_bg_has_super): New function to determine
1561 whether or a particular block group should have a
1562 superblock and block group descriptor. Used for the
1563 EXT2_COMPAT_SPARSE_SUPER feature is turned on.
1564 (ext2fs_flush): Check ext2fs_bg_has_super to see whether
1565 or not the superblock should be written out for the block
1566 group.
1567
1568 * ext2fs.h (EXT2_COMPAT_SPARSE_SUPER): Define compatibility flag
1569 for sparse duplicate superblocks.
1570
1571 * version.c (ext2fs_get_library_version): New function which
1572 returns the library version.
1573
1574 * version.c (ext2fs_parse_version_string): New function which
1575 parses a version string and returns a version number,
1576 so application programs can compare version numbers as
1577 integers.
1578
1579Wed Mar 26 00:43:52 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1580
1581 * icount.c (ext2fs_create_icount): Change function so that it also
1582 takes a new argument which contains a "hint" icount
1583 structure. This "hint" icount allows the create function
1584 to set up the sorted list in advance. This reduces
1585 significantly the amount of data moving needed to insert
1586 these inodes into the list later.
1587
1588 * icount.c (ext2fs_icount_validate): New function which validates
1589 that the icount structure's rep invariant.
1590
1591 * icount.c (get_icount_el): Completely revamped implementation
1592 to subsume put_icount_el(). Put_icount_el() used to
1593 use an O(N) implementation to insert in the middle
1594 of the icount list. It now uses a O(ln N) to search
1595 for where the icount should be inserted, and then uses
1596 a memcpy to move the list down (instead of a for loop).
1597
1598 * icount.c (ext2fs_icount_fetch, ext2fs_icount_store,
1599 ext2fs_icount_increment, ext2fs_icount_decrement): Check
1600 to see if the inode is within bounds; if it isn't, return
1601 EINVAL.
1602
1603 * bitops.h (ext2fs_test_generic_bitmap): Fix error message given
1604 when a bad inode number is passed to test_generic_bitmap
1605 to be EXT2FS_TEST_ERROR instead of the wrong
1606 EXT2FS_UNMARK_ERROR.
1607
Theodore Ts'o21c84b71997-04-29 16:15:03 +00001608Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
1609
1610 * Release of E2fsprogs version 1.07
1611
1612Sun Mar 2 16:46:18 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1613
1614 * Makefile.in (ELF_VERSION): Change version to be 2.2
1615
1616Tue Feb 11 14:54:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1617
1618 * alloc.c (ext2fs_get_free_blocks): Change routine to use
1619 ext2fs_fast_test_block_bitmap_range().
1620
1621 * bitops.h (ext2fs_fast_test_block_bitmap_range,
1622 ext2fs_test_block_bitmap_range: New inline functions which
1623 test to see whether a contiguous range of blocks is
1624 available.
1625
1626Thu Feb 6 10:00:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1627
1628 * badblocks.c (ext2fs_badblocks_list_create): Rename sybmols to use
1629 use ext2fs_badblocks_* instead of badblocks_*
1630
1631 * bb_compat.c: New file which translates between old badblocks_*()
1632 names to ext2fs_badblocks_*()
1633
1634 * unlink.c (ext2fs_unlink): New file, moved ext2fs_unlink() from
1635 link.c (since e2fsck doesn't use ext2fs_unlink()).
1636
1637 * rs_bitmap.c (ext2fs_resize_generic_bitmap): New file, contains
1638 bitmap resizing routine moved from bitmaps.c, since e2fsck
1639 doesn't need to use this function.
1640
1641 * lookup.c (ext2fs_lookup): Moved ext2fs_lookup to its own file,
1642 since e2fsck only needs ext2fs_lookup.
1643
1644Mon Feb 3 10:11:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1645
1646 * inode.c (ext2fs_open_inode_scan): Set fs->badblocks if it is not
1647 already set; this is needed so that programs like dump
1648 which use the inode scan functions will deal with
1649 filesystems that have bad blocks in the inode table.
1650
1651Sun Feb 2 00:17:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1652
1653 * ext2fs.h (struct_badblocks_list, struct_badblocks_iterate):
1654 Moved to ext2fsP.h, since it doesn't need to be part of
1655 the public interface.
1656
1657 * dir_iterate.c: Move ext2_dir_iterate out of namei.c.
1658
1659Sat Feb 1 10:14:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1660
1661 * dblist.c (ext2fs_get_num_dirs): New file, which implements a
1662 directory block list abstraction. (Code moved from
1663 e2fsck).
1664
1665 * ext2fs.h, inode.c: Moved definition of ext2_struct_inode_scan to
1666 to inode.c (since no one else should be peeking inside it!)
1667
1668 * valid_blk.c (ext2_inode_has_valid_blocks): New function.
1669
1670 * openfs.c (ext2fs_open): Check the feature set in the ext2
1671 superblock, and refuse to open filesystems if they contain
1672 incompatible features. (Can be overriden with the
1673 EXT2_FLAG_FORCE
1674
1675Sun Jan 12 11:31:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1676
1677 * block.c (ext2fs_block_iterate2): Added new function
1678 ext2fs_block_iterate2 which changes the function
1679 signature of the callback function to include the
1680 referencing block and offset.
1681
1682 * inode.c (ext2fs_inode_scan_goto_blockgroup): Added new function
1683 ext2fs_inode_scan_goto_blockgroup which allows an
1684 application to jump to a particular block group while
1685 doing an inode scan.
1686
1687Wed Jan 1 23:50:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1688
1689 * dirblock.c: Include string.h, since we use memcpy().
1690
1691Tue Dec 3 12:27:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1692
1693 * getsize.c (ext2fs_get_device_size): The ioctl BLKGETSIZE returns
1694 a long not an int; this doesn't matter on i386 machines,
1695 but it does on Alpha's.
1696
1697Fri Nov 29 20:57:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1698
1699 * inode.c (ext2fs_write_inode, ext2fs_read_inode): If the inode
1700 table pointer is NULL, then return an error indicating
1701 that the inode table is missing.
1702 (get_next_blockgroup, get_next_blocks,
1703 ext2fs_get_next_inode): Don't treat a missing inode table
1704 as permanent error. Return MISSING_INODE_TABLE, but as an
1705 advisory error code, much like BAD_BLOCK_IN_INODE_TABLE.
1706
1707 * rw_bitmaps.c (ext2fs_write_block_bitmap,
1708 ext2fs_write_inode_bitmap): If the inode or block bitmap
1709 block is zero, then don't write out the inode or block
1710 bitmap. The idea here is to avoid stomping on the
1711 superblock.
1712 (read_bitmaps): If the inode or block bitmap block is
1713 zero, then fill in that portion of the inode or block
1714 bitmap with all zeros.
1715
1716 * inode.c (ext2fs_get_next_inode): Fix bug in handling of bad
1717 blocks in inode table when the inode table size is
1718 non-standard (and can therefore span blocks).
1719
1720Tue Oct 29 20:13:14 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1721
1722 * alloc.c (ext2fs_new_block): Fix fencepost error in
1723 ext2fs_new_block; make sure we don't try to allocate the
1724 first block beyond the end of the filesystem.
1725
1726Mon Oct 14 11:00:48 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1727
1728 * inode.c (check_for_inode_bad_blocks): New function called by
1729 get_next_blocks() to avoid reading in bad blocks marked in
1730 fs->badblocks. Inodes located in bad blocks are returned
1731 by ext2fs_get_next_inode() returns the error code
1732 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE.
1733
1734 * alloc_tables.c (ext2fs_allocate_tables): New function which
1735 performs the part of mke2fs's job of allocating the
1736 filesystem tables.
1737
1738 * test_io.c (test_close): IO manager which is used for testing
1739 purposes.
1740
1741Sun Oct 13 04:31:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1742
1743 * inode.c (ext2fs_get_next_inode): Separate out the function of
1744 setting up for a new block group to get_next_blockgroup().
1745 Separate out the function of reading in blocks of the
1746 inode table to get_next_blocks().
1747
1748 * ext2fs.h: Add the badblocks list to the ext2_filsys entry
1749
1750 * badblocks.c (badblocks_list_add, badblocks_list_test): Add
1751 blocks to the badblock list in sorted order. This allows
1752 badblocks_list_test to be coded using a binary search for
1753 speed.
1754
1755Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1756
1757 * Release of E2fsprogs version 1.06
1758
Theodore Ts'o5c576471997-04-29 15:29:49 +00001759Mon Oct 7 00:44:17 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1760
1761 * ext2fs.h, block.c, closefs.c, dirblock.c, inode.c, native.c,
1762 open.c: Change EXT2_SWAP to EXT2_FLAG_SWAP for
1763 consistency's sake.
1764
1765 * closefs.c (ext2fs_flush): If the flag EXT2_MASTER_SB_ONLY is
1766 set, then only write out the master superblock.
1767
1768Sun Oct 6 21:45:26 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1769
1770 * block.c (ext2fs_block_iterate): Fixed bug which caused
1771 block_iterate to fail to handle HURD created filesystems;
1772 it tested the inode translator field before the inode was
1773 loaded.
1774
1775Tue Sep 17 14:08:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1776
1777 * initialize.c (ext2fs_initialize): Make sure the description for
1778 the inode bitmap is set correctly.
1779
1780 * bitmaps.c (ext2fs_allocate_generic_bitmap): Fix minor type typo.
1781
1782Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1783
1784 * Release of E2fsprogs version 1.05
1785
Theodore Ts'o1e3472c1997-04-29 14:53:37 +00001786Sat Sep 7 07:36:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1787
1788 * initialize.c: Override the kernel's idea of default
1789 checkinterval from 0 (never) to 180 days.
1790
1791Wed Aug 28 03:20:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1792
1793 * namei.c (ext2fs_namei_follow): New function which follows
1794 symbolic link (if any) at the target.
1795
1796Tue Aug 27 01:48:43 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1797
1798 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Add support
1799 for shortcut function fs->read_inode() and fs->write_inode().
1800 Added inode_cache to reduce CPU time spent in doing
1801 byte swapping.
1802
1803 * swapfs.c (ext2fs_swap_super): Swap the new fields in a V2
1804 superblock.
1805
1806 * namei.c (ext2fs_follow_link): New function.
1807 (ext2fs_namei): Extended to have support for chasing
1808 symbolic links. ext2fs_namei() still returns an inode
1809 which is a symbolic link. Symbolic links are only chased
1810 while resolving the containing directory. To chase
1811 symbolic links of the final result, use
1812 ext2fs_follow_link().
1813
1814Mon Aug 26 23:46:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1815
1816 * ext2_err.et.in: Added new error code EXT2_ET_SYMLINK_LOOP.
1817
1818 * bitops.h (ext2fs_set_bit, ext2fs_celar_bit): Use asm inlines
1819 provided by Pete A. Zaitcev (zaitcev@lab.sun.mcst.ru).
1820
1821Thu Aug 22 00:40:18 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1822
1823 * initialize.c (ext2fs_initialize): On systems where the byte
1824 order is not i386 compatible, set the swap_byte flag.
1825
1826 * inode.c (inocpy_with_swap): Check to see if inode contains a
1827 fast symlink before swapping the inode block fields. This
1828 required adding a new argument to inocpy_with_swap to
1829 determine whether the mode field is in host order or not.
1830
1831Wed Aug 21 00:45:42 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1832
1833 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit): On
1834 the sparc, if EXT2_STD_BITOPS set, use the standard
1835 i386-compatible bitmask operations, instead on the
1836 non-standard native bitmask operators.
1837
1838Fri Aug 9 11:11:35 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1839
1840 * block.c (ext2fs_block_iterate): Cause block iterator to return
1841 the HURD translator block (along with everything else).
1842 If the flag BLOCK_FLAG_DATA_ONLY is passed to the block
1843 iterator, then don't return any meta data blocks
1844 (including the HURD translator).
1845
1846Wed Jul 17 17:13:34 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1847
1848 * gen_uuid.c: New file, which generates DCE-compatible UUIDs.
1849
1850 * uuid.c: New file, containing UUID utility functions.
1851
1852Tue Jul 16 10:19:16 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1853
1854 * ext2fs.h: Add a definition of the "real" ext2 superblock.
1855
1856Fri May 24 14:54:55 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1857
1858 * ext2fs.h: Fix erroneous ino_t type used in block_bitmap type.
1859
1860Sun May 19 15:39:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1861
1862 * openfs.c (ext2fs_open): If the blocksize in the superblock is
1863 zero, return the error EXT2_ET_CORRUPT_SUPERBLOCK, since
1864 that's a basic value that must be correct for the rest of
1865 the library to work.
1866
1867 * ext2_err.et.in (EXT2_ET_CORRUPT_SUPERBLOCK): Added new error
1868 code.
1869
Theodore Ts'o62c06f71997-04-29 14:34:47 +00001870Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1871
1872 * Release of E2fsprogs version 1.04
1873
Theodore Ts'o7f88b041997-04-26 14:48:50 +00001874Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
1875
1876 * Release of E2fsprogs version 1.03
1877
1878Tue Mar 26 12:06:32 1996 <tytso@rsts-11.mit.edu>
1879
1880 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit):
1881 Change the m68k bit numbering for bitmasks to match with
1882 the bit numbering used by all other ext2 implementations.
1883
1884Thu Mar 7 03:37:00 1996 <tytso@rsts-11.mit.edu>
1885
1886 * inode.c (ext2fs_get_next_inode, ext2fs_close_inode_scan,
1887 ext2fs_open_inode_scan): Support dynamically-sized inodes.
1888
1889Wed Mar 6 12:26:29 1996 <tytso@rsts-11.mit.edu>
1890
1891 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Support
1892 dynamically-sized inodes.
1893
1894 * openfs.c (ext2fs_open): Allow dynamic revision filesystem to be
1895 loaded.
1896
1897Tue Mar 5 03:49:37 1996 <tytso@rsts-11.mit.edu>
1898
1899 * initialize.c (ext2fs_initialize): Catch an error condition where
1900 the passed in size is *really* too small.
1901
1902 * alloc.c (ext2fs_new_inode):
1903 * ext2fs.h (EXT2_FIRST_INODE): Add support for dynamic revision to
1904 get first inode.
1905
1906Wed Feb 21 15:56:17 1996 <tytso@rsts-11.mit.edu>
1907
1908 * getsize.c (ext2fs_get_device_size): Open the device read-only
1909 when trying to determine its size.
1910
Theodore Ts'o74becf31997-04-26 14:37:06 +00001911Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
1912
1913 * Release of E2fsprogs version 1.02
1914
1915Sat Dec 9 09:57:50 1995 <tytso@rsts-11.mit.edu>
1916
1917 * rw_bitops.c (ext2fs_write_block_bitmap):
1918 * bitops.c (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
1919 * bitops.h (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
1920 Rename {test,set,clear}_bit to ext2fs_{test,set,clear}_bit,
1921 to avoid conflicts with with kernel include files. Also
1922 rename ADDR and CONST_ADDR to EXT2FS_ADDR and
1923 EXT2FS_CONST_ADDR.
1924
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001925Thu Oct 26 12:09:16 1995 <tytso@rsts-11.mit.edu>
1926
1927 * ext2_err.et: Updated message in EXT2_ET_BASE to say version 0.5c
1928
1929 * swapfs.c (ext2fs_swap_super): Put an #ifdef check around
1930 s_def_resuid and s_def_resgid for backwards compatibility.
1931
1932Fri Oct 20 23:33:31 1995 <tytso@rsts-11.mit.edu>
1933
1934 * bitops.h: Added #ifdef's for Sparc.
1935
1936Wed Sep 6 22:14:46 1995 <tytso@rsts-11.mit.edu>
1937
1938 * getsize.c: #include <sys/ioctl.h> under Linux to pick up ioctl()
1939 declaration
1940
1941 * closefs.c: #include <string.h> to pick up memset() declaration
1942
1943Mon Sep 4 21:45:29 1995 Remy Card <card@bbj>
1944
1945 * Makefile.in: Added support for BSD shared libraries.
1946
1947 * initialize.c (ext2fs_initialize): Correctly set the s_creator_os
1948 flag.
1949
1950Mon Sep 4 09:55:30 1995 <tytso@rsts-11.mit.edu>
1951
1952 * unix_io.c (unix_open): Add a double check; if the passed in name
1953 is NULL, return EXT2_ET_BAD_DEVICE_NAME.
1954
1955 * ext2_err.et (EXT2_ET_BAD_DEVICE_NAME): Added new error code
1956
1957Wed Aug 16 15:44:10 1995 <tytso@rsts-11.mit.edu>
1958
1959 * inode.c (ext2fs_check_directory): Use LINUX_S_ISDIR instead of
1960 S_ISDIR.
1961
1962Tue Aug 15 13:08:36 1995 <tytso@rsts-11.mit.edu>
1963
1964 * getsize.c (ext2fs_get_device_size): Add support for reading the
1965 partition size from a BSD disk label.
1966
1967Thu Aug 10 09:33:26 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1968
1969 * getsize.c (ext2fs_get_device_size): New function that determins
1970 the size of a device. Used by mke2fs and e2fsck.
1971
1972Sat Aug 12 03:09:54 1995 Remy Card <card@bbj>
1973
1974 * Makefile.in (install): Install static libraries in $(ulibdir)
1975 (/usr/lib on Linux) instead of $(libdir) (/lib on Linux).
1976
1977Wed Aug 9 17:04:23 1995 Theodore Y. Ts'o <tytso@dcl>
1978
1979 * bitmaps.c (ext2fs_free_inode_bitmap, ext2fs_free_block_bitmap):
1980 Move these functions to freefs.c.
1981
1982 * closefs.c (ext2fs_flush): If swapping blocks, clear the group
1983 descriptors shadow memory to keep purify quiet. (This
1984 also has the nice benefit that the unused portion of the
1985 shadow descriptors are zeroed out.)
1986
1987 * dirblock.c (ext2fs_write_dir_block): We need to use
1988 dirent->rec_len *before* it's byteswapped to find the
1989 location of the next directory structure!
1990
1991 * alloc.c (ext2fs_new_inode): Fix bug which could potentially
1992 cause ext2fs_new_inode to loop infinitely if we're trying
1993 to allocate an inode in group #0 and there are no free
1994 inodes at all in the system.
1995
1996 * closefs.c: #include <errno.h> if it exists.
1997
1998Sun Aug 6 13:27:50 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1999
2000 * ext2fs.h (BLOCK_FLAG_HOLE): Added new definition for
2001 BLOCK_FLAG_APPEND. Added documentation for the block
2002 interator flags.
2003
2004Sat Aug 5 11:44:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2005
2006 * Makefile.in (DLL_INSTALL_DIR, ELF_INSTALL_DIR): Set the
2007 installation directories correctly.
2008
2009Tue Jul 18 09:27:38 1995 <tytso@rsx-11.mit.edu>
2010
2011 * namei.c (process_dir_block):
2012 * mkdir.c (ext2fs_mkdir):
2013 * expanddir.c (expand_dir_proc): Use ext2fs_{read,write}_dir_block
2014 to read/write the directory block.
2015
2016 * dirblock.c (ext2fs_read_dir_block), ext2fs_write_dir_block): New
2017 file containing functions for reading and writing
2018 directory blocks (byte swapping if necesssary)
2019
2020 * block.c (block_iterate_ind, block_iterate_dind,
2021 block_iterate_tind): Byte swap the block addresses if
2022 EXT2_SWAP_BYTES is set (and swap them back before writing
2023 them out.)
2024
2025 * inode.c (inocpy_with_swap): New function.
2026 (ext2fs_get_next_inode, ext2fs_read_inode, ext2fs_write_inode):
2027 Call inocpy_with_swap if EXT2_SWAP_BYTES if set.
2028
2029 * closefs.c (ext2fs_flush): If EXT2_SWAP_BYTES is set, then swap
2030 the superblock and group descriptors before writing it out.
2031
2032 * openfs.c (ext2fs_open): If the magic number is byte-swapped,
2033 then set the EXT2_SWAP_BYTES and byte-swap the superblock
2034 and group descriptors.
2035
2036 * swapfs.c (ext2fs_swap_super, ext2fs_swap_group_desc): New functions
2037 to desp ext2 filesystem structures.
2038
2039 * bitops.c (set_bit, clear_bit, test_bit): Use modifications
2040 supplied by Pete A. Zaitcev so that the C language
2041 versions of these functions are more portable. They will
2042 now work on both little and big endian systems, and the
2043 assumption that 32-bit integers are used is gone.
2044
2045 * bitops.h (ext2_swab16, ext2_swab32): Added new functions for
2046 doing byte swapping.
2047
2048 * ext2fs.h (EXT2_SWAP_BYTES): Add new flag which indicates that
2049 byte swapping should take place.
2050
2051Sun Jul 16 06:21:43 1995 <tytso@rsx-11.mit.edu>
2052
2053 * Makefile.in, cmp_bitmaps.c (ext2fs_compare_block_bitmap_end,
2054 ext2fs_compare_inode_bitmap_end): Added new file
2055 containing routines to compare bitmaps.
2056
2057 * ext2_err.et (EXT2_ET_NEQ_BLOCK_BITMAP, EXT2_ET_NEQ_INODE_BITMAP):
2058 Added new error codes.
2059
2060Sat Jul 15 04:23:37 1995 <tytso@rsx-11.mit.edu>
2061
2062 * inode.c (ext2fs_get_next_inode): Don't check scan->inode_buffer;
2063 if the magic number is correct, it will be allocated.
2064
2065Fri Jul 14 19:02:59 1995 <tytso@rsx-11.mit.edu>
2066
2067 * block.c (block_iterate_ind, block_iterate_dind,
2068 block_iterate_tind): Don't recompute block_nr each loop;
2069 just increment it! Factor check of BLOCK_FLAG_APPEND out
2070 of the loop. Factor mask of BLOCK_CHANGED into changed
2071 variable out of the loop. (block_iterate_ind, in
2072 particular, gets called a lot, so every little
2073 optimization helps.)
2074
2075Thu Jul 13 08:02:45 1995 <tytso@rsx-11.mit.edu>
2076
2077 * block.c (block_iterate_ind, block_iterate_dind,
2078 block_iterate_tind): Precompute limit of loop to speed up
2079 block_iterate_ind and company.
2080
2081 * bitops.h (ext2fs_fast_mark_block_bitmap,
2082 ext2fs_fast_unmark_block_bitmap, ext2fs_fast_test_block_bitmap,
2083 ext2fs_fast_mark_inode_bitmap, ext2fs_fast_unmark_inode_bitmap,
2084 ext2fs_fast_test_inode_bitmap): Add fast version of these
2085 functions, which don't do range checking.
2086
2087 * bitops.h (ext2fs_get_block_bitmap_start,
2088 ext2fs_get_inode_bitmap_start, ext2fs_get_block_bitmap_end,
2089 ext2fs_get_inode_bitmap_end): Add new accessor functions
2090 which return the start and end points of the bitmaps.
2091
2092Tue Jul 11 18:59:41 1995 <tytso@rsx-11.mit.edu>
2093
2094 * llseek.c (ext2_llseek): If the offset is small enough, use lseek
2095 instead of llseek. The errno if the offset is too large
2096 and lseek is not supported should be EINVAL, not -EINVAL.
2097
2098Thu Jun 15 23:43:02 1995 Remy Card <card@bbj>
2099
2100 * Makefile.in: Added support for ELF shared libraries.
2101 Fixed typos in the compilation rules.
2102 (distclean): Added Makefile.
2103
2104 * llseek.c (llseek): New function, if llseek() does not exist in the
2105 C library.
2106 (ext2_llseek): Changed to call llseek().
2107
2108Mon Jun 12 08:29:07 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2109
2110 * ext2fs.h: Use __u32 to define blk_t, instead of unsigned long.
2111
2112Sun Jun 11 15:02:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2113
2114 * mkdir.c (ext2fs_mkdir): Use LINUX_S_IFDIR instead of S_IFDIR.
2115
2116 * ext2fs.h (LINUX_S_IFDIR): Define a linux specific versions of
2117 the S_*, which are normally defined in <sys/stat.h>. This
2118 allows us to compile e2fsprogs on a non-Linux system,
2119 which may have a different value for S_IFDIR.
2120
2121Sat Jun 10 23:47:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2122
2123 * bitops.c (clear_bit, set_bit): Remove calls to cli() and sti();
2124 this is a user-mode application!
2125
2126Thu Jun 8 13:13:22 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
2127
2128 * llseek.c: Put the include of <linux/unistd.h> inside the #ifdef
2129 __linux__ so that non-linux systems won't see it.
2130
2131 * alloc.c: Include <errno.h> if possible.
2132 * badblocks.c: Ditto.
2133 * bb_inode.c: Ditto.
2134 * bitmaps.c: Ditto.
2135 * block.c: Ditto.
2136 * expanddir.c: Ditto.
2137 * get_pathname.c: Ditto.
2138 * initialize.c: Ditto.
2139 * inode.c: Ditto.
2140 * llseek.c: Ditto.
2141 * mkdir.c: Ditto.
2142 * namei.c: Ditto.
2143 * newdir.c: Ditto.
2144 * openfs.c: Ditto.
2145 * rw_bitmaps.c: Ditto.
2146 * unix_io.c: Ditto.
2147
2148 * Makefile.in: Rewritten to conform to GNU coding standards and
2149 support separate compilation directories.
2150
2151Thu May 11 04:13:12 1995 <tytso@rsx-11.mit.edu>
2152
2153 * initialize.c (ext2fs_initialize): Don't allow more than one
2154 bitmaps's worth of inodes in a group.
2155
Theodore Ts'of3db3561997-04-26 13:34:30 +00002156Sat Mar 11 14:07:11 1995 Theodore Y. Ts'o <tytso@localhost>
2157
2158 * llseek.c (ext2_llseek): Added error checking to the llseek()
2159 compat code to protect against overflow. This only
2160 applies to 1.0 and early 1.1 kernels, which don't support
2161 the llseek() system call.
2162
2163Thu Nov 24 16:29:00 1994 Theodore Y. Ts'o (tytso@rt-11)
2164
2165 * unix_io.c (unix_open): Initialize the read_error and write_error
2166 io_channel pointers to be null.
2167
2168 * bb_inode.c (clear_bad_block_proc): If an illegal block number is
2169 found, clear it but don't try to update the filesystem
2170 accounting information, since that's hopeless anyway.
2171
2172 * block.c (bloblock_iterate_ind, bloblock_iterate_dind,
2173 bloblock_iterate_tind): Check to see if the indirect blocks are
2174 valid before trying to read them.
2175
2176 * ext2_err.et (EXT2_ET_BAD_IND_BLOCK, EX2_ET_BAD_DIND_BLOCK,
2177 EXT2_ET_BAD_TIND_BLOCK): Add new error codes.
2178
2179 * bitops.h (ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
2180 ext2fs_test_block_bitmap, ext2fs_mark_inode_bitmap,
2181 ext2fs_unmark_inode_bitmap, ext2fs_test_inode_bitmap): If an
2182 illegal block or inode number is passed in, return instead
2183 of trying to test, set, or clear the bit.
2184
2185Mon Nov 7 21:32:33 1994 Remy Card <card@bbj>
2186
2187 * Makefile: Added a dummy install target in case shared libraries
2188 are not built.
2189
2190Mon Oct 24 14:11:44 1994 (tytso@rsx-11)
2191
2192 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix calculation of how
2193 the real last block of the bitmap should be calculated.
2194
2195Wed Sep 7 10:05:36 1994 (tytso@rsx-11)
2196
2197 * bitmaps.c (ext2fs_fudge_inode_bitmap_end,
2198 ext2fs_fudge_block_bitmap_end, ext2fs_clear_inode_bitmap,
2199 ext2fs_clear_block_bitmap, ext2fs_free_inode_bitmap,
2200 ext2fs_free_block_bitmap): Add magic number checking for
2201 the inode and block bitmaps.
2202
2203 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix to set the correct
2204 magic number for a block bitmap instead of an inode bitmap.
2205
2206 * inode.c (ext2fs_close_inode_scan, ext2fs_get_next_inode): Add
2207 magic number checking for the inode_scan structure.
2208
2209 * badblocks.c (badblocks_list_free, badblocks_list_add,
2210 badblocks_list_test, badblocks_list_iterate_begin,
2211 badblocks_list_iterate, badblocks_list_iterate_end): Add
2212 magic number checking for the badblocks_list and
2213 badblocks_iterate structures.
2214
2215 * ext2_err.et (EXT2_ET_MAGIC_UNIX_IO_CHANNEL):
2216 * unix_io.c (unix_open, unix_close, unix_set_blksize, unix_read_blk,
2217 unix_write_blk, unix_flush): Add magic number checking
2218 both for io_channel structure and unix_private_data
2219 structure.
2220
2221 * openfs.c (ext2fs_open): Add check for io_manager structure's
2222 magic number.
2223
2224 * rw_bitmaps.c (ext2fs_write_inode_bitmap, ext2fs_write_block_bitmap,
2225 ext2fs_read_inode_bitmap, ext2fs_read_block_bitmap,
2226 ext2fs_read_bitmaps, ext2fs_write_bitmaps):
2227 * read_bb.c (ext2fs_read_bb_inode):
2228 * read_bb_file.c (ext2fs_read_bb_FILE):
2229 * newdir.c (ext2fs_new_dir_block):
2230 * namei.c (ext2fs_dir_iterate, ext2fs_lookup, ext2fs_namei):
2231 * link.c (ext2fs_link, ext2fs_unlink):
2232 * inode.c (ext2fs_open_inode_scan, ext2fs_read_inode,
2233 ext2fs_write_inode, ext2fs_get_blocks,
2234 ext2fs_check_directory):
2235 * get_pathname.c (ext2fs_get_pathname):
2236 * expanddir.c (ext2fs_expand_dir):
2237 * block.c (ext2fs_block_iterate):
2238 * bitmaps.c (ext2fs_allocate_inode_bitmap,
2239 ext2fs_allocate_block_bitmap):
2240 * bb_inode.c (ext2fs_update_bb_inode):
2241 * alloc.c (ext2fs_new_inode,ext2fs_new_block,ext2fs_get_free_blocks):
2242 * check_desc.c (ext2fs_check_desc):
2243 * closefs.c (ext2fs_close, ext2fs_flush):
2244 * freefs.c (ext2fs_free): Add check for ext2_filsys magic number.
2245
2246 * Makefile:
2247 * ext2fs.h:
2248 * openfs.c:
2249 * check_desc.c (ext2fs_check_desc): Move ext2fs_check_desc from
2250 openfs.c into its own file.
2251
2252 * ext2fs.h (EXT2_CHECK_MAGIC): Added macro for checking for
2253 structure magic numbers.
2254
2255 * closefs.c (ext2fs_flush): Folded in Remy Card's changes to clear
2256 the EXT2_VALID_FS flag in the backup superblock blocks, so that if
2257 someone uses the -b option to specify the use of the backup
2258 superblock --- this usually means that the main superblock is
2259 toast. :-)
2260
2261 * ext2fs.h:
2262 * ext2_err.et (EXT2_ET_REV_TOO_HIGH):
2263 * openfs.c (ext2fs_open): Folded in Remy Card's changes to add a
2264 revision level to the superblock.
2265
2266Sun Aug 21 00:50:08 1994 Theodore Y. Ts'o (tytso@rt-11)
2267
2268 * ext2fs.h:
2269 * bitmaps.c:
2270 * bitops.c
2271 * bitops.h:
2272 * openfs.c:
2273 * initialize.c: Completely revamped the inode and block bitmap
2274 structures, so that they can be better chance of being extensible
2275 in a shared library. They are now their own type, instead of
2276 being a char *. Also, the function signatures of
2277 ext2fs_test_block_bitmap, ext2fs_mark_block_bitmap,
2278 ext2fs_unmark_block_bitmap, ext2fs_test_inode_bitmap,
2279 ext2fs_mark_inode_bitmap, and ext2fs_unmark_inode_bitmap were
2280 changed to eliminate the ext2_filsys argument, since it is no
2281 longer necessary.
2282
2283Wed Aug 17 21:46:44 1994 Remy Card (card@bbj)
2284
2285 * unix_io.c (unix_read_blk and unix_write_blk): use the llseek
2286 system call if available.
2287
2288 * llseek.c: new file. This is the stub calling the llseek system
2289 call which allows supports for 2GB+ file systems.
2290
2291 * initialize.c (ext2fs_initialize): Ext2fs_initialize now stores
2292 the creator operating system.
2293
2294Wed Aug 17 10:03:24 1994 Theodore Y. Ts'o (tytso@rt-11)
2295
2296 * initialize.c (ext2fs_initialize): Ext2fs_initialize now sets up
2297 the group descriptor statistics in addition to everything else.
2298 This relieves mke2fs of the responsibility of doing it.
2299
2300 * bitops.c, bitops.h: Add assembly inline functions for the 68000.
2301 Added a new #define, _EXT2_HAVE_ASM_BITOPS_ to control whether or
2302 not the generic C function equivalents should be included or not.
2303
2304 * openfs.c (ext2fs_open): If a superblock is specified, then use
2305 the backup group descriptors that go along with this superblock,
2306 instead of using the primary group descriptors. This allows
2307 e2fsck to recover filesystems where the primary group descriptors
2308 have been trashed.
2309
2310