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