blob: bf0ae7b5b955ab9ba9f868979eb4f23e7d4ac075 [file] [log] [blame]
Theodore Ts'o0684a4f2002-08-17 10:19:44 -040012002-08-16 Theodore Ts'o <tytso@mit.edu>
2
3 * ext2_err.et.in (EXT2_ET_BAD_EA_BLOCK_NUM): New error code
4
5 * ext2fs.h (ext2fs_inode_data_blocks): New function which returns
6 the number of data blocks used by an inode exclusive of
7 the EA block.
8
9 * ext_attr.c (ext2fs_adjust_ea_refcount): New function which
10 adjusts the reference count in an extended attribute block.
11
12 * valid_blk.c (ext2fs_inode_has_valid_blocks): Add code to
13 correctly deal with extended attribute blocks in symbolic
14 links.
15
Theodore Ts'o917e8752002-08-13 15:16:47 -0400162002-08-13 <tytso@snap.thunk.org>
17
18 * Makefile.in: Move dupfs.o and test_io.o from the
19 needed-by-debugfs object list to the needed-by-resizer
20 object list. Fixes compile problem if the system is built
21 with only --disable-debugfs.
22
Theodore Ts'ofe4dd422002-07-29 19:26:33 -0400232002-07-29 Theodore Ts'o <tytso@mit.edu>
24
25 * link.c (ext2fs_link): When adding a new link to a directory,
26 clear the HTREE bit.
27
Theodore Ts'occ90bdf2002-07-23 13:11:53 -0400282002-07-23 Theodore Ts'o <tytso@mit.edu>
29
30 * dirhash.c (ext2fs_dirhash): Fix bug which caused MD4
31 calculations for names > 32 characters to be completely
32 bogus. Changed MD4 calculation to match what is currently
33 being used in the CVS gkernel tree.
34
Theodore Ts'o3ea1f0f2002-07-19 22:30:37 -0400352002-07-19 Theodore Ts'o <tytso@mit.edu>
36
Theodore Ts'ob7a00562002-07-20 00:28:07 -040037 * ext2_fs.h: Add s_hash_seed and s_def_hash_version to the
38 superblock definition.
39
40 * badblocks.c, freefs.c, ext2fs.h: Use the badblocks functions to
41 create a set of u32_list functions.
42
Theodore Ts'o3ea1f0f2002-07-19 22:30:37 -040043 * dirhash.c (halfMD4Transform): Shift the hash by one bit,
44 since that's required by the directory indexing code.
45
Theodore Ts'of154d2f2002-07-14 08:33:32 -0400462002-07-14 Theodore Ts'o <tytso@mit.edu>
47
Theodore Ts'o50cd7e02002-07-14 16:00:50 -040048 * ext2fs.h, read_bb_file.c: Change private to priv_data, to avoid
49 using a C++ reserved word.
50
Theodore Ts'of154d2f2002-07-14 08:33:32 -040051 * unix_io.c (unix_open): Only attempt the setrlimit workaround if
52 the kernel version is 2.4.10 -- 2.4.17, since otherwise an
53 old version of glibc (built against 2.2 headers) will
54 interact badly with the workaround to actually cause more
55 problems. I hate it when the glibc folks think they're
56 being smarter than the kernel....
57
Theodore Ts'o9e6c5dd2002-07-09 11:08:10 -0400582002-06-28 Andreas Dilger <adilger@clusterfs.com>
59
60 * ext2_fs.h: Add superblock field for reserved group descriptors.
61
Theodore Ts'o2cb403b2002-06-28 08:10:29 -0400622002-06-28 Theodore Ts'o <tytso@mit.edu>
63
64 * bitops.h: Add #define's for ext2fs_{l,b}e{32,16}_to_cpu and
65 ext2fs_cpu_to_{l,b}e{32,16}
66
Theodore Ts'o5818d672002-06-27 21:19:45 -0400672002-06-27 Theodore Ts'o <tytso@mit.edu>
68
69 * ismounted.c (check_mntent): In AIX 4.3, MOUNTED isn't defined.
70 Add appropriate fallbacks in this case.
71
Theodore Ts'o503f9e72002-06-26 16:52:10 -0400722002-06-26 Theodore Ts'o <tytso@mit.edu>
73
74 * dirhash.c (ext2fs_dirhash): Change function signature to support
75 a hash seed, and to return the minor hash (for 64-bit hash
76 support). Add support for the half MD4, half MD4 with
77 seed, and half MD4 with seed and 64 bits.
78
Theodore Ts'o88372d52002-06-15 18:58:39 -0400792002-06-15 Theodore Ts'o <tytso@mit.edu>
80
81 * ext2_fs.h (EXT2_DIRSYNC_FL): Add new file.
82
Andreas Dilger7da78ff2002-06-09 17:38:50 -0600832002-06-09 Andreas Dilger <adilger@clusterfs.com>
84
Andreas Dilgerb21bf262002-06-10 11:05:56 -060085 * ext2_fs.h: Add macros for maximum block/inode counts:
86 EXT2_INODES_PER_BLOCK, EXT2_MAX_BLOCKS_PER_GROUP,
87 and EXT2_MAX_INODES_PER_GROUP.
88
89 * openfs.c (ext2fs_open): Check that the number of blocks in a group
90 is less than 2^16, otherwise we need an INCOMPAT flag (not
91 in existence yet, if ever) to open such a filesystem.
92
93 * initialize.c (ext2fs_initialize): Limit the number of blocks and
94 inodes in a group to less than 2^16.
95
962002-06-09 Andreas Dilger <adilger@clusterfs.com>
97
Andreas Dilger7da78ff2002-06-09 17:38:50 -060098 * ext2_fs.h: Further minor cleanups of the header. Consolidate
99 some checks for __KERNEL__ into one place.
100
Andreas Dilger0fbd1a82002-05-23 00:32:34 -06001012002-05-22 Andreas Dilger <adilger@clusterfs.com>
102
103 * ext2_fs.h: Remove macros accessing u.ext2_sb field and use
104 the EXT2_SB() macro instead. Remove kernel function
105 prototypes also. This matches the 2.5 kernel, and
106 is also cleaner for other reasons. Whitespace cleanup.
107
Theodore Ts'o0d634672002-05-22 00:22:38 -04001082002-05-21 Theodore Ts'o <tytso@mit.edu>
109
110 * ext2_ext_attr.h: Update to V2 version of the Bestbits format.
111
Theodore Ts'o31e29a12002-05-17 10:53:07 -04001122002-05-16 Andreas Dilger <adilger@clusterfs.com>
113
114 * ext2_fs.h: Change limits to support filesystems with 8k blocks.
115
116 * initialize.c (ext2fs_initialize): Remove assumption that
117 blocksizes are always <= 4k.
118
1192002-05-11 Theodore Ts'o <tytso@mit.edu>
Theodore Ts'ob38cd282002-05-11 22:13:20 -0400120
121 * bmap.c (ext2fs_bmap): Fix bug which caused ext2fs_bmap to fail
122 silently if inode pointer is NULL (and ext2fs_bmap is
123 expected to read the inode itself).
124
Theodore Ts'o31e29a12002-05-17 10:53:07 -04001252002-04-27 Theodore Ts'o <tytso@mit.edu>
Theodore Ts'of0efd292002-04-27 17:07:52 -0400126
127 * ismounted.c (check_mntent_file, is_swap_device): Verify that the
128 file we are checking is a block device file before looking
129 at st_rdev, since it's not valid for normal files.
130 (is_swap_device): Move so that it is outside the
131 HAVE_MNTENT_H, so that it is always built.
132
Theodore Ts'o52783e02002-03-11 15:04:45 -05001332002-03-11 Theodore Tso <tytso@mit.edu>
134
Theodore Ts'of9190c82002-03-12 01:05:06 -0500135 * dirblock.c (ext2fs_read_dir_block2, ext2fs_write_dir_block): New
136 functions which take an extra flags argument. The flag
137 EXT2_DIRBLOCK_V2_STRUCT will reverse when the name_len
138 field is byte swampped on big-endian machines, since in
139 the V2 structure, name_len is a char field which is
140 doesn't need to be byte swapped --- except if an
141 old-style kernel had byte-swapped the name_len field
142 as part of the V1 structure.
143
Theodore Ts'o52783e02002-03-11 15:04:45 -0500144 * ext2_err.et.in (EXT2_ET_DIRHASH_UNSUPP): New error code
145
146 * dirhash.c (ext2fs_dirhash): New function which calculates the
147 hash for a filename in an indexed directory.
148
Theodore Ts'oa8e77242002-03-08 03:12:14 -05001492002-03-08 Theodore Tso <tytso@mit.edu>
150
151 * Release of E2fsprogs 1.27
152
Theodore Ts'o304905d2002-03-07 20:55:01 -05001532002-03-07 Theodore Tso <tytso@mit.edu>
154
Theodore Ts'o546a1ff2002-03-07 23:52:56 -0500155 * ext2fs.h (ext2fs_inode_io_intern): Add missing function prototype.
156
157 * bmap.c, fileio.c, inode_io.c, tst_badblocks.c,
158 tst_byteswap.c: Fix gcc -Wall complaints
159
Theodore Ts'o304905d2002-03-07 20:55:01 -0500160 * Makefile.in (check): Use LD_LIBRARY_PATH to run test programs.
161 (From Philipp Thomas <pthomas@suse.de>)
162
Theodore Ts'o57173d02002-02-26 14:59:39 -05001632002-02-25 Theodore Tso <tytso@mit.edu>
Theodore Ts'odf614db2002-02-25 04:28:45 -0500164
165 * ext2_fs.h: Add structure definitions for the directory indexing
166 extension.
167
Theodore Ts'o57173d02002-02-26 14:59:39 -05001682002-02-23 Theodore Tso <tytso@mit.edu>
Theodore Ts'o64e1b272002-02-23 18:50:32 -0500169
170 * unix_io.c (unix_open): Fix 2.4 resource limit workaround so that
171 it doesn't break things on mis32, sparc32, and alpha
172 platforms.
173
Theodore Ts'o57173d02002-02-26 14:59:39 -05001742002-02-21 Theodore Tso <tytso@mit.edu>
Theodore Ts'of3e3d312002-02-21 20:48:25 -0500175
176 * ismounted.c (is_swap_device): Fix file descriptor/memory leak;
177 we were missing an fclose().
178
Theodore Ts'o57173d02002-02-26 14:59:39 -05001792002-02-20 Theodore Tso <tytso@mit.edu>
Theodore Ts'of12e2852002-02-20 01:06:25 -0500180
181 * Makefile.in, inode_io.c, ext2fs.h, ext2_err.et.in: Add new io
182 abstraction interface which exports an ext2 inode.
183
Theodore Ts'of3e3d312002-02-21 20:48:25 -0500184 * ext2fs.h, fileio.c (ext2fs_file_flush): Export ext2fs_file_flush
185 as a public interface. Change void * to const void * in
186 ext2fs_file_write's interface.
Theodore Ts'of12e2852002-02-20 01:06:25 -0500187
188 * test_io.c (test_close), unix_io.c (unix_close): Remove unneeded
189 conditional; save a few bytes.
190
Theodore Ts'o57173d02002-02-26 14:59:39 -05001912002-02-12 Theodore Tso <tytso@mit.edu>
Theodore Ts'o7d4343d2002-02-12 02:34:44 -0500192
193 * Makefile.in (tst_badblocks): Add some extra .o files when
194 linking the debugging program tst_badblocks which are
195 needed if we aren't compiling with inline functions enable.
196
197 * kernel-list.h (__inline__): On non-gcc and non-Watcom compilers,
198 define away __inline__ since it may not be supported.
199
200 * kernel-jbd.h (jbd_debug): For systems that don't do STDC, use a
201 stripped down jbd_debug that doesn't use variadic
202 arguments. This will cause warnings under AIX, but things
203 should still build.
204
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05002052002-02-03 Theodore Tso <tytso@thunk.org>
206
207 * Release of E2fsprogs 1.26
208
Theodore Ts'o57173d02002-02-26 14:59:39 -05002092002-02-03 Theodore Tso <tytso@mit.edu>
Theodore Ts'o7f961d42002-02-03 01:28:52 -0500210
211 * mkdir.c (ext2fs_mkdir): Change to use ext2fs_inode_alloc_stats2
212 so that the number of directories in use is adjusted
213 appropriately.
214
215 * alloc_stats.c (ext2fs_inode_alloc_stats2): Add new function
216 which optionally will modify the number of directories
217 count.
218
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05002192002-01-03 Theodore Tso <tytso@mit.edu>
Theodore Ts'o8bd0c952002-01-03 03:29:19 -0500220
221 * dir_iterate.c (ext2fs_dir_iterate2, ext2fs_process_dir_block):
222 Add support for a new flag, DIRENT_FLAG_INCLUDE_REMOVED,
223 which will return deleted directory entries.
224 ext2fs_dir_iterate2 takes a new callback function which
225 is identical with the one used by
226 ext2fs_dblist_dir_iterate(). If the directory entry is
227 deleted, the callback function will be called with the
228 entry paraemter set to DIRENT_DELETED_FILE.
229
230 * Makefile.in, alloc_stats.c (ext2fs_inode_alloc_stats,
231 ext2fs_block_alloc_stats): New functions which update
232 block/inode allocation statistics in the bitmaps, block
233 group descriptors, and superblock.
234
235 * mkjournal.c (mkjournal_proc), mkdir.c (ext2fs_mkdir),
236 expanddir.c (expand_dir_proc), bb_inode.c
237 (clear_bad_block_proc, set_bad_block_proc,
238 ext2fs_update_bb_inode), alloc.c (ext2fs_alloc_block):
239 Update to use new block/inode allocation statistics.
240
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05002412001-12-24 Theodore Tso <tytso@mit.edu>
Theodore Ts'oa8fd6e32001-12-24 01:40:35 -0500242
Theodore Ts'o07cefe72001-12-24 15:20:22 -0500243 * ismounted.c (is_swap_device): New function used by
244 ext2fs_check_if_mounted and ext2fs_check_mount_point which
245 determines whether or not the specified device is a swap
246 device by using /proc/swaps. More bulletproofing for
247 idiotic/careless system administrators!
248
Theodore Ts'o6a525062001-12-24 09:40:00 -0500249 * ext2fs.h, openfs.c (ext2fs_open), initialize.c
250 (ext2fs_initialize), mkdir.c (ext2fs_mkdir): Add a new
251 field to struct_ext2_filsys, umask. This field is
252 initialize to 022, and affects ext2fs_mkdir in the obvious
253 way. (In the future umask should also affect new file
254 creation routines, but the fileio functions don't
255 currently support this yes.)
256
Theodore Ts'oa8fd6e32001-12-24 01:40:35 -0500257 * ismounted.c (check_mntent_file): Stat all of the entries in
258 /etc/mtab and/or /proc/mounts in order to catch dim-witted
259 system administrators who might have created alias
260 devices.
261
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05002622001-12-23 Theodore Tso <tytso@mit.edu>
Theodore Ts'o19007e52001-12-23 19:33:51 -0500263
264 * Makefile.in, jfs_user.h: Move linux/jbd.h to
265 ext2fs/kernel-jbd.h, to avoid using the system header
266 file version of hbd.h when using diet glibc (since it
267 forcibly adds /usr/include to the beginning of the
268 include search path.)
269
270 * kernel-jbd.h, kernel-list.h, jfs_compat.h: Move files from
271 include/linux directory.
272
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05002732001-12-16 Theodore Tso <tytso@mit.edu>
Theodore Ts'o8cf93332001-12-16 02:23:36 -0500274
Theodore Ts'o4ea7bd02001-12-16 23:23:37 -0500275 * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap),
276 ext_attr.c (ext2fs_read_ext_attr, ext2fs_write_ext_attr),
277 fileio.c (ext2fs_file_write): Fix gcc -Wall nits
278
Theodore Ts'o8cf93332001-12-16 02:23:36 -0500279 * Makefile.in, jfs_user.h: linux/jfs.h has been renamed to
280 linux/jbd.h
281
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05002822001-12-03 Theodore Tso <tytso@mit.edu>
Theodore Ts'obd278802001-12-03 05:47:32 +0100283
284 * unix_io.c (unix_open): Make sure the ulimit workaround works
285 regardless of the version of glibc which is used to
286 compild e2fsprogs.
287
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05002882001-11-26 Theodore Tso <tytso@mit.edu>
Theodore Ts'o8880e752001-11-26 21:05:36 -0500289
290 * unix_io.c (unix_open): Work around a bug in 2.4.10+ kernels by
291 trying to unset the filesize limit if at all possible,
292 if a block device is getting opened. (The filesize limit
293 shouldn't be applied against writes to a block device, but
294 starting in 2.4.10, the kernel is doing this.)
295
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05002962001-11-05 Theodore Tso <tytso@mit.edu>
Theodore Ts'ob3f5b4c2001-11-05 19:22:02 -0500297
Theodore Ts'o5bc28df2001-11-09 17:34:54 -0500298 * mkjournal.c (ext2fs_add_journal_inode): When creating a .journal
299 file on adding a journal to an already-mounted filesystem,
300 try to clear the ext2 file attributes on an already
301 existing .journal file so that we don't fail if on a
302 partially added journal to the filesystem.
303
Theodore Ts'ob3f5b4c2001-11-05 19:22:02 -0500304 * ext2_fs.h: Define a new ext2 file attribute, EXT2_NOTAIL_FL,
305 which signals that a particular inode should not have the
306 last bits of data (the "tail") be merged with another
307 file. This is necessary to keep LILO happy.
308
Theodore Ts'ofbf91112001-09-20 10:47:47 -04003092001-09-20 Theodore Tso <tytso@thunk.org>
310
311 * Release of E2fsprogs 1.25
312
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05003132001-09-16 Theodore Tso <tytso@mit.edu>
Theodore Ts'o7746cad2001-09-17 00:02:21 -0400314
315 * ext2_ext_attr.h: Remove unneeded #include of <linux/config.h>
316 which was breaking the build on the Hurd. (Addresses
317 Debian bug #112414).
318
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05003192001-09-13 Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o2038b632001-09-14 07:44:25 -0400320
321 * ismounted.c (check_mntent_file): We now validate the entry in
322 /etc/mtab to make sure the filesystem is really mounted,
323 since some broken distributions (read: Slackware) have
324 buggy boot scripts that don't initialize /etc/mtab before
325 checking non-root filesystems. (Slackware also doesn't
326 check the root filesystem separately, and reboot if the
327 root filesystem had changes applied to it, which is
328 dangerous and broken.)
329
Theodore Ts'ofb707752001-09-04 15:00:37 -04003302001-09-02 Theodore Tso <tytso@thunk.org>
331
332 * Release of E2fsprogs 1.24a
333
Theodore Ts'o109624a2001-08-31 00:59:55 -04003342001-08-30 Theodore Tso <tytso@thunk.org>
335
336 * Release of E2fsprogs 1.24
337
Theodore Ts'oeddeb562001-08-30 17:24:02 -04003382001-08-30 Theodore Tso <tytso@valinux.com>
339
340 * getsize.c (ext2fs_get_device_size): Back out BLKGETSIZE64
341 changes, since the ioctl number has been reused by another
342 unofficial patch.
343
Theodore Ts'o943ed872001-08-27 12:29:22 -04003442001-08-15 Theodore Tso <tytso@valinux.com>
345
346 * Release of E2fsprogs 1.23
347
Theodore Ts'o89a6ebd2001-08-05 20:31:09 -04003482001-08-05 Theodore Tso <tytso@valinux.com>
349
350 * alloc.c (ext2fs_new_inode, ext2fs_new_block): Use the fast
351 version of the bitmap test routines to speed up these
352 routines. (At some point I may want to make these
353 routines use the find_first_bit functions, but that will
354 add a lot of complexity since it means that these
355 functions will have to break the bitmap abstraction
356 boundary. It's not clear it's worth it.)
357
358 * mkjournal.c (mkjournal_proc): Remember the last block allocated
359 to speed up ext2fs_new_block().
360
Theodore Ts'o37517212001-07-29 12:01:09 -04003612001-07-29 Theodore Tso <tytso@valinux.com>
362
363 * finddev.c (scan_dir): Fix memory leak; we weren't calling
364 closedir() when exiting the function in all cases.
365
Theodore Ts'of35e6442001-07-27 15:35:21 -04003662001-07-27 Theodore Tso <tytso@valinux.com>
367
Theodore Ts'o4e40f6c2001-07-27 23:33:40 -0400368 * mkjournal.c (ext2fs_create_journal_superblock): Set the first
369 block usable in the journal for external journals to be 2
370 or 3, depending on the blocksize, so that the existing
371 kernel code does the right thing.
372
Theodore Ts'o343fa652001-07-27 22:15:06 -0400373 * getsize.c (ext2fs_get_device_size): Add support for the
374 BLKGETSIZE64 ioctl. (Ioctl defined by unofficial patches
375 from Ben LaHaise, but it's likely this interface won't
376 change.)
377
Theodore Ts'of35e6442001-07-27 15:35:21 -0400378 * mkjournal.c (ext2fs_add_journal_device): Use the correct block
379 when writing the journal superblock, too. (Oops! Needed
380 to make 1k filesystems with external journal to work.)
381
Theodore Ts'o36131b32001-07-26 23:44:39 -04003822001-07-26 Theodore Tso <tytso@valinux.com>
383
384 * mkjournal.c (ext2fs_add_journal_device): Use the correct block
385 to find the journal superblock if the blocksize is 1024.
386
Theodore Ts'oadee8d72001-07-23 00:17:49 -04003872001-07-21 Theodore Tso <tytso@valinux.com>
388
389 * ext2_err.et.in (EXT2_ET_LOAD_EXT_JOURNAL): Add new error code
390
Theodore Ts'o6ae296e2001-07-20 12:33:37 -04003912001-07-20 Theodore Tso <tytso@valinux.com>
392
Theodore Ts'o241f7d22001-07-20 14:17:19 -0400393 * ext_attr.c (ext2fs_write_ext_attr): When writing the extended
394 attribute block, set the filesystem changed bit.
395
Theodore Ts'o6ae296e2001-07-20 12:33:37 -0400396 * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set):
397 Comment out these functions since we're not using them.
398
Theodore Ts'o3c6b8972001-07-10 14:27:58 -04003992001-07-10 Theodore Tso <tytso@valinux.com>
400
401 * closefs.c (write_primary_superblock): After writing changes to
402 the primary superblock, update the original superblock
403 copy so we don't have to re-write those changes in the
404 future.
405 (ext2fs_flush): Clear the superblock dirty flag after
406 we've flushed out changes to disk.
407
Theodore Ts'of41e7e62001-07-07 22:14:23 -04004082001-07-07 Theodore Tso <tytso@valinux.com>
409
410 * bitops.h (ext2fs_find_first_bit_set): Use %esi instead of %ebx
411 to avoid register conflicts when compiling in PIC mode.
412
Theodore Ts'oac493822001-07-04 14:04:58 -04004132001-07-04 Theodore Tso <tytso@valinux.com>
414
415 * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set):
416 Add new functions (C and in i386 assembler) which quickly
417 find bits set in a bitmask.
418
Theodore Ts'o67960132001-06-23 00:16:37 -04004192001-06-23 Theodore Tso <tytso@valinux.com>
420
Theodore Ts'o342d8472001-07-02 11:54:09 -0400421 * Makefile.in, ext_attr.c, ext2_attr.c, ext2fs.h: Add new files
422 ext2_ext_attr.h and ext_attr.c for extended attributes
423 support.
424
Theodore Ts'o67960132001-06-23 00:16:37 -0400425 * Release of E2fsprogs 1.22
426
Theodore Ts'o89a1fa82001-06-22 20:40:51 -04004272001-06-22 Theodore Tso <tytso@valinux.com>
428
Theodore Ts'ob23520d2001-06-22 21:52:14 -0400429 * mkjournal.c (ext2fs_add_journal_inode): Move close of file
430 descriptor so that adding a journal to a mounted
431 filesystem doesn't die. (Fixes a bug accidentally
432 introduced in e2fsprogs 1.21.)
433
Theodore Ts'o78332622001-06-22 21:20:47 -0400434 * mkjournal.c (ext2fs_add_journal_inode): Only use fchflags if
435 HAVE_CHFLAGS and UF_NODUMP are defined, since the Hurd has
436 fchflags without defining UF_NODUMP. (Addresses Debian
437 bug #101361)
438
Theodore Ts'od90f3492001-06-22 21:01:17 -0400439 * flushb.c: Use platform independent method of defining the
440 BLKFLSBUF and FDFLUSH ioctl's. Also include sys/mount.h
441 since on newer glibc's BLKFLSBUF is defined there.
442
Theodore Ts'o16645f82001-06-22 20:54:11 -0400443 * bitops.h: The C language versions of ext2fs_swab16/32 need to be
444 included if EXT2FS_ENABLE_SWAPFS is defined, since we need
445 to support byte swapping even if we don't support the
446 conversion functions. (Fixes Debian bug #101686).
447
Theodore Ts'o89a1fa82001-06-22 20:40:51 -0400448 * dirblock.c (ext2fs_read_dir_block): Remove use of dir_entry_2
449 since the byte-swapping code all assumes the
450 ext2_dir_entry structure. (It's a question of whether or
451 not name_len should be byte-swapped or not, and whether
452 it's a 16 bit or 8 bit field.)
453
Theodore Ts'o997b8202001-06-15 18:33:43 +00004542001-06-15 Theodore Tso <tytso@valinux.com>
455
Theodore Ts'of4f75ba2001-06-16 01:14:28 +0000456 * Release of E2fsprogs 1.21
457
4582001-06-15 Theodore Tso <tytso@valinux.com>
459
Theodore Ts'od1e66b72001-06-15 22:44:32 +0000460 * Makefile.in: Fix bug in installation of ext2_types.h. It is a
461 file which is generated and is therefore found in the
462 build directory, not source directory.
463
Theodore Ts'o997b8202001-06-15 18:33:43 +0000464 * ismounted.c (check_mntent_file): Use a test file in / to check
465 to see if the root filesystem is mounted read-only. This
466 protects against the case where /etc might not be on /, as
467 well as the case where /etc/mtab doesn't exist. (Both are
468 should-never happen scenarios, but you never know...)
469
Theodore Ts'o6bd13482001-06-14 07:00:55 +00004702001-06-14 Theodore Tso <tytso@valinux.com>
471
472 * ismounted.c (ext2fs_check_if_mounted): Fix grammer in comment.
473 Remove unneeded #pragma argsused, since the arguments are
474 always used.
475
Theodore Ts'o30ae14c2001-06-13 22:38:56 +00004762001-06-13 Theodore Tso <tytso@valinux.com>
477
Theodore Ts'o65794882001-06-14 00:24:42 +0000478 * ext2_types.h.in: If linux/types.h has been defined, then don't
479 try to redefine the typedefs.
480
Theodore Ts'o364a3732001-06-13 23:46:39 +0000481 * Makefile.in (HFILES): Add ext2_types.h to the list of files
482 which should be installed.
483
Theodore Ts'o66a46142001-06-13 23:26:19 +0000484 * ismounted.c (check_mntent_file): Work around GNU hurd brain
Theodore Ts'o83d5abf2001-06-13 23:31:27 +0000485 damage. Addresses Debian bug #100304.
Theodore Ts'o66a46142001-06-13 23:26:19 +0000486
Theodore Ts'o30ae14c2001-06-13 22:38:56 +0000487 * Makefile.in: Limit some .o files from being included into the
488 library if --disable-debugfs, --disable-swapfs,
489 --disable-imager, or --disable-resizer are used.
490
Theodore Ts'ocbbf0312001-06-13 00:12:04 +00004912001-06-12 Theodore Tso <tytso@valinux.com>
492
493 * inode.c, tst_iscan.c: Stop using the compatibility badblocks
494 function, and use the ext2fs_badblocks_* functions
495 instead.
496
Theodore Ts'o5df55d72001-06-11 07:00:04 +00004972001-06-11 Theodore Tso <tytso@valinux.com>
498
Theodore Ts'o3034f622001-06-11 15:17:45 +0000499 * Makefile.in, gen_bitmap.c, bitops.h: Move inline functions
500 ext2fs_mark_generic_bitmap and
501 ext2fs_unmark_generic_bitmap to gen_bitmap.c as normal
502 functions. (This saves space and doesn't significantly
503 change the speed of e2fsck on a P-III.)
504
Theodore Ts'o5df55d72001-06-11 07:00:04 +0000505 * ext2fs.h, bitops.h, block.c, bmap.c, closefs.c, dirblock.c,
506 inode.c, native.c, openfs.c, rw_bitmaps.c, swapfs.c: Only
507 include the byte-swapping logic if ENABLE_SWAPFS is turned
508 on or if we're on a big-endian machine.
509
510 * initialize.c (ext2fs_initialize):Use WORDS_BIGENDIAN directly to
511 set EXT2_FLAG_SWAP_BYTES, instead of using
512 ext2fs_native_flag.
513
514 * native.c (ext2fs_native_flag): Use WORDS_BIGENDIAN provided by
515 autoconf to determine whether or not return
516 EXT2_FLAG_SWAP_BYTES.
517
Theodore Ts'o349a4842001-06-11 00:49:29 +00005182001-06-10 Theodore Tso <tytso@valinux.com>
519
520 * Makefile.in: Remove the dependence on the libe2p library.
521
522 * mkjournal.c (ext2fs_add_journal_inode): Replace use of fsetflags
523 with direct usage of the ioctl/fchflags so that we don't
524 have to depend on the libe2p library.
525
Theodore Ts'o30e50b72001-06-08 09:43:40 +00005262001-06-08 Theodore Tso <tytso@valinux.com>
527
528 * ext2_types.h.in: Use unsigned ints in favor of unsigned longs
529 when trying to find a 32-bit wide type.
530
531 * icount.c (insert_icount_el): Fix the code used to estimate the
532 size of the new icount array to be more intelligent, to
533 avoid reallocating the array too many times. Thanks to
534 Enrique Perez-Terron for pointing this out.
535
Theodore Ts'of36d14f2001-06-02 04:13:16 +00005362001-06-02 Theodore Tso <tytso@valinux.com>
537
538 * valid_blk.c (ext2fs_inode_has_valid_blocks): Only check i_blocks
539 for a symlink to determine whether it is a fast symlink.
540
Theodore Ts'o797f5ef2001-06-01 23:49:46 +00005412001-06-01 Theodore Tso <tytso@valinux.com>
542
543 * Makefile.in, dosio.c, ext2_fs.h, ext2_types.h.in, ext2fs.h:
Theodore Ts'o36a23e12001-06-02 00:54:10 +0000544 Move include/asm/types.h.in to lib/ext2fs/ext2_types.h.in.
Theodore Ts'o797f5ef2001-06-01 23:49:46 +0000545
Theodore Ts'od5f858d2001-05-25 17:14:23 +00005462001-05-25 Theodore Tso <tytso@valinux.com>
547
Theodore Ts'obb185862001-05-25 17:35:00 +0000548 * Release of E2fsprogs 1.20
549
5502001-05-25 Theodore Tso <tytso@valinux.com>
551
Theodore Ts'od5f858d2001-05-25 17:14:23 +0000552 * ismounted.c: More cleanups for ismounted.c, some from Andreas,
553 some to clean up Andreas's patches. Use strncpy instead
554 of strcpy to save the root's mountpoint. Clean up #ifdef
555 structure. Remove uneeded variable in testing/debug driver.
556
Theodore Ts'occ860172001-05-25 16:32:53 +00005572001-05-24 Andreas Dilger <adilger@turbolinux.com>
558
559 * ismounted.c: Add check for root device which doesn't depend on
560 /etc/fstab or /proc/mounts to be correct. Don't call
561 endmntent() before we are done with mnt struct.
562
Theodore Ts'o4ed8ebe2001-05-23 18:30:10 +00005632001-05-23 Theodore Tso <tytso@valinux.com>
564
565 * ext2_err.et.in (EXT2_ET_JOURNAL_UNSUPP_VERSION): Added new error
566 code.
567
Theodore Ts'ob10820c2001-05-21 05:23:31 +00005682001-05-21 Theodore Tso <tytso@valinux.com>
569
570 * ext2_fs.h: Change assignment of EXT2_FEATURE_COMPAT_DIR_INDEX to
571 make room for pre-existing usage of
572 EXT2_FEATURE_COMPAT_EXT_ATTR. Add flag EXT2_INDEX_FL with
573 the same codepoint as EXT2_BTREE_FL.
574
Theodore Ts'o7c2d2562001-05-21 02:54:21 +00005752001-05-20 Theodore Tso <tytso@valinux.com>
576
577 * ext2fs.h: #include <> instead of "" for ext2fs and et header
578 files, since they will be installed in /usr/include
579
Theodore Ts'o7a34cb02001-05-14 04:28:35 +00005802001-05-14 Theodore Tso <tytso@valinux.com>
581
Theodore Ts'o9f8046f2001-05-14 11:35:52 +0000582 * alloc.c, alloc_tables.c, badblocks.c, bb_compat.c, bb_inode.c,
583 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
584 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
585 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
586 expanddir.c, ext2_fs.h, fileio.c, finddev.c, flushb.c,
587 freefs.c, get_pathname.c, getsize.c, icount.c, imager.c,
588 initialize.c, inline.c, inode.c, irel_ma.c, ismounted.c,
589 link.c, lookup.c, mkdir.c, mkjournal.c, namei.c, native.c,
590 newdir.c, nt_io.c, openfs.c, read_bb.c, read_bb_file.c,
591 rs_bitmap.c, rw_bitmaps.c, swapfs.c, test_io.c,
592 tst_badblocks.c, tst_byteswap.c, tst_getsize.c,
593 tst_iscan.c, unix_io.c, unlink.c, valid_blk.c, version.c,
594 write_bb_file.c, ext2_fs.h: Moved file from include/linux.
595 Adjust all files in this directroy to include this file.
596
Theodore Ts'o7a34cb02001-05-14 04:28:35 +0000597 * mkjournal.c (ext2fs_create_journal_superblock): Remove redundant
598 code.
599
Theodore Ts'o0f679452001-05-05 16:42:24 +00006002001-05-05 Theodore Tso <tytso@valinux.com>
601
602 * fileio.c (ext2fs_file_read): Factored out common code and
603 cleaned up function. Fixed a bug where if there was an
604 error reading from the disk, the number of bytes read
605 wasn't reliably set. (Fixes Debian bug #79163)
606 (ext2fs_file_write): Factored out common code and made
607 function more efficient; if writing a full block, don't
608 bother to do a read-modify-write cycle.
609
Theodore Ts'o1cca4d62001-05-05 05:12:14 +00006102001-05-04 Theodore Tso <tytso@valinux.com>
611
612 * dirblock.c (ext2fs_read_dir_block): Check for an directory
613 record length which isn't a multiple four, and treat that
614 as an invalid. Scan the directory and return an error
615 (EXT2_ET_DIR_CORRUPTED) if the directory records are
616 corrupted.
617 (ext2fs_write_dir_block): If while byte-swapping the
618 directory block, if there's an error, abort and return
619 EXT2_ET_DIR_CORRUPTED.
620
Theodore Ts'oa78926e2001-05-03 04:02:29 +00006212001-05-02 Theodore Tso <tytso@valinux.com>
622
623 * ext2fs.h (EXT2_FLAG_IMAGE_FILE): Add new flag, and add
624 image_header field in the ext2_filsys structure
625
626 * block.c (block_iterate_ind, block_iterate_dind, block_iterate_tind):
627 * inode.c (ext2fs_read_inode):
628 * rw_bitmaps.c (read_bitmaps):
629 * openfs.c (ext2fs_open): Add support for EXT2_FLAG_IMAGE_FILE
630
631 * imager.c (ext2fs_image_bitmap_read): Fix bug in imager to make
632 sure the full bitmap is saved.
633
Theodore Ts'of955cc12001-05-01 19:04:28 +00006342001-05-01 Theodore Tso <tytso@valinux.com>
635
Theodore Ts'oa78926e2001-05-03 04:02:29 +0000636 * e2image.h (struct ext2_image_hdr): Add space for the device name
637 in the image header.
638
Theodore Ts'of955cc12001-05-01 19:04:28 +0000639 * dir_iterate.c (ext2fs_process_dir_block): Add a double-check to
640 make sure the rec_len is a multiple of 4, to prevent
641 bus-errors on architectures which care about mis-aligned
642 pointer references.
643
Theodore Ts'o954a6832001-04-26 01:42:37 +00006442001-04-25 Theodore Tso <tytso@valinux.com>
645
646 * getsize.c (ext2fs_get_device_size): Use an unsigned long to
647 query the device sizes using the BLKGETSIZE ioctl.
648
Theodore Ts'o03603942001-04-17 00:53:25 +00006492001-04-16 Theodore Tso <tytso@valinux.com>
650
Theodore Ts'o52db0b42001-04-17 02:22:05 +0000651 * ismounted.c (check_mntent): Check /proc/mounts on Linux systems
652 before checking /etc/mtab. The EXT2_MF_READONLY flag is
653 now set from the /etc/mtab options field for all
654 filesystems, not just the root filesystem. Add debugging
655 code to make it easier to test ext2fs_check_if_mounted().
656
Theodore Ts'o03603942001-04-17 00:53:25 +0000657 * mkjournal.c (ext2fs_create_journal_superblock): Add safety
658 check; return an error if there's an attempt to create a
659 journal less than 1024 filesystem blocks.
660
661 * ext2_err.et.in, mkjournal.c: Change EXT2_JOURNAL_NOT_BLOCK and
662 EXT2_NO_JOURNAL_SB to be EXT2_ET_*.
663
Theodore Ts'o9ec53cf2001-02-20 16:28:40 +00006642001-02-20 Theodore Tso <tytso@valinux.com>
665
666 * bitops.h (ext2fs_swab16, ext2fs_swab32): Add i386 assembly
667 inline functions.
668
669 * tst_byteswap.c: New function to test the byteswap functions.
670 Add to regression test suite.
671
Theodore Ts'oc5423c52001-02-08 05:45:17 +00006722001-02-08 Theodore Tso <tytso@valinux.com>
673
674 * e2image.h (struct ext2_image_hdr): Fix type for fs_hostname
675
Theodore Ts'od23042a2001-02-08 03:37:16 +00006762001-02-07 Theodore Tso <tytso@valinux.com>
677
678 * mkjournal.c (ext2fs_create_journal_superblock): Fix the setting
679 of s_first for external devices to always be 1, since
680 jsb->s_first is always relative to the start of the
681 journal superblock. Use htonl(1) when setting s_nr_users.
682
Theodore Ts'o02088862001-01-18 01:44:19 +00006832001-01-17 Theodore Ts'o <tytso@valinux.com>
684
685 * mkjournal.c (ext2fs_add_journal_device): Fix bug where the
686 device number of the filesystem (instead of the journal)
687 was being dropped into s_journal_dev.
688
Theodore Ts'oa1128472001-01-16 06:56:14 +00006892001-01-15 Theodore Ts'o <tytso@valinux.com>
690
691 * initialize.c (ext2fs_initialize): Add support for initializing
692 the ext2 superblock for external journal devices. This
693 basically means we don't bother to allocate any block
694 group descriptors.
695
696 * openfs.c (ext2fs_open): Only open external journal devices if
697 the new flag EXT2_FLAG_JOURNAL_DEV_OK is passed to
698 ext2fs_open. When opening such devices, don't try to read
699 the block group descriptors, since they're not there.
700
701 * ext2_err.et.in (EXT2_NO_JOURNAL_SB): Add new error code
702
703 * mkjournal.c: Export a new function,
704 ext2fs_create_journal_superblock(), which allocates and
705 returns a buffer containing a journal superblock. This is
706 needed by mke2fs to create an external journal. Rewrote
707 ext2fs_add_journal_device() so that it no longer creates
708 the external journal, but rather adds a filesystem to an
709 existing external journal. It handles all of the UUID
710 manipulation.
711
712 * ext2fs.h: List the EXT3_FEATURE_JOURNAL_DEV as a flag supported
713 by the library. Define the EXT2_FLAG_JOURNAL_DEV_OK.
714 Changed function prototype for ext2fs_add_journal_device().
715
Theodore Ts'o80779942001-01-14 18:03:43 +00007162001-01-14 Theodore Ts'o <tytso@valinux.com>
717
718 * closefs.c (ext2fs_flush): Don't write out anything beyond the
719 primary superblock if EXT2_INCOMPAT_JOURNAL_DEV is
720 listed.
721
Theodore Ts'ob94bd812001-01-12 17:26:05 +00007222001-01-12 Theodore Ts'o <tytso@valinux.com>
723
724 * imager.c: Fix gcc -Wall complaints and a series of bugs where
725 retval wasn't set correctly. (Thanks to Andreas Dilger
726 for pointing this out.)
727
Theodore Ts'o4d0f3e12001-01-11 15:48:50 +00007282001-01-11 <tytso@snap.thunk.org>
729
730 * flushb.c (ext2fs_sync_device): New function which centralizes
731 all of the places which might try to use the BLKFLSBUF
732 or FDFLUSH ioctls (and usually failing to define them
733 since the system header files don't usually do this for
734 us, and we're trying to avoid usage of kernel include
735 files now).
736
Theodore Ts'o31dbecd2001-01-11 04:54:39 +00007372001-01-10 <tytso@snap.thunk.org>
738
739 * alloc.c, bb_inode.c, bitmaps.c, bitops.h, block.c, bmap.c,
740 bmove.c, brel.h, cmp_bitmaps.c, dblist.c, dblist_dir.c,
741 dir_iterate.c, expanddir.c, ext2fs.h, ext2fsP.h, fileio.c,
742 finddev.c, get_pathname.c, icount.c, inode.c, irel.h,
743 irel_ma.c, ismounted.c, link.c, lookup.c, mkdir.c,
744 mkjournal.c, namei.c, newdir.c, read_bb_file.c, test_io.c,
745 tst_iscan.c, unix_io.c, unlink.c: Change use of ino_t to
746 ext2_ino_t, to protect applications that attempt to
747 compile -D_FILE_OFFSET_BITS=64, since this inexplicably
748 changes ino_t(!?). So we use ext2_ino_t to avoid an
749 unexpected ABI change.
750
Theodore Ts'ocdaf1fa2001-01-05 22:23:22 +00007512001-01-05 <tytso@snap.thunk.org>
752
Theodore Ts'oe446d712001-01-05 22:27:06 +0000753 * dirblock.c (ext2fs_read_dir_block): Fix a potential case where
754 we may overrun allocated memory in case of a corrupted
755 filesystem (or an e2fsck test case :-) when byte-swapping
756 the directory block.
757
Theodore Ts'ocdaf1fa2001-01-05 22:23:22 +0000758 * ext2fs.h: Indent the #warning to fix gcc -Wall complaint.
759
760 * mkjournal.c (ext2fs_add_journal_device): Fix various gcc -Wall
761 complaints including a missing return 0 at the end of
762 ext2fs_add_journal_device.
763
Theodore Ts'o43ec8732001-01-03 14:56:46 +00007642001-01-03 <tytso@snap.thunk.org>
765
Theodore Ts'o4becab62001-01-03 19:22:42 +0000766 * Makefile.in: Link in libe2p when creating libext2fs as a shared
767 library, since mkjournal.c now references fsetflags().
768
769 * mkjournal.c (ext2fs_add_journal_inode): Folded in Andreas
770 Dilger's changes (with fixups) to allow on-line creation
771 of a journal file.
772
Theodore Ts'o43ec8732001-01-03 14:56:46 +0000773 * ext2fs.h, closefs.c (ext2fs_flush): Add new flag,
774 EXT2_FLAG_SUPER_ONLY, which the close routines to only
775 update the superblock, and not the group descriptors.
776
7772000-12-30 Andreas Dilger <adilger@turbolinux.com>
778
779 * ismounted.c: add ext2fs_check_mount_point() function, which will
780 optionally return the mount point of a device if mounted
781
Theodore Ts'o31a17b32001-01-03 13:04:12 +00007822000-12-14 Andreas Dilger <adilger@turbolinux.com>
783
784 * mkjournal.c: rename ext2fs_add_journal_fs() to the more descriptive
785 ext2fs_add_journal_inode()
786
Theodore Ts'oe5b38a52001-01-01 16:17:12 +00007872001-01-01 <tytso@snap.thunk.org>
788
789 * ext2fs.h: Remove definition of ext2fs_sb. Note: this may break
790 source (but not binary) compatibility of some users of the
791 ext2 library. They should just simply do a global search
792 and replace of struct ext2fs_sb with struct
793 ext2_super_block, and use their own private copy of
794 ext2_fs.h if they aren't already.
795
796 * closefs.c, initialize.c, link.c, newdir.c, openfs.c, swapfs.c:
797 Replace use of ext2fs_sb with ext2_super_block.
798
Theodore Ts'o2fe1efe2000-12-31 13:39:17 +00007992000-12-31 <tytso@snap.thunk.org>
800
801 * ext2fs.h: Cleaned up header file by removing definitions of
802 feature flags that might not have been defined in older
803 ext2 header files. Now that we're using our own
804 include/linux/ext2fs.h header file, this can never happen.
805
806 * jfs_dat.h: Removed old header file which is no longer needed.
807
Theodore Ts'o7dcfa6e2000-12-13 17:50:14 +00008082000-12-13 Theodore Ts'o <tytso@valinux.com>
809
Theodore Ts'oa917d1c2000-12-13 18:36:23 +0000810 * closefs.c (ext2fs_update_dynamic_rev): New function suggested
Theodore Ts'o3fe973b2000-12-13 17:55:49 +0000811 by Andreas Dilger to update the filesystem revision to
812 EXT2_DYNAMIC_REV.
813
Theodore Ts'o7dcfa6e2000-12-13 17:50:14 +0000814 * swapfs.c (ext2fs_swap_super): Add byte swapping for the journal
815 fields.
816
Theodore Ts'o58618732000-12-09 05:47:45 +00008172000-12-09 <tytso@snap.thunk.org>
818
Theodore Ts'o31a17b32001-01-03 13:04:12 +0000819 * ext2fs.h, mkjournal.c (ext2fs_add_journal_inode,
Theodore Ts'o4e246702000-12-09 14:39:16 +0000820 ext2fs_add_journal_device): Add a new argument to the APIs
821 of these function, which is a flags word. This is used to
822 allow the creation of a V1 superblock for those folks who
823 are using ext3 0.3b in production. Note, the user-land
824 interface for getting at this flag won't be documented, as
825 the V1 superblock is deprecated.
826
Theodore Ts'o58618732000-12-09 05:47:45 +0000827 * mkjournal.c (init_journal_superblock): Sync Stephen's changes
828 which creates a V2 superblock instead of a V1 superblock.
829
Theodore Ts'of20d0d52000-12-05 03:53:41 +00008302000-11-21 <tytso@snap.thunk.org>
831
832 * test_io.c (test_write_blk, test_write_byte): Fix typos pointed
833 out by Andreas Dilger.
834
Theodore Ts'o72ed1262000-11-12 19:32:20 +00008352000-11-05 <tytso@snap.thunk.org>
836
837 * imager.c (ext2fs_image_{inode,super,bitmap}_{read,write},
838 ext2_fs.h, Makefile.in: New file that has routines that
839 save ext2fs metadata to a file.
840
841 * ext2_err.et.in (EXT2_ET_MAGIC_E2IMAGE): New error code assigned.
842
843 * e2image.h: New file which defines the file format for the ext2
844 image file. (Saved copy of ext2 metadata to a file as a
845 saving throw against worst-case damage.)
846
Theodore Ts'o6a7f4552000-11-12 19:07:06 +00008472000-11-01 <tytso@snap.thunk.org>
848
849 * inode.c (ext2fs_flush_icache): Add new function
850 ext2fs_flush_icache() which flushes the internal inode
851 cache. Applications which modify the inode table blocks
852 directly must call this function.
853
Theodore Ts'oc180ac82000-10-26 20:24:43 +00008542000-10-26 <tytso@snap.thunk.org>
855
Theodore Ts'o17ee8b12000-10-26 20:45:58 +0000856 * mkjournal.c: Add #include of netinet/in.h, since Solaris
857 requires it for ntohl().
858
Theodore Ts'oc180ac82000-10-26 20:24:43 +0000859 * ext2_io.h (io_channel_write_byte): Add new interface to allow
860 callers to write specific byte ranges. This is an
861 optional interface, which not all IO channels may
862 implement.
863
864 * unix_io.c (unix_write_byte):
865 * test_io.c (test_write_byte): Add implementation of the
866 write_byte function.
867
868 * closefs.c (write_primary_superblock, ext2fs_flush): Add a new
869 function which writes the primary superblock. If the IO
870 channel supports writing raw bytes directly, only fields
871 which were modified are written to the disk. This makes
872 it safe(r) to use utilities like tune2fs on a mounted
873 filesystem.
874
875 * freefs.c (ext2fs_free): Free the original superblock if it is
876 available.
877
878 * openfs.c (ext2fs_open): Store a copy of the original superblock
879 when opening it.
880
881 * ext2fs.h: Add a field to store the original superblock in the
882 ext2 context structure.
883
Theodore Ts'o43819662000-10-25 02:06:09 +00008842000-10-24 <tytso@snap.thunk.org>
885
886 * llseek.c: Add #ifdef's for IA64 (it's a 64-bit platform, so we
887 don't need to use llseek).
888
Theodore Ts'od3cd93c2000-10-24 18:33:16 +00008892000-10-24 <tytso@valinux.com>
890
891 * Makefile.in, ext2fs.h, jfs_dat.h, mkjournal.c: Add functions for
892 creating an ext3 journal on a filesystem.
893
8942000-08-21 <tytso@valinux.com>
895
896 * ext2_err.et.in (EXT2_JOURNAL_NOT_BLOCK): Add new error code.
897
Theodore Ts'oadfc8c62000-10-18 19:22:24 +00008982000-08-22 <tytso@valinux.com>
899
900 * unix_io.c: Make massive changes to support a multiple block
901 writethrough cacheing.
902
903 * ext2_io.h: Added flags field to the io_channel structure.
904
Theodore Ts'ode23aa12000-08-19 17:00:47 +00009052000-08-19 <tytso@valinux.com>
906
907 * finddev.c, ext2fs.h, Makefile.in: Add new file, finddev.c, which
908 provides the function ext2fs_find_block_device(). This
909 function returns the pathname to a block device, given its
910 device number.
911
Theodore Ts'of9e67062000-07-13 23:25:54 +00009122000-07-13 <tytso@valinux.com>
913
914 * Release of E2fsprogs 1.19
915
Theodore Ts'oab146762000-07-07 04:37:35 +00009162000-07-07 Theodore Ts'o <tytso@valinux.com>
917
918 * ext2fs.h (EXT2_LIB_FEATURE_INCOMPAT_SUPP): Add
919 EXT3_FEATURE_INCOMPAT_RECOVER (aka needs_recovery) to the
920 list of filesystem flags supported by the library.
921
Theodore Ts'o57dca852000-07-04 19:20:25 +00009222000-07-04 Theodore Ts'o <tytso@valinux.com>
923
Theodore Ts'o8f13d8c2000-07-04 19:41:29 +0000924 * ext2fs.h: Update to include latest journalling additions to the
925 superblock.
926
Theodore Ts'o57dca852000-07-04 19:20:25 +0000927 * dll/jump.funcs: Add new jumptable entries for
928 ext2fs_write_bb_FILE, ext2fs_read_bb_FILE2, and
929 ext2fs_badblocks_equal.
930
931 * tst_badblocks.c: Update test program to test
932 ext2fs_read_bb_FILE2 and ext2fs_write_FILE.
933
934 * write_bb_file.c (ext2fs_write_bb_FILE): New function which
935 writes out bad blocks list to a file.
936
937 * read_bb_file.c (ext2fs_read_bb_FILE2): Add new function which
938 changes the callback function to take two additional
939 arguments; a private blind pointer supplied by the caller,
940 and pointer to a char * containing a pointer to the
941 invalid string.
942
943 * badblocks.c (ext2fs_badblocks_equal): Add new function which
944 returns true if two badblocks list are equal.
945
946 * Makefile.in: Remove explicit link of -lc in the shared library.
947 (It shouldn't be necessary, and is harmful in some cases).
948
Theodore Ts'oabf7d382000-06-10 19:27:17 +00009492000-06-10 Theodore Ts'o <tytso@valinux.com>
950
951 * getsize.c (main): Add debugging code under #ifdef DEBUG
952
Theodore Ts'o2e8d40d2000-05-27 15:15:40 +00009532000-05-27 Theodore Ts'o <tytso@valinux.com>
954
955 * mkdir.c (ext2fs_mkdir): Read the parent directory's inode
956 earlier, so that if there's an error reading it, we can
957 more cleanly back out of the operation.
958
Theodore Ts'of0f4acb2000-05-25 23:22:11 +00009592000-05-25 <tytso@snap.thunk.org>
960
Theodore Ts'odc5f68c2000-05-25 23:31:54 +0000961 * getsize.c (ext2fs_get_device_size): Use open64() instead of
Theodore Ts'o7fd86d32000-05-25 23:42:22 +0000962 open() if it exists. Under linux, manually define the
963 ioctl for BLKGETSIZE if it isn't already defined and it's
964 safe to do so.
Theodore Ts'odc5f68c2000-05-25 23:31:54 +0000965
966 * unix_io.c (unix_open): Use open64() instead of open() if it
967 exists.
968
969 * llseek.c: Simplify header includes of unistd.h. If lseek64 is
970 available (and prototypes are defined) use it in
971 preference to llseek.
972
Theodore Ts'of0f4acb2000-05-25 23:22:11 +0000973 * Makefile: Add hack dependency rule so that parallel makes work
974 correctly.
975
Theodore Ts'ofa7ef712000-05-19 02:11:41 +00009762000-05-18 Theodore Ts'o <tytso@valinux.com>
977
978 * ext2fs.h: Add appropriate ifdef's to support C++ compilation.
979
Theodore Ts'oe589f672000-04-03 13:45:40 +00009802000-04-03 Theodore Ts'o <tytso@valinux.com>
981
Theodore Ts'o06af47f2000-04-03 13:51:00 +0000982 * block.c: Readibility tweak in conditionals involving
983 ctx->fs->flags.
984
Theodore Ts'oe589f672000-04-03 13:45:40 +0000985 * ext2fs.h: Use AUTOCONF SIZEOF_* macros if available to determine
986 how to define __s64 and __u64. Turn off "compression is
987 experimental" warning if the cpp macro
988 I_KNOW_THAT_COMPRESSION_IS_EXPERIMENTAL is defined.
989
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +00009902000-02-11 <tytso@snap.thunk.org>
991
Theodore Ts'o5a63dd22000-02-11 15:44:08 +0000992 * ext2fs.h: Define EXT2FS_COMPRESSED_BLKADDR and HOLE_BLKADDR.
993 Conditionally include Compression as a supported type if
994 ENABLE_COMPRESSION (via --enable-compression) is turned on.
995
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +0000996 * swapfs.c (ext2fs_swap_super): Swap the compression usage bitmap.
997
Theodore Ts'o28ffafb2000-02-08 19:14:02 +00009982000-02-08 <tytso@snap.thunk.org>
999
1000 * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap,
1001 ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
1002 ext2fs_mark_inode_bitmap, ext2fs_unmark_inode_bitmap):
1003 Change to return the previous state of the bit that is
1004 being marked or unmarked. For speed optimization.
1005
Theodore Ts'o80e808f2000-02-02 16:19:59 +000010062000-02-02 Theodore Ts'o <tytso@valinux.com>
1007
1008 * getsize.c, ismounted.c: Remove unneeded include of linux/fs.h
1009
1010 * swapfs.c: Remove #ifdef HAVE_EXT2_INODE_VERSION since it's not
1011 needed any more; we know it will always be i_generation.
1012 Add support for swapping the high bits of the uid and gid.
1013
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +000010141999-11-19 <tytso@valinux.com>
1015
Theodore Ts'odab278a1999-11-19 18:49:27 +00001016 * mkdir.c (ext2fs_mkdir): Only update the parent's inode link
1017 counts if the link was successful. Patch suggested by
1018 jeremy@goop.org.
1019
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +00001020 * Makefile.in (distclean): Remove TAGS and Makefile.in.old from
1021 the source directory.
1022
Theodore Ts'ocd086361999-11-10 16:00:39 +000010231999-11-10 <tytso@valinux.com>
1024
1025 * Release of E2fsprogs 1.18
1026
Theodore Ts'o9b9fe8a1999-11-08 22:05:04 +000010271999-11-08 <tytso@valinux.com>
1028
1029 * Makefile.in (tst_badblocks): Add freefs.o to the object list,
1030 since ext2fs_badblocks_list_free was moved to freefs.c.
1031
1032 * tst_badblocks.c: Use the newer badblocks API names. Add
1033 duplicate blocks to the test inputs to test dealing with
1034 adding blocks which are already in the badblocks list.
1035
1036 * badblocks.c (ext2fs_badblocks_list_add): If appending to the end
1037 of the list, use a shortcut O(1) operations instead of an
1038 O(n) operation. (Idea suggested by David Beattie.)
1039
1040 * freefs.c (ext2fs_free): Use ext2fs_badblocks_list_free() instead
1041 of badblocks_list_free(), to save a procedure call.
1042
Theodore Ts'o416c93d1999-10-26 04:49:54 +000010431999-10-26 <tytso@valinux.com>
1044
Theodore Ts'o28e11941999-10-26 18:17:20 +00001045 * Release of E2fsprogs 1.17
1046
10471999-10-26 <tytso@valinux.com>
1048
Theodore Ts'o416c93d1999-10-26 04:49:54 +00001049 * ext2fs.h: Add kludge to deal with the fact that egcs cpp doesn't
1050 seem to handle ~0UL the same way as they used to.
1051
Theodore Ts'o601002b1999-10-26 02:06:39 +000010521999-10-25 <tytso@valinux.com>
1053
Theodore Ts'ofe70fd31999-10-26 02:34:47 +00001054 * nt_io.c (_OpenNtName): Open the device using
1055 FILE_SYNCHRONOUS_IO_NONALERT instead of
1056 FILE_SYNCHRONOUS_IO_ALERT
1057 (nt_open): At the end of the device open routine, unlock
1058 the drive but do not dismount it.
1059
Theodore Ts'o601002b1999-10-26 02:06:39 +00001060 * initialize.c (CREATOR_OS): Use __GNU__ instead of __gnu__ to
1061 detect the Hurd OS.
1062
Theodore Ts'oe6198e51999-10-23 00:58:54 +000010631999-10-22 <tytso@valinux.com>
1064
Theodore Ts'o614fdfd1999-10-23 03:19:51 +00001065 * Release of E2fsprogs 1.16
1066
10671999-10-22 <tytso@valinux.com>
1068
Theodore Ts'oe6198e51999-10-23 00:58:54 +00001069 * mkdir.c (ext2fs_mkdir): Pass EXT2_FT_DIR flag to ext2fs_link().
1070
1071 * link.c (ext2fs_link): This call now uses the low three bits of
1072 the flags parameter to pass the directory filetype
1073 information; it will set the directory entry FILETYPE
1074 information if the filesystem supports it.
1075
1076 * newdir.c (ext2fs_new_dir_block): If the FILETYPE superblock
1077 option is set, then create the '.' and '..' entries with
1078 the filetype set to EXT2_FT_DIR.
1079
Theodore Ts'oaa4115a1999-10-21 19:33:18 +000010801999-09-24 <tytso@valinux.com>
1081
1082 * nt_io.c: New file which supports I/O under Windows NT.
1083
Theodore Ts'o3a5f8ea1999-09-14 20:21:26 +000010841999-09-07 <tytso@valinux.com>
1085
1086 * ext2fs.h: Add new fields for journalling and define new
1087 feature bits used by newer filesystems: IMAGIC_INODES,
1088 HAS_JOURNAL, RECOVER.
1089
1090 * expanddir.c (ext2fs_expand_dir, expand_dir_proc): Change where
1091 we update the inode block count and size files so that the
1092 block count field is updated correctly when we create an
1093 indirect block.
1094
10951999-07-18 Theodore Ts'o <tytso@valinux.com>
Theodore Ts'o657cb971999-07-30 23:19:10 +00001096
1097 * Release of E2fsprogs 1.15
1098
Theodore Ts'oe72a9ba1999-06-25 15:40:18 +000010991999-06-23 <tytso@valinux.com>
1100
1101 * swapfs.c (ext2fs_swap_inode): Add compatibility for Linux 2.3
1102 kernels that use i_generation instead of i_version. Patch
1103 supplied by Jon Bright <sircus@sircus.demon.co.uk>.
1104
11051999-06-21 <tytso@valinux.com>
Theodore Ts'o813bbb21999-06-22 03:17:45 +00001106
1107 * dir_iterate.c (ext2fs_process_dir_block): Check for corrupted
1108 directory entry before calling the callback function.
1109 This should prevent some core dumps of insufficiently
1110 paranoid callback functions.
1111
Theodore Ts'oa4bf69d1999-05-29 21:53:30 +000011121999-05-29 <tytso@rsts-11.mit.edu>
1113
1114 * ext2fs.h: Add feature definition for AFS IMAGIC inodes.
1115
1116 * fileio.c (ext2fs_file_open): Remove obsolete comment stating
1117 that we don't handle writing yet (we do). Fixed bug where
1118 we weren't allocating a big enough buffer for ext2_bmap.
1119
Theodore Ts'of0687a51999-05-29 21:48:03 +000011201999-05-03 <tytso@rsts-11.mit.edu>
1121
1122 * openfs.c (ext2fs_open): Check to make sure that the number of
1123 blocks per group is not zero --- if so, it must be a bad
1124 superblock!
1125
Theodore Ts'o9e51eca1999-01-09 16:32:31 +000011261999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
1127
1128 * Release of E2fsprogs 1.14
1129
Theodore Ts'o665f7101999-01-08 13:33:39 +000011301999-01-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
1131
1132 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Check to see if
1133 the inode number is zero; if it's zero, return
1134 EXT2_ET_BAD_INODE_NUM.
1135
Theodore Ts'o7a469521999-01-04 08:50:59 +000011361998-12-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
1137
1138 * initialize.c (ext2fs_initialize): Use EXT2_FIRST_INODE instead
1139 of EXT2_FIRST_INO to ensure compatibility with Linux 1.2
1140 header files.
1141
Theodore Ts'o73f17cf1999-01-04 07:35:45 +00001142Mon Jan 4 02:32:09 1999 Theodore Y. Ts'o <tytso@mit.edu>
1143
1144 * llseek.c (ext2fs_llseek): Change ext2fs_llseek() in the
1145 non-Linux case to use EINVAL by default, unless it isn't
1146 defined, in which case we use EXT2_ET_INVALID_ARGUMENT
1147 instead.
1148
Theodore Ts'o556ad131998-12-19 08:10:58 +000011491998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu>
1150
1151 * Release of E2fsprogs 1.13
1152
Theodore Ts'o5a679c81998-12-03 16:40:38 +000011531998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
1154
1155 * Makefile.in: Updated dependencies.
1156
Theodore Ts'o8d7e83b1998-09-23 00:27:26 +000011571998-09-22 Theodore Ts'o <tytso@rsts-11.mit.edu>
1158
1159 * initialize.c (ext2fs_initialize): Make sure that we allocate
1160 enough inodes so that we can make a valid filesystem.
1161
Theodore Ts'o2eb374c1998-09-03 01:22:57 +000011621998-09-02 Theodore Ts'o <tytso@rsts-11.mit.edu>
1163
1164 * rw_bitmaps.c: Fixed signed/unsigned warnings.
1165
1166 * fileio.c (ext2fs_file_set_size): Remove unneeded extern from the
1167 function declaration.
1168
1169 * dblist.c (make_dblist): Add safety check in case the dblist
1170 pointer passed in is null (in which case, assign it to
1171 fs->dblist). Fixed some signed/unsigned warnings.
1172
1173 * bmap.c: Make addr_per_block be of type blk_t to avoid
1174 signed/unsigned warnings.
1175
1176 * namei.c (ext2fs_follow_link): Remove uneeded extern from the
1177 function declaration.
1178
1179 * get_pathname.c (get_pathname_proc): Use return value from
1180 ext2fs_get_mem, instead of checking if &gp->name is
1181 NULL.
1182
1183 * dir_iterate.c (ext2fs_process_dir_block):
1184 * dblist_dir.c (ext2fs_dblist_dir_iterate): Remove uneeded extern
1185 from the function declaration.
1186
1187 * block.c (ext2fs_block_iterate2): If the read_inode call fails,
1188 return the error directly instead of jumping to the
1189 cleanup routine, since we don't need to do any cleanup.
1190
1191 * alloc_table.c (ext2fs_allocate_group_table): Make this
1192 function take a dgrp_t for its group argument.
1193
1194 * ext2fs.h: Make dgrp_t an __u32 type, and make
1195 fs->desc_group_count be of type dgrp_t.
1196
Theodore Ts'of75c28d1998-08-01 04:18:06 +000011971998-07-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
1198
1199 * badblocks.c (ext2fs_badblocks_list_add): Use a bigger increment
1200 than 10 blocks when we need to expand the size of the
1201 badblocks list.
1202
Theodore Ts'o4a5fa191998-07-09 05:42:45 +000012031998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
1204
1205 * Release of E2fsprogs 1.12
1206
Theodore Ts'o30c42611998-06-30 05:33:11 +000012071998-06-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
1208
1209 * closefs.c (ext2fs_flush): Update the s_block_group_nr field as
1210 appropriate for all of the block group copies, so that
1211 it's clear where the beginning of the filesystem is on the
1212 disk. (For when the partition table gets scrod.)
1213
1214 * ext2fs.h: Change the name of the feature from
1215 EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE to
1216 EXT2_FEATURE_INCOMPAT_FILESIZE (to match with the kernel).
1217
Theodore Ts'o818180c1998-06-27 05:11:14 +000012181998-06-18 Theodore Ts'o <tytso@rsts-11.mit.edu>
1219
1220 * inode.c (get_next_blockgroup): Fix bug where if
1221 get_next_blockgroup() is called early because of a missing
1222 inode table in a block group, the current_inode counter
1223 wasn't incremented correctly.
1224
Theodore Ts'o4faba5b1998-06-16 05:23:41 +000012251998-06-16 Theodore Ts'o <tytso@rsts-11.mit.edu>
1226
1227 * read_bb.c (ext2fs_read_bb_inode): Make function more robust
1228 against a completely trashed bad block inode.
1229
Theodore Ts'o03673db1998-06-10 20:39:43 +000012301998-06-10 Theodore Ts'o <tytso@rsts-11.mit.edu>
1231
1232 * alloc_tables.c (ext2fs_allocate_group_table): Fix bug so that if
1233 the stride length hits a bad value, we retry the block
1234 allocation starting at the beginning of the block group.
1235
1236 * ext2fs.h, bb_inode.c, block.c, bmove.c, dir_iterate.c,
1237 expanddir.c, ext2fsP.h, read_bb.c: Change blkcnt_t to be
1238 e2_blkcnt_t to avoid collision with LFS API.
1239
Theodore Ts'o353952d1998-05-01 05:32:18 +000012401998-05-01 Theodore Ts'o <tytso@rsts-11.mit.edu>
1241
1242 * initialize.c (ext2fs_initialize): Initialize s_inodes_count in a
1243 way that avoids overflows on disk sizes greater than 4GB.
1244
Theodore Ts'o4c77fe51998-04-30 17:35:59 +000012451998-04-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
1246
1247 * ext2fs.h: Define EXT2_QSORT_TYPE appropriately for the
1248 return type for comparison functions for qsort.
1249
1250 * dblist.c (dir_block_cmp): Use EXT2_QSORT_TYPE in function
1251 declaration.
1252
Theodore Ts'o76f875d1998-04-27 01:41:13 +000012531998-04-26 Theodore Ts'o <tytso@rsts-11.mit.edu>
1254
1255 * ext2fs.h, bitops.h: Add support for the Watcom C compiler to do
1256 inline functions.
1257
1258 * ext2fs.h, dosio.c: Use asm/types.h instead of linux/types.h to
1259 evade a potential problem with glibc's header files trying
1260 to spike out linux/types.h.
1261
1262 * ext2fs.h (ext2fs_resize_mem): Change the function prototype to
1263 include the old size of the memory, which is needed for
1264 some braindamaged memory allocation systems that don't
1265 support realloc().
1266
1267 * badblocks.c (ext2fs_badblocks_list_add):
1268 bb_inode.c (clear_bad_block_proc):
1269 dblist.c (ext2fs_add_dir_block):
1270 icount.c (insert_icount_el):
1271 irel_ma.c (ima_put):
1272 rs_bitmap.c (ext2fs_resize_generic_bitmap): Update functions to
1273 pass the old size of the memory to be resized to
1274 ext2fs_resize_mem().
1275
Theodore Ts'o469bec81998-04-01 02:46:43 +000012761998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
1277
1278 * Makefile.in: Change to use new installation directory variables
1279 convention. Fix uninstall rules to take $(DESTDIR) into
1280 account.
1281
Theodore Ts'o4a31c481998-03-30 01:27:25 +000012821998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu>
1283
1284 * ext2fs.h: If __STRICT_ANSI__ is defined and we're on a platform
1285 with 32 bit longs, then we need to manually define __s64
1286 and __u64, since the current kernel header files don't
1287 define these if __STRICT_ANSI__ is defined. This is a
1288 problem if we are compiling with full GCC warnings, since
1289 we do need 64 bit support.
1290
1291 * Makefile.in (OBJS): Remove bmove.o from files to be built,
1292 since we're not using ext2fs_move_blocks() and there
1293 is some question as to its usefulness in its current
1294 form.
1295
1296 * bmap.c (block_bmap): Remove unused function.
1297
1298 * bmove.c (process_block): Fix -Wall warning.
1299
Theodore Ts'o36a43d61998-03-24 16:17:51 +000013001998-03-23 Theodore Ts'o <tytso@rsts-11.mit.edu>
1301
1302 * block.c (ext2fs_block_iterate3): Make the ref_offset field
1303 contain the offset into the inode.i_blocks array when
1304 ref_block is zero. Since we haven't done a formal
1305 release of e2fsprogs since block_iterate2 was first
1306 introduced, I removed block_iterate2, and renamed
1307 block_iterate3 to be block_iterate2.
1308
1309 * bb_inode.c, bmove.c, dblist_dir.c, dir_iterate.c,
1310 expanddir.c, ext2fs.h, ext2fsP.h, read_bb.c: Change
1311 use of block_iterate and block_iterate2 to
1312 block_iterate2 with the new prototype for the
1313 interator function. (using blkcnt_t forr blockcount)
1314
Theodore Ts'o674a4ee1998-03-23 02:06:52 +000013151998-03-21 Theodore Ts'o <tytso@rsts-11.mit.edu>
1316
1317 * ext2fs.h: Add new superblock fields (s_algorithm_usage_bitmap,
1318 s_prealloc_blocks, s_prealloc_dir_blocks). Added
1319 conditional defines of new features COMPAT_DIR_PREALLOC,
1320 RO_COMPAT_LARGE_FILE RO_COMPAT_BTREE_DIR,
1321 INCOMPAT_COMPRESSION, INCOMPAT_DIRNAME_SIZE. Changed
1322 the library to declare that we support COMPAT_DIR_PREALLOC,
1323 INCOMPAT_DIRNAME_SIZE, RO_COMPAT_LARGE_FILE.
1324
1325 * fileio.c: Rename function ext2fs_file_llseek to be
1326 ext2fs_file_lseek, which is more accurate.
1327
1328 * block.c: Add new function ext2fs_block_iterate3 which calls
1329 the iterator function with the blockcount argument of
1330 type blkcnt_t. This version of the function is
1331 allowed to handle large files; the other fucntions are
1332 not.
1333
1334 * ext2fs.h: Add new type blkcnt_t
1335
1336 * ext2_err.et.in: Add error code EXT2_ET_FILE_TOO_BIG
1337
1338 * block.c (ext2fs_block_iterate2): Fix bug where the block count
1339 field wasn't getting correctly incremented for sparse
1340 files when the indirect or doubly-indirect block
1341 specified in the inode was zero.
1342
1343Sun Mar 8 22:42:47 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1344
1345 * unlink.c (unlink_proc):
1346 * lookup.c (lookup_proc):
1347 * link.c (link_proc):
1348 * get_pathname.c (get_pathname_proc):
1349 * dir_iterate.c (ext2fs_process_dir_block): Mask off high 8 bits
1350 from dirent->name_len, so it can be used for other
1351 purposes.
1352
1353 * ext2fs.h: Add definition of EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE,
1354 and indicate that we have support for this incompatible
1355 option.
1356
Theodore Ts'oc7752561998-02-24 04:25:52 +00001357Mon Feb 23 08:46:33 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1358
1359 * ext2_err.et.in: Added new error code, EXT2_ET_CANCEL_REQUESTED.
1360
Theodore Ts'o79b05db1998-02-21 05:01:19 +00001361Fri Feb 20 23:58:01 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1362
1363 * dblist.c (ext2fs_get_num_dirs): Improve the estimation of the
1364 number of directories when the block group information is
1365 unreliable.
1366
Theodore Ts'oc4e749a1998-02-20 05:33:14 +000013671998-02-20 Theodore Y. Ts'o <tytso@edt.mit.edu>
1368
Theodore Ts'o218a4861998-02-21 01:41:39 +00001369 * inode.c (ext2fs_get_next_inode): Always do the check to see if the
1370 inode table is missing so that we catch the case where the
1371 first block group is missing.
1372
Theodore Ts'oc4e749a1998-02-20 05:33:14 +00001373 * getsize.c, ismounted.c, unix_io.c: #include errno.h since it's
1374 needed.
1375
Theodore Ts'o9abd2ce1998-02-16 22:00:37 +00001376Mon Feb 16 16:16:00 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1377
1378 * ext2_io.h, ext2fs.h: Protect against being included multiple times.
1379
1380 * bmove.c: #include ext2fsP.h instead of "ext2fs/ext2fs.h"
1381
1382 * test_io.c (test_flush): Add a debugging printf when the flush
1383 method is called.
1384
1385 * rw_bitmaps.c (ext2fs_read_bitmaps): If the bitmaps are already
1386 read in, return right away.
1387
Theodore Ts'o5953b9d1998-02-01 13:23:02 +00001388Sun Feb 1 08:20:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1389
1390 * bitops.h: Don't try to do i386 inline asm functions if the
1391 compiler isn't GCC.
1392
1393 * ext2fs.h: If EXT2_FLAT_INCLUDES is defined, #include e2_types.h,
1394 instead of linux/types.h, and e2_bitops.h instead of
1395 ext2fs/bitops.h.
1396
1397 * icount.c, version.c: Don't #include <et/com_err.h>, as it isn't
1398 necessary.
1399
Theodore Ts'ob5abe6f1998-01-19 14:47:53 +00001400Sat Jan 17 13:13:31 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1401
1402 * inode.c (ext2fs_open_inode_scan): Initialize the group variables
1403 so that we don't need to call get_next_blockgroup() the
1404 first time around. Saves a bit of time, and prevents us
1405 from needing to assign -1 to current_group (which is an
1406 unsigned value).
1407
1408 * icount.c (insert_icount_el): Cast the estimated number of inodes
1409 from a float to an ino_t.
1410
1411 * alloc.c, alloc_tables.c, badlbocks.c, bb_compat.c, bb_inode.c,
1412 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
1413 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
1414 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
1415 expanddir.c, ext2fs.h, fileio.c, freefs.c,
1416 get_pathname.c, getsize.c, icount.c, initialize.c,
1417 inline.c, inode.c, irel_ma.c, ismounted.c, link.c,
1418 lookup.c, mkdir.c, namei.c, native.c, newdir.c,
1419 openfs.c, read_bb.c, read_bb_file.c, rs_bitmap.c,
1420 rw_bitmaps.c, swapfs.c, test_io.c, tst_badblocks.c,
1421 tst_getsize.c, tst_iscan.c, unix_io.c, unlink.c,
1422 valid_blk.c, version.c: If EXT2_FLAT_INCLUDES is
1423 defined, then assume all of the
1424 ext2-specific header files are in a flat directory.
1425
1426 * block.c, bmove.c, dirblock.c, fileio.c: Explicitly cast
1427 all assignments from void * to be compatible with C++.
1428
1429Tue Jan 6 11:28:15 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1430
1431 * closefs.c (ext2fs_flush): Add a call to io_channel_flush() to
1432 make sure the contents of the disk are flushed to disk.
1433
1434Mon Dec 29 14:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1435
1436 * dblist.c (ext2fs_add_dir_block): Change new to be new_entry to
1437 avoid C++ namespace clash.
1438
1439 * bitmaps.c (ext2fs_copy_bitmap): Change new to be new_map to
1440 avoid C++ namespace clash.
1441
1442 * ext2fs.h, bb_inode.c, block.c, bmove.c, brel.h, brel_ma.c,
1443 irel.h, irel_ma.c, dblist.c, dblist_dir.c, dir_iterate.c,
1444 ext2fsP.h, expanddir.c, get_pathname.c, inode.c, link.c,
1445 unlink.c: Change private to be priv_data (to avoid C++
1446 namespace clash)
1447
Theodore Ts'o5be8dc21997-12-01 18:24:10 +00001448Fri Nov 28 09:26:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1449
1450 * dblist.c (ext2fs_get_num_dirs): Make ext2fs_get_num_dirs more
1451 paranoid about validating the directory counts from the
1452 block group information.
1453
1454 * all files: Don't include stdlib.h anymore; include it in
1455 ext2_fs.h, since that file requires stdlib.h
1456
Theodore Ts'o89270b51997-11-24 11:44:25 +00001457Thu Nov 20 16:07:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1458
1459 * expanddir.c (ext2fs_expand_dir): Check to make sure the block
1460 bitmap is loaded, and return an error if it is not.
1461 (expand_dir_proc): Only use ext2fs_write_dir_block when
1462 writing a directory block, not when writing out a fresh
1463 indirect block.
1464
Theodore Ts'od36d8351997-11-12 03:48:07 +00001465Tue Nov 11 22:46:45 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1466
1467 * Makefile.in, tst_getsize.c: Added new file which is used to test
1468 the ext2fs_get_device_size function.
1469
1470 * ext2_err.et.in (EXT2_ET_UNIMPLEMENTED): Added new error code.
1471
Theodore Ts'o79a90bd1997-11-03 19:16:55 +00001472Sun Nov 2 20:36:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1473
1474 * ext2fs.h: Make ext2fs_get_mem take an unsigned argument.
1475
1476 * fileio.c (ext2fs_file_get_size, ext2fs_file_set_size,
1477 ext2fs_file_get_fs): New functions added.
1478
1479
1480Fri Oct 31 12:16:52 1997 <tytso@EDT.MIT.EDU>
1481
1482 * bitops.c (ext2fs_warn_bitmap, ext2fs_warn_bitmap2): Don't call
1483 com_err if OMIT_COM_ERR is defined.
1484
Theodore Ts'o1f0b6c11997-10-31 06:07:47 +00001485Thu Oct 30 11:33:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1486
1487 * Rename new error codes to _ET_ in them for consistency.
1488
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001489Sat Oct 25 00:06:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1490
Theodore Ts'o7b4e4531997-10-26 03:41:24 +00001491 * [all files, basically]: Added definition of ext2fs_get_mem,
1492 ext2fs_free_mem, and ext2fs_resize_mem in ext2fs.h, and
1493 changed all library routines to use these wrapper functions.
1494
Theodore Ts'o78d8f901997-10-26 01:53:39 +00001495 * dblist.c, mkdir.c: use EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND
1496 instead of the system error messages.
1497
1498 * ext2_err.et.in: Added new error messages EXT2_DIR_EXISTS and
1499 EXT2_DB_NOT_FOUND
1500
Theodore Ts'o30fab291997-10-25 22:37:42 +00001501 * ext2fs.h: Added function declarations and constants for bmap.c
1502 and fileio.c.
1503
1504 * ext2_err.et.in: Added new error messages EXT2_FILE_RO and
1505 EXT2_ET_MAGIC_EXT2_FILE
1506
1507 * Makefile.in: Added files bmap.c and fileio.c, and temporarily
1508 commented out brel_ma.c and irel_ma.c
1509
1510 * bmap.c: New file which maps a file's logical block number to its
1511 physical block number.
1512
1513 * fileio.c: New file which implements simple file reading and
1514 writing primitives.
1515
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001516 * alloc.c (ext2fs_alloc_block): New function which allocates a
Theodore Ts'o30fab291997-10-25 22:37:42 +00001517 block, zeros it, and updates the filesystem accounting
1518 records appropriately.
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001519
1520Wed Oct 22 16:47:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1521
1522 * ext2_err.et.in: Added new error codes: EXT2_NO_MEMORY,
1523 EXT2_INVALID_ARGUMENT, EXT2_BLOCK_ALLOC_FAIL,
1524 EXT2_INODE_ALLOC_FAIL, EXT2_NOT_DIRECTORY
1525
1526 * Change various library files to use these functions instead of
1527 EINVAL, ENOENT, etc.
1528
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +00001529Mon Oct 20 19:32:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1530
1531 * llseek.c: Check HAVE_LLSEEK_PROTOTYPE to see whether or not we
1532 need to declare llseek().
1533
Theodore Ts'o1d2ff461997-10-19 23:00:21 +00001534Sun Oct 19 18:56:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1535
Theodore Ts'od40259f1997-10-20 00:44:26 +00001536 * Rename io.h to be ext2_io.h (avoid namespace collisions)
1537
Theodore Ts'o1d2ff461997-10-19 23:00:21 +00001538 * Add #ifdef's for HAVE_SYS_STAT_H and HAVE_SYS_TYPES_H
1539
Theodore Ts'od163b091997-10-03 17:42:28 +00001540Fri Oct 3 13:35:59 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1541
1542 * llseek.c (ext2fs_llseek): Fix type error for ext2fs_llseek()
1543
1544 * icount.c (ext2fs_icount_validate):
1545 * bmove.c (process_block): Fix lint error in type for fprintf().
1546
1547Mon Sep 15 11:45:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1548
1549 * inode.c (ext2fs_check_directory): Add support for the callback
1550 to return the error code EXT2_ET_CALLBACK_NOTHANDLED.
1551
Theodore Ts'offf876b1997-09-13 00:32:29 +00001552Thu Sep 4 12:28:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1553
1554 * bitmaps.c (ext2fs_set_bitmap_padding): New function which sets the
1555 padding of the bitmap to be all one's.
1556
Theodore Ts'obc75f2a1997-09-04 00:43:10 +00001557Wed Sep 3 14:27:30 1997 Theodore Y. Ts'o <tytso@edt.mit.edu>
1558
1559 * llseek.c: Added missing semicolon to glibc fixup declaration of
1560 llseek().
1561
1562 * bmove.c: Add #include of errno.h
1563
Theodore Ts'oe9affb71997-08-24 02:57:55 +00001564Sat Aug 23 22:47:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1565
1566 * Makefile.in (ELF_SO_VERSION): Bump version to be 2.4 since we've
1567 added a new field to the io_channel (app_data).
1568
1569 * io.h: Add a new element to the io_channel structure, app_data.
1570
1571 * initialize.c, openfs.c: Set io->app_data to point at the
1572 filesystem handle.
1573
Theodore Ts'o1c27cac1997-08-14 17:20:42 +00001574Thu Aug 14 08:14:17 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1575
1576 * io.h: Change the prototype of ext2fs_llseek() to use int's
1577 instead of unsigned int's.
1578
1579 * llseek.c: Change to allow PIC and !HAVE_LLSEEK. Add a prototype
1580 to make life easer for GNU Libc 2.
1581
1582 * rw_bitmaps.c: On the PowerPC, the big-endian variant of the ext2
1583 filesystem has its bitmaps stored as 32-bit words with bit
1584 0 as the LSB of each word. Thus a bitmap with only bit 0
1585 set would be, as a string of bytes, 00 00 00 01 00 ... To
1586 cope with this, we byte-reverse each word of a bitmap if
1587 we have a big-endian filesystem, that is, if we are *not*
1588 byte-swapping other word-sized numbers.
1589
Theodore Ts'o3cb6c501997-08-11 20:29:22 +00001590Mon Aug 11 03:30:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1591
1592 * dosio.c: New file to do DOS/BIOS disk accesses.
1593
1594 * namei.c (open_namei): Make pathlen be of type size_t.
1595
1596 * llseek.c: Always #include stdlib.h since it's need to define
1597 size_t.
1598
1599 * io.h: Use errcode_t for magic numbers.
1600
1601 * icount.c (get_icount_el): Use size_t where appropriate
1602
1603 * dupfs.c (ext2fs_dup_handle):
1604 * dblist.c (dir_block_cmp): Use size_t where appropriate.
1605
1606 * read_bb.c (ext2fs_read_bb_inode):
1607 * cmp_bitmaps.c (ext2fs_compare_inode_bitmap): Use blk_t, ino_t
1608 and size_t where appropriate.
1609
1610 * closefs.c (ext2fs_flush): Use dgrp_t instead of int where
1611 appropriate.
1612
1613 * openfs.c (ext2fs_open):
1614 * check_desc.c (ext2fs_check_desc): Use blk_t instead of int where
1615 appropriate.
1616
1617 * rw_bitmaps.c (read_bitmaps):
1618 * irel_ma.c:
1619 * inode.c (ext2fs_write_inode):
1620 * initialize.c (ext2fs_initialize):
1621 * brel_ma.c: Fix to make be 16-bit safe.
1622
1623 * link.c (ext2fs_link):
1624 * unlink.c (ext2fs_unlink):
1625 * lookup.c (lookup_proc):
1626 * ismounted.c (ext2fs_check_if_mounted):
1627 * block.c (xlate_func): Add #pragma argsused for Turbo C.
1628
Theodore Ts'o4cbe8af1997-08-10 23:07:40 +00001629Sun Aug 10 10:05:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1630
1631 * block.c (ext2fs_block_iterate2): Use retval which is a errcode_t
1632 type.
1633
1634 * bitmaps.c (make_bitmap): Use size_t instead of int where
1635 appropriate.
1636
1637 * bb_inode.c (set_bad_block_proc): Add #pragma argsused for Turbo C.
1638
1639 * alloc.c (ext2fs_new_inode): Use ino_t instead of int for the
1640 group number.
1641
1642 * get_pathname.c: Use ino_t instead of int where appropriate.
1643
1644 * ext2fs.h: Make the magic structure element be errcode_t instead
1645 of int.
1646
1647 * alloc.c alloc_tables.c badblocks.c bb_compat.c bb_inode.c
1648 bitmaps.c block.c bmove.c brel_ma.c check_desc.c closefs.c
1649 cmp_bitmaps.c dblist.c dblist_dir.c dir_iterate.c
1650 dirblock.c dupfs.c expanddir.c freefs.c get_pathname.c
1651 icount.c initialize.c inline.c inode.c irel_ma.c link.c
1652 llseek.c lookup.c mkdir.c namei.c newdir.c read_bb.c
1653 read_bb_file.c rs_bitmap.c rw_bitmaps.c swapfs.c
1654 test_io.c tst_badblocks.c tst_iscan.c unix_io.c unlink.c
1655 valid_blk.c version.c: Add an #ifdef for HAVE_UNISTD_H
1656
Theodore Ts'o024996c1997-06-17 05:38:35 +00001657Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1658
Theodore Ts'oa1230b11997-07-02 02:41:59 +00001659 * unix_io.c (unix_read_blk): If ext2fs_llseek() fails, but errno
1660 is zero, then return EXT2_IO_LLSEEK_FAILED.
1661
1662 * ext2_err.et.in: Add a new error code, EXT2_IO_LLSEEK_FAILED.
1663
Theodore Ts'o024996c1997-06-17 05:38:35 +00001664 * Release of E2fsprogs 1.11
1665
Theodore Ts'o549860c1997-06-17 03:55:00 +00001666Mon Jun 16 23:53:06 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1667
1668 * dblist.c (ext2fs_dblist_count): Added new function which returns
1669 the number of directory blocks in dblist.
1670
Theodore Ts'o36f21431997-06-14 07:25:40 +00001671Sat Jun 14 01:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1672
1673 * unix_io.c (unix_flush): Make the io_channel flush function do a
1674 fsync to flush the kernel buffers to disk.
1675
Theodore Ts'o9941fb71997-06-11 22:27:41 +00001676Wed Jun 11 18:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1677
1678 * inode.c (ext2fs_inode_scan_goto_blockgroup): Fix bug; the
1679 current inode number wasn't being set by the
1680 goto_blockgroup function.
1681
Theodore Ts'o1e1da291997-06-09 14:51:29 +00001682Mon Jun 9 10:45:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1683
1684 * bmove.c (ext2fs_move_blocks): New function which takes a bitmap
1685 of blocks which need to be moved, and moves those blocks
1686 to another location in the filesystem.
1687
1688 * rs_bitmap.c (ext2fs_resize_generic_bitmap): When expanding a
1689 bitmap, make sure all of the new parts of the bitmap are
1690 zero.
1691
1692Sun Jun 8 16:24:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1693
1694 * bitmaps.c (ext2fs_copy_bitmap): Fix bug; the destination bitmap
1695 wasn't being returned to the caller.
1696
1697 * alloc_tables.c (ext2fs_allocate_group_table): Add new function
1698 ext2fs_allocate_group_table() which sets the group tables
1699 for a particular block group. The relevant code was
1700 factored out of ext2fs_allocate_tables().
1701
1702 * dblist.c (make_dblist): Adjust the initial size of the directory
Theodore Ts'o024996c1997-06-17 05:38:35 +00001703 block list to be a bit more realistic (ten plus twice the
Theodore Ts'o1e1da291997-06-09 14:51:29 +00001704 number of directories in the filesystem).
1705
Theodore Ts'of635d7f1997-05-09 02:50:16 +00001706Thu May 8 22:19:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1707
1708 * badblocks.c (ext2fs_badblocks_list_test): Fix bug where
1709 ext2fs_badblocks_list_test would test the list (and exceed
1710 array boundaries) if there were no bad blocks on the bad
1711 blocks list. (Showed up when user tried: mke2fs -c -b 4096).
1712
Theodore Ts'oa29f4d31997-04-29 21:26:48 +00001713Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1714
1715 * Release of E2fsprogs version 1.10
1716
1717Thu Apr 24 10:13:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1718
1719 * alloc_tables.c (ext2fs_allocate_tables): Correctly place the
1720 inode and block bitmaps based on the RAID 0 stride
1721 parameter (which is passed by mke2fs).
1722
1723 * ext2fs.h: Add "stride" parameter to ext2_filsys, to be used by
1724 mke2fs to communicate the stride length to
1725 ext2fs_allocate_tables()
1726
1727Wed Apr 23 21:50:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1728
1729 * initialize.c (ext2fs_initialize): Fix to compile under Linux 1.2
1730 systems. (We can't assume that the new filesystem types
1731 are supported.)
1732
1733Wed Apr 23 18:40:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1734
1735 * alloc_tables.c (ext2fs_allocate_tables): Make sure that we
1736 allocate the inode and block bitmaps inside block group at
1737 all times.
1738
1739Mon Apr 21 00:06:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1740
1741 * alloc.c (ext2fs_new_block): Fix bug where if goal==0 and the
1742 filesystem has no free blocks, ext2fs_new_block would loop
1743 forever.
1744
1745 * dupfs.c (ext2fs_dup_handle): Duplicate an ext2 filesystem handle
1746
1747 * freefs.c (ext2fs_free_inode_cache): Decrement refcount and only
1748 free if refcount goes to zero.
1749
1750 * inode.c (create_icache): Initialize refcount to 1.
1751
1752 * ext2fsP.h: Added refcount to ext2_inode_cache
1753
1754 * dblist.c (ext2fs_copy_dblist): New function to copy a directory
1755 block list.
1756
1757 * badblocks.c (ext2fs_badblocks_copy): New function to copy a
1758 badblocks structure.
1759
1760Sun Apr 20 23:19:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1761
1762 * bitmaps.c (ext2fs_copy_bitmap): New function to copy a bitmap.
1763
1764 * unix_io.c, test_io.c (unix_open, test_open): Initialize the
1765 refcount to 1.
1766 (unix_close, test_close): Decrement the refcount and only
1767 close the io_channel if the refcount goes to 0.
1768
1769 * io.h: Add refcount to the io_channel structure. Add new macro
1770 interface io_channel_bumpcount() to bump the refcount.
1771
1772Thu Apr 17 20:25:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1773
1774 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Use the inode
1775 cache in the filesystem handle, instead of the inode cache
1776 in a static variable.
1777
1778 * freefs.c: Added static function to free the inode cache (called by
1779 ext2fs_free).
1780
1781 * ext2fsP.h: Added definition of the ext2_inode_cache structures.
1782
1783 * ext2fs.h: Added pointer to the inode_cache structure.
1784
1785 * block.c (block_iterate_ind, block_iterate_dind,
1786 block_iterate_tind): If there are holes in the indirect,
1787 doubly indirect, or triply indirect blocks, increment the
1788 block count field automatically.
1789
1790Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1791
1792 * Release of E2fsprogs version 1.09
1793
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +00001794Mon Apr 14 20:38:56 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1795
1796 * version.c (ext2fs_parse_version_string): Check the passed in
1797 version string (instead of the hard-coded one).
1798
1799 * alloc_tables.c (ext2fs_allocate_tables): If the last block is
1800 greater filesystem size, clamp it to prevent allocating a
1801 block or inode bitmap beyond the filesystem.
1802
1803 * initialize.c (ext2fs_initialize): Fix bug where the metatdata
1804 overhead calculation was accidentally removed.
1805
1806Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1807
1808 * Release of E2fsprogs version 1.08
1809
Theodore Ts'o521e3681997-04-29 17:48:10 +00001810Thu Apr 10 13:15:15 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1811
1812 * dblist.c (ext2fs_set_dir_block): New function which sets the
1813 block of a dblist entry, given the directory inode and
1814 blockcnt.
1815
1816Sat Apr 5 12:42:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1817
1818 * alloc_tables.c (ext2fs_allocate_tables): Allocate the bitmap and
1819 inode bitmaps at staggered locations across the block
1820 groups, to avoid concentrating the bitmaps on a small
1821 number of disks when using striped RAID arrays.
1822
1823 * initialize.c (ext2fs_initialize): By default, choose the maximum
1824 possible number of blocks per group (based on the size of
1825 the bitmaps in the blocksize).
1826
1827Fri Apr 4 11:28:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1828
1829 * initialize.c (ext2fs_initialize): Add support for
1830 EXT2_COMPAT_SPARSE_SUPER feature.
1831
1832 * closefs.c (ext2fs_bg_has_super): New function to determine
1833 whether or a particular block group should have a
1834 superblock and block group descriptor. Used for the
1835 EXT2_COMPAT_SPARSE_SUPER feature is turned on.
1836 (ext2fs_flush): Check ext2fs_bg_has_super to see whether
1837 or not the superblock should be written out for the block
1838 group.
1839
1840 * ext2fs.h (EXT2_COMPAT_SPARSE_SUPER): Define compatibility flag
1841 for sparse duplicate superblocks.
1842
1843 * version.c (ext2fs_get_library_version): New function which
1844 returns the library version.
1845
1846 * version.c (ext2fs_parse_version_string): New function which
1847 parses a version string and returns a version number,
1848 so application programs can compare version numbers as
1849 integers.
1850
1851Wed Mar 26 00:43:52 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1852
1853 * icount.c (ext2fs_create_icount): Change function so that it also
1854 takes a new argument which contains a "hint" icount
1855 structure. This "hint" icount allows the create function
1856 to set up the sorted list in advance. This reduces
1857 significantly the amount of data moving needed to insert
1858 these inodes into the list later.
1859
1860 * icount.c (ext2fs_icount_validate): New function which validates
1861 that the icount structure's rep invariant.
1862
1863 * icount.c (get_icount_el): Completely revamped implementation
1864 to subsume put_icount_el(). Put_icount_el() used to
1865 use an O(N) implementation to insert in the middle
1866 of the icount list. It now uses a O(ln N) to search
1867 for where the icount should be inserted, and then uses
1868 a memcpy to move the list down (instead of a for loop).
1869
1870 * icount.c (ext2fs_icount_fetch, ext2fs_icount_store,
1871 ext2fs_icount_increment, ext2fs_icount_decrement): Check
1872 to see if the inode is within bounds; if it isn't, return
1873 EINVAL.
1874
1875 * bitops.h (ext2fs_test_generic_bitmap): Fix error message given
1876 when a bad inode number is passed to test_generic_bitmap
1877 to be EXT2FS_TEST_ERROR instead of the wrong
1878 EXT2FS_UNMARK_ERROR.
1879
Theodore Ts'o21c84b71997-04-29 16:15:03 +00001880Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
1881
1882 * Release of E2fsprogs version 1.07
1883
1884Sun Mar 2 16:46:18 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1885
1886 * Makefile.in (ELF_VERSION): Change version to be 2.2
1887
1888Tue Feb 11 14:54:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1889
1890 * alloc.c (ext2fs_get_free_blocks): Change routine to use
1891 ext2fs_fast_test_block_bitmap_range().
1892
1893 * bitops.h (ext2fs_fast_test_block_bitmap_range,
1894 ext2fs_test_block_bitmap_range: New inline functions which
1895 test to see whether a contiguous range of blocks is
1896 available.
1897
1898Thu Feb 6 10:00:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1899
1900 * badblocks.c (ext2fs_badblocks_list_create): Rename sybmols to use
1901 use ext2fs_badblocks_* instead of badblocks_*
1902
1903 * bb_compat.c: New file which translates between old badblocks_*()
1904 names to ext2fs_badblocks_*()
1905
1906 * unlink.c (ext2fs_unlink): New file, moved ext2fs_unlink() from
1907 link.c (since e2fsck doesn't use ext2fs_unlink()).
1908
1909 * rs_bitmap.c (ext2fs_resize_generic_bitmap): New file, contains
1910 bitmap resizing routine moved from bitmaps.c, since e2fsck
1911 doesn't need to use this function.
1912
1913 * lookup.c (ext2fs_lookup): Moved ext2fs_lookup to its own file,
1914 since e2fsck only needs ext2fs_lookup.
1915
1916Mon Feb 3 10:11:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1917
1918 * inode.c (ext2fs_open_inode_scan): Set fs->badblocks if it is not
1919 already set; this is needed so that programs like dump
1920 which use the inode scan functions will deal with
1921 filesystems that have bad blocks in the inode table.
1922
1923Sun Feb 2 00:17:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1924
1925 * ext2fs.h (struct_badblocks_list, struct_badblocks_iterate):
1926 Moved to ext2fsP.h, since it doesn't need to be part of
1927 the public interface.
1928
1929 * dir_iterate.c: Move ext2_dir_iterate out of namei.c.
1930
1931Sat Feb 1 10:14:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1932
1933 * dblist.c (ext2fs_get_num_dirs): New file, which implements a
1934 directory block list abstraction. (Code moved from
1935 e2fsck).
1936
1937 * ext2fs.h, inode.c: Moved definition of ext2_struct_inode_scan to
1938 to inode.c (since no one else should be peeking inside it!)
1939
1940 * valid_blk.c (ext2_inode_has_valid_blocks): New function.
1941
1942 * openfs.c (ext2fs_open): Check the feature set in the ext2
1943 superblock, and refuse to open filesystems if they contain
1944 incompatible features. (Can be overriden with the
1945 EXT2_FLAG_FORCE
1946
1947Sun Jan 12 11:31:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1948
1949 * block.c (ext2fs_block_iterate2): Added new function
1950 ext2fs_block_iterate2 which changes the function
1951 signature of the callback function to include the
1952 referencing block and offset.
1953
1954 * inode.c (ext2fs_inode_scan_goto_blockgroup): Added new function
1955 ext2fs_inode_scan_goto_blockgroup which allows an
1956 application to jump to a particular block group while
1957 doing an inode scan.
1958
1959Wed Jan 1 23:50:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1960
1961 * dirblock.c: Include string.h, since we use memcpy().
1962
1963Tue Dec 3 12:27:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1964
1965 * getsize.c (ext2fs_get_device_size): The ioctl BLKGETSIZE returns
1966 a long not an int; this doesn't matter on i386 machines,
1967 but it does on Alpha's.
1968
1969Fri Nov 29 20:57:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1970
1971 * inode.c (ext2fs_write_inode, ext2fs_read_inode): If the inode
1972 table pointer is NULL, then return an error indicating
1973 that the inode table is missing.
1974 (get_next_blockgroup, get_next_blocks,
1975 ext2fs_get_next_inode): Don't treat a missing inode table
1976 as permanent error. Return MISSING_INODE_TABLE, but as an
1977 advisory error code, much like BAD_BLOCK_IN_INODE_TABLE.
1978
1979 * rw_bitmaps.c (ext2fs_write_block_bitmap,
1980 ext2fs_write_inode_bitmap): If the inode or block bitmap
1981 block is zero, then don't write out the inode or block
1982 bitmap. The idea here is to avoid stomping on the
1983 superblock.
1984 (read_bitmaps): If the inode or block bitmap block is
1985 zero, then fill in that portion of the inode or block
1986 bitmap with all zeros.
1987
1988 * inode.c (ext2fs_get_next_inode): Fix bug in handling of bad
1989 blocks in inode table when the inode table size is
1990 non-standard (and can therefore span blocks).
1991
1992Tue Oct 29 20:13:14 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1993
1994 * alloc.c (ext2fs_new_block): Fix fencepost error in
1995 ext2fs_new_block; make sure we don't try to allocate the
1996 first block beyond the end of the filesystem.
1997
1998Mon Oct 14 11:00:48 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1999
2000 * inode.c (check_for_inode_bad_blocks): New function called by
2001 get_next_blocks() to avoid reading in bad blocks marked in
2002 fs->badblocks. Inodes located in bad blocks are returned
2003 by ext2fs_get_next_inode() returns the error code
2004 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE.
2005
2006 * alloc_tables.c (ext2fs_allocate_tables): New function which
2007 performs the part of mke2fs's job of allocating the
2008 filesystem tables.
2009
2010 * test_io.c (test_close): IO manager which is used for testing
2011 purposes.
2012
2013Sun Oct 13 04:31:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2014
2015 * inode.c (ext2fs_get_next_inode): Separate out the function of
2016 setting up for a new block group to get_next_blockgroup().
2017 Separate out the function of reading in blocks of the
2018 inode table to get_next_blocks().
2019
2020 * ext2fs.h: Add the badblocks list to the ext2_filsys entry
2021
2022 * badblocks.c (badblocks_list_add, badblocks_list_test): Add
2023 blocks to the badblock list in sorted order. This allows
2024 badblocks_list_test to be coded using a binary search for
2025 speed.
2026
2027Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2028
2029 * Release of E2fsprogs version 1.06
2030
Theodore Ts'o5c576471997-04-29 15:29:49 +00002031Mon Oct 7 00:44:17 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2032
2033 * ext2fs.h, block.c, closefs.c, dirblock.c, inode.c, native.c,
2034 open.c: Change EXT2_SWAP to EXT2_FLAG_SWAP for
2035 consistency's sake.
2036
2037 * closefs.c (ext2fs_flush): If the flag EXT2_MASTER_SB_ONLY is
2038 set, then only write out the master superblock.
2039
2040Sun Oct 6 21:45:26 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2041
2042 * block.c (ext2fs_block_iterate): Fixed bug which caused
2043 block_iterate to fail to handle HURD created filesystems;
2044 it tested the inode translator field before the inode was
2045 loaded.
2046
2047Tue Sep 17 14:08:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2048
2049 * initialize.c (ext2fs_initialize): Make sure the description for
2050 the inode bitmap is set correctly.
2051
2052 * bitmaps.c (ext2fs_allocate_generic_bitmap): Fix minor type typo.
2053
2054Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2055
2056 * Release of E2fsprogs version 1.05
2057
Theodore Ts'o1e3472c1997-04-29 14:53:37 +00002058Sat Sep 7 07:36:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2059
2060 * initialize.c: Override the kernel's idea of default
2061 checkinterval from 0 (never) to 180 days.
2062
2063Wed Aug 28 03:20:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2064
2065 * namei.c (ext2fs_namei_follow): New function which follows
2066 symbolic link (if any) at the target.
2067
2068Tue Aug 27 01:48:43 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2069
2070 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Add support
2071 for shortcut function fs->read_inode() and fs->write_inode().
2072 Added inode_cache to reduce CPU time spent in doing
2073 byte swapping.
2074
2075 * swapfs.c (ext2fs_swap_super): Swap the new fields in a V2
2076 superblock.
2077
2078 * namei.c (ext2fs_follow_link): New function.
2079 (ext2fs_namei): Extended to have support for chasing
2080 symbolic links. ext2fs_namei() still returns an inode
2081 which is a symbolic link. Symbolic links are only chased
2082 while resolving the containing directory. To chase
2083 symbolic links of the final result, use
2084 ext2fs_follow_link().
2085
2086Mon Aug 26 23:46:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2087
2088 * ext2_err.et.in: Added new error code EXT2_ET_SYMLINK_LOOP.
2089
2090 * bitops.h (ext2fs_set_bit, ext2fs_celar_bit): Use asm inlines
2091 provided by Pete A. Zaitcev (zaitcev@lab.sun.mcst.ru).
2092
2093Thu Aug 22 00:40:18 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2094
2095 * initialize.c (ext2fs_initialize): On systems where the byte
2096 order is not i386 compatible, set the swap_byte flag.
2097
2098 * inode.c (inocpy_with_swap): Check to see if inode contains a
2099 fast symlink before swapping the inode block fields. This
2100 required adding a new argument to inocpy_with_swap to
2101 determine whether the mode field is in host order or not.
2102
2103Wed Aug 21 00:45:42 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2104
2105 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit): On
2106 the sparc, if EXT2_STD_BITOPS set, use the standard
2107 i386-compatible bitmask operations, instead on the
2108 non-standard native bitmask operators.
2109
2110Fri Aug 9 11:11:35 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2111
2112 * block.c (ext2fs_block_iterate): Cause block iterator to return
2113 the HURD translator block (along with everything else).
2114 If the flag BLOCK_FLAG_DATA_ONLY is passed to the block
2115 iterator, then don't return any meta data blocks
2116 (including the HURD translator).
2117
2118Wed Jul 17 17:13:34 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2119
2120 * gen_uuid.c: New file, which generates DCE-compatible UUIDs.
2121
2122 * uuid.c: New file, containing UUID utility functions.
2123
2124Tue Jul 16 10:19:16 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2125
2126 * ext2fs.h: Add a definition of the "real" ext2 superblock.
2127
2128Fri May 24 14:54:55 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2129
2130 * ext2fs.h: Fix erroneous ino_t type used in block_bitmap type.
2131
2132Sun May 19 15:39:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2133
2134 * openfs.c (ext2fs_open): If the blocksize in the superblock is
2135 zero, return the error EXT2_ET_CORRUPT_SUPERBLOCK, since
2136 that's a basic value that must be correct for the rest of
2137 the library to work.
2138
2139 * ext2_err.et.in (EXT2_ET_CORRUPT_SUPERBLOCK): Added new error
2140 code.
2141
Theodore Ts'o62c06f71997-04-29 14:34:47 +00002142Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2143
2144 * Release of E2fsprogs version 1.04
2145
Theodore Ts'o7f88b041997-04-26 14:48:50 +00002146Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
2147
2148 * Release of E2fsprogs version 1.03
2149
2150Tue Mar 26 12:06:32 1996 <tytso@rsts-11.mit.edu>
2151
2152 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit):
2153 Change the m68k bit numbering for bitmasks to match with
2154 the bit numbering used by all other ext2 implementations.
2155
2156Thu Mar 7 03:37:00 1996 <tytso@rsts-11.mit.edu>
2157
2158 * inode.c (ext2fs_get_next_inode, ext2fs_close_inode_scan,
2159 ext2fs_open_inode_scan): Support dynamically-sized inodes.
2160
2161Wed Mar 6 12:26:29 1996 <tytso@rsts-11.mit.edu>
2162
2163 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Support
2164 dynamically-sized inodes.
2165
2166 * openfs.c (ext2fs_open): Allow dynamic revision filesystem to be
2167 loaded.
2168
2169Tue Mar 5 03:49:37 1996 <tytso@rsts-11.mit.edu>
2170
2171 * initialize.c (ext2fs_initialize): Catch an error condition where
2172 the passed in size is *really* too small.
2173
2174 * alloc.c (ext2fs_new_inode):
2175 * ext2fs.h (EXT2_FIRST_INODE): Add support for dynamic revision to
2176 get first inode.
2177
2178Wed Feb 21 15:56:17 1996 <tytso@rsts-11.mit.edu>
2179
2180 * getsize.c (ext2fs_get_device_size): Open the device read-only
2181 when trying to determine its size.
2182
Theodore Ts'o74becf31997-04-26 14:37:06 +00002183Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
2184
2185 * Release of E2fsprogs version 1.02
2186
2187Sat Dec 9 09:57:50 1995 <tytso@rsts-11.mit.edu>
2188
2189 * rw_bitops.c (ext2fs_write_block_bitmap):
2190 * bitops.c (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
2191 * bitops.h (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
2192 Rename {test,set,clear}_bit to ext2fs_{test,set,clear}_bit,
2193 to avoid conflicts with with kernel include files. Also
2194 rename ADDR and CONST_ADDR to EXT2FS_ADDR and
2195 EXT2FS_CONST_ADDR.
2196
Theodore Ts'o50e1e101997-04-26 13:58:21 +00002197Thu Oct 26 12:09:16 1995 <tytso@rsts-11.mit.edu>
2198
2199 * ext2_err.et: Updated message in EXT2_ET_BASE to say version 0.5c
2200
2201 * swapfs.c (ext2fs_swap_super): Put an #ifdef check around
2202 s_def_resuid and s_def_resgid for backwards compatibility.
2203
2204Fri Oct 20 23:33:31 1995 <tytso@rsts-11.mit.edu>
2205
2206 * bitops.h: Added #ifdef's for Sparc.
2207
2208Wed Sep 6 22:14:46 1995 <tytso@rsts-11.mit.edu>
2209
2210 * getsize.c: #include <sys/ioctl.h> under Linux to pick up ioctl()
2211 declaration
2212
2213 * closefs.c: #include <string.h> to pick up memset() declaration
2214
2215Mon Sep 4 21:45:29 1995 Remy Card <card@bbj>
2216
2217 * Makefile.in: Added support for BSD shared libraries.
2218
2219 * initialize.c (ext2fs_initialize): Correctly set the s_creator_os
2220 flag.
2221
2222Mon Sep 4 09:55:30 1995 <tytso@rsts-11.mit.edu>
2223
2224 * unix_io.c (unix_open): Add a double check; if the passed in name
2225 is NULL, return EXT2_ET_BAD_DEVICE_NAME.
2226
2227 * ext2_err.et (EXT2_ET_BAD_DEVICE_NAME): Added new error code
2228
2229Wed Aug 16 15:44:10 1995 <tytso@rsts-11.mit.edu>
2230
2231 * inode.c (ext2fs_check_directory): Use LINUX_S_ISDIR instead of
2232 S_ISDIR.
2233
2234Tue Aug 15 13:08:36 1995 <tytso@rsts-11.mit.edu>
2235
2236 * getsize.c (ext2fs_get_device_size): Add support for reading the
2237 partition size from a BSD disk label.
2238
2239Thu Aug 10 09:33:26 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2240
2241 * getsize.c (ext2fs_get_device_size): New function that determins
2242 the size of a device. Used by mke2fs and e2fsck.
2243
2244Sat Aug 12 03:09:54 1995 Remy Card <card@bbj>
2245
2246 * Makefile.in (install): Install static libraries in $(ulibdir)
2247 (/usr/lib on Linux) instead of $(libdir) (/lib on Linux).
2248
2249Wed Aug 9 17:04:23 1995 Theodore Y. Ts'o <tytso@dcl>
2250
2251 * bitmaps.c (ext2fs_free_inode_bitmap, ext2fs_free_block_bitmap):
2252 Move these functions to freefs.c.
2253
2254 * closefs.c (ext2fs_flush): If swapping blocks, clear the group
2255 descriptors shadow memory to keep purify quiet. (This
2256 also has the nice benefit that the unused portion of the
2257 shadow descriptors are zeroed out.)
2258
2259 * dirblock.c (ext2fs_write_dir_block): We need to use
2260 dirent->rec_len *before* it's byteswapped to find the
2261 location of the next directory structure!
2262
2263 * alloc.c (ext2fs_new_inode): Fix bug which could potentially
2264 cause ext2fs_new_inode to loop infinitely if we're trying
2265 to allocate an inode in group #0 and there are no free
2266 inodes at all in the system.
2267
2268 * closefs.c: #include <errno.h> if it exists.
2269
2270Sun Aug 6 13:27:50 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2271
2272 * ext2fs.h (BLOCK_FLAG_HOLE): Added new definition for
2273 BLOCK_FLAG_APPEND. Added documentation for the block
2274 interator flags.
2275
2276Sat Aug 5 11:44:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2277
2278 * Makefile.in (DLL_INSTALL_DIR, ELF_INSTALL_DIR): Set the
2279 installation directories correctly.
2280
2281Tue Jul 18 09:27:38 1995 <tytso@rsx-11.mit.edu>
2282
2283 * namei.c (process_dir_block):
2284 * mkdir.c (ext2fs_mkdir):
2285 * expanddir.c (expand_dir_proc): Use ext2fs_{read,write}_dir_block
2286 to read/write the directory block.
2287
2288 * dirblock.c (ext2fs_read_dir_block), ext2fs_write_dir_block): New
2289 file containing functions for reading and writing
2290 directory blocks (byte swapping if necesssary)
2291
2292 * block.c (block_iterate_ind, block_iterate_dind,
2293 block_iterate_tind): Byte swap the block addresses if
2294 EXT2_SWAP_BYTES is set (and swap them back before writing
2295 them out.)
2296
2297 * inode.c (inocpy_with_swap): New function.
2298 (ext2fs_get_next_inode, ext2fs_read_inode, ext2fs_write_inode):
2299 Call inocpy_with_swap if EXT2_SWAP_BYTES if set.
2300
2301 * closefs.c (ext2fs_flush): If EXT2_SWAP_BYTES is set, then swap
2302 the superblock and group descriptors before writing it out.
2303
2304 * openfs.c (ext2fs_open): If the magic number is byte-swapped,
2305 then set the EXT2_SWAP_BYTES and byte-swap the superblock
2306 and group descriptors.
2307
2308 * swapfs.c (ext2fs_swap_super, ext2fs_swap_group_desc): New functions
2309 to desp ext2 filesystem structures.
2310
2311 * bitops.c (set_bit, clear_bit, test_bit): Use modifications
2312 supplied by Pete A. Zaitcev so that the C language
2313 versions of these functions are more portable. They will
2314 now work on both little and big endian systems, and the
2315 assumption that 32-bit integers are used is gone.
2316
2317 * bitops.h (ext2_swab16, ext2_swab32): Added new functions for
2318 doing byte swapping.
2319
2320 * ext2fs.h (EXT2_SWAP_BYTES): Add new flag which indicates that
2321 byte swapping should take place.
2322
2323Sun Jul 16 06:21:43 1995 <tytso@rsx-11.mit.edu>
2324
2325 * Makefile.in, cmp_bitmaps.c (ext2fs_compare_block_bitmap_end,
2326 ext2fs_compare_inode_bitmap_end): Added new file
2327 containing routines to compare bitmaps.
2328
2329 * ext2_err.et (EXT2_ET_NEQ_BLOCK_BITMAP, EXT2_ET_NEQ_INODE_BITMAP):
2330 Added new error codes.
2331
2332Sat Jul 15 04:23:37 1995 <tytso@rsx-11.mit.edu>
2333
2334 * inode.c (ext2fs_get_next_inode): Don't check scan->inode_buffer;
2335 if the magic number is correct, it will be allocated.
2336
2337Fri Jul 14 19:02:59 1995 <tytso@rsx-11.mit.edu>
2338
2339 * block.c (block_iterate_ind, block_iterate_dind,
2340 block_iterate_tind): Don't recompute block_nr each loop;
2341 just increment it! Factor check of BLOCK_FLAG_APPEND out
2342 of the loop. Factor mask of BLOCK_CHANGED into changed
2343 variable out of the loop. (block_iterate_ind, in
2344 particular, gets called a lot, so every little
2345 optimization helps.)
2346
2347Thu Jul 13 08:02:45 1995 <tytso@rsx-11.mit.edu>
2348
2349 * block.c (block_iterate_ind, block_iterate_dind,
2350 block_iterate_tind): Precompute limit of loop to speed up
2351 block_iterate_ind and company.
2352
2353 * bitops.h (ext2fs_fast_mark_block_bitmap,
2354 ext2fs_fast_unmark_block_bitmap, ext2fs_fast_test_block_bitmap,
2355 ext2fs_fast_mark_inode_bitmap, ext2fs_fast_unmark_inode_bitmap,
2356 ext2fs_fast_test_inode_bitmap): Add fast version of these
2357 functions, which don't do range checking.
2358
2359 * bitops.h (ext2fs_get_block_bitmap_start,
2360 ext2fs_get_inode_bitmap_start, ext2fs_get_block_bitmap_end,
2361 ext2fs_get_inode_bitmap_end): Add new accessor functions
2362 which return the start and end points of the bitmaps.
2363
2364Tue Jul 11 18:59:41 1995 <tytso@rsx-11.mit.edu>
2365
2366 * llseek.c (ext2_llseek): If the offset is small enough, use lseek
2367 instead of llseek. The errno if the offset is too large
2368 and lseek is not supported should be EINVAL, not -EINVAL.
2369
2370Thu Jun 15 23:43:02 1995 Remy Card <card@bbj>
2371
2372 * Makefile.in: Added support for ELF shared libraries.
2373 Fixed typos in the compilation rules.
2374 (distclean): Added Makefile.
2375
2376 * llseek.c (llseek): New function, if llseek() does not exist in the
2377 C library.
2378 (ext2_llseek): Changed to call llseek().
2379
2380Mon Jun 12 08:29:07 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2381
2382 * ext2fs.h: Use __u32 to define blk_t, instead of unsigned long.
2383
2384Sun Jun 11 15:02:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2385
2386 * mkdir.c (ext2fs_mkdir): Use LINUX_S_IFDIR instead of S_IFDIR.
2387
2388 * ext2fs.h (LINUX_S_IFDIR): Define a linux specific versions of
2389 the S_*, which are normally defined in <sys/stat.h>. This
2390 allows us to compile e2fsprogs on a non-Linux system,
2391 which may have a different value for S_IFDIR.
2392
2393Sat Jun 10 23:47:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2394
2395 * bitops.c (clear_bit, set_bit): Remove calls to cli() and sti();
2396 this is a user-mode application!
2397
2398Thu Jun 8 13:13:22 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
2399
2400 * llseek.c: Put the include of <linux/unistd.h> inside the #ifdef
2401 __linux__ so that non-linux systems won't see it.
2402
2403 * alloc.c: Include <errno.h> if possible.
2404 * badblocks.c: Ditto.
2405 * bb_inode.c: Ditto.
2406 * bitmaps.c: Ditto.
2407 * block.c: Ditto.
2408 * expanddir.c: Ditto.
2409 * get_pathname.c: Ditto.
2410 * initialize.c: Ditto.
2411 * inode.c: Ditto.
2412 * llseek.c: Ditto.
2413 * mkdir.c: Ditto.
2414 * namei.c: Ditto.
2415 * newdir.c: Ditto.
2416 * openfs.c: Ditto.
2417 * rw_bitmaps.c: Ditto.
2418 * unix_io.c: Ditto.
2419
2420 * Makefile.in: Rewritten to conform to GNU coding standards and
2421 support separate compilation directories.
2422
2423Thu May 11 04:13:12 1995 <tytso@rsx-11.mit.edu>
2424
2425 * initialize.c (ext2fs_initialize): Don't allow more than one
2426 bitmaps's worth of inodes in a group.
2427
Theodore Ts'of3db3561997-04-26 13:34:30 +00002428Sat Mar 11 14:07:11 1995 Theodore Y. Ts'o <tytso@localhost>
2429
2430 * llseek.c (ext2_llseek): Added error checking to the llseek()
2431 compat code to protect against overflow. This only
2432 applies to 1.0 and early 1.1 kernels, which don't support
2433 the llseek() system call.
2434
2435Thu Nov 24 16:29:00 1994 Theodore Y. Ts'o (tytso@rt-11)
2436
2437 * unix_io.c (unix_open): Initialize the read_error and write_error
2438 io_channel pointers to be null.
2439
2440 * bb_inode.c (clear_bad_block_proc): If an illegal block number is
2441 found, clear it but don't try to update the filesystem
2442 accounting information, since that's hopeless anyway.
2443
2444 * block.c (bloblock_iterate_ind, bloblock_iterate_dind,
2445 bloblock_iterate_tind): Check to see if the indirect blocks are
2446 valid before trying to read them.
2447
2448 * ext2_err.et (EXT2_ET_BAD_IND_BLOCK, EX2_ET_BAD_DIND_BLOCK,
2449 EXT2_ET_BAD_TIND_BLOCK): Add new error codes.
2450
2451 * bitops.h (ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
2452 ext2fs_test_block_bitmap, ext2fs_mark_inode_bitmap,
2453 ext2fs_unmark_inode_bitmap, ext2fs_test_inode_bitmap): If an
2454 illegal block or inode number is passed in, return instead
2455 of trying to test, set, or clear the bit.
2456
2457Mon Nov 7 21:32:33 1994 Remy Card <card@bbj>
2458
2459 * Makefile: Added a dummy install target in case shared libraries
2460 are not built.
2461
2462Mon Oct 24 14:11:44 1994 (tytso@rsx-11)
2463
2464 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix calculation of how
2465 the real last block of the bitmap should be calculated.
2466
2467Wed Sep 7 10:05:36 1994 (tytso@rsx-11)
2468
2469 * bitmaps.c (ext2fs_fudge_inode_bitmap_end,
2470 ext2fs_fudge_block_bitmap_end, ext2fs_clear_inode_bitmap,
2471 ext2fs_clear_block_bitmap, ext2fs_free_inode_bitmap,
2472 ext2fs_free_block_bitmap): Add magic number checking for
2473 the inode and block bitmaps.
2474
2475 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix to set the correct
2476 magic number for a block bitmap instead of an inode bitmap.
2477
2478 * inode.c (ext2fs_close_inode_scan, ext2fs_get_next_inode): Add
2479 magic number checking for the inode_scan structure.
2480
2481 * badblocks.c (badblocks_list_free, badblocks_list_add,
2482 badblocks_list_test, badblocks_list_iterate_begin,
2483 badblocks_list_iterate, badblocks_list_iterate_end): Add
2484 magic number checking for the badblocks_list and
2485 badblocks_iterate structures.
2486
2487 * ext2_err.et (EXT2_ET_MAGIC_UNIX_IO_CHANNEL):
2488 * unix_io.c (unix_open, unix_close, unix_set_blksize, unix_read_blk,
2489 unix_write_blk, unix_flush): Add magic number checking
2490 both for io_channel structure and unix_private_data
2491 structure.
2492
2493 * openfs.c (ext2fs_open): Add check for io_manager structure's
2494 magic number.
2495
2496 * rw_bitmaps.c (ext2fs_write_inode_bitmap, ext2fs_write_block_bitmap,
2497 ext2fs_read_inode_bitmap, ext2fs_read_block_bitmap,
2498 ext2fs_read_bitmaps, ext2fs_write_bitmaps):
2499 * read_bb.c (ext2fs_read_bb_inode):
2500 * read_bb_file.c (ext2fs_read_bb_FILE):
2501 * newdir.c (ext2fs_new_dir_block):
2502 * namei.c (ext2fs_dir_iterate, ext2fs_lookup, ext2fs_namei):
2503 * link.c (ext2fs_link, ext2fs_unlink):
2504 * inode.c (ext2fs_open_inode_scan, ext2fs_read_inode,
2505 ext2fs_write_inode, ext2fs_get_blocks,
2506 ext2fs_check_directory):
2507 * get_pathname.c (ext2fs_get_pathname):
2508 * expanddir.c (ext2fs_expand_dir):
2509 * block.c (ext2fs_block_iterate):
2510 * bitmaps.c (ext2fs_allocate_inode_bitmap,
2511 ext2fs_allocate_block_bitmap):
2512 * bb_inode.c (ext2fs_update_bb_inode):
2513 * alloc.c (ext2fs_new_inode,ext2fs_new_block,ext2fs_get_free_blocks):
2514 * check_desc.c (ext2fs_check_desc):
2515 * closefs.c (ext2fs_close, ext2fs_flush):
2516 * freefs.c (ext2fs_free): Add check for ext2_filsys magic number.
2517
2518 * Makefile:
2519 * ext2fs.h:
2520 * openfs.c:
2521 * check_desc.c (ext2fs_check_desc): Move ext2fs_check_desc from
2522 openfs.c into its own file.
2523
2524 * ext2fs.h (EXT2_CHECK_MAGIC): Added macro for checking for
2525 structure magic numbers.
2526
2527 * closefs.c (ext2fs_flush): Folded in Remy Card's changes to clear
2528 the EXT2_VALID_FS flag in the backup superblock blocks, so that if
2529 someone uses the -b option to specify the use of the backup
2530 superblock --- this usually means that the main superblock is
2531 toast. :-)
2532
2533 * ext2fs.h:
2534 * ext2_err.et (EXT2_ET_REV_TOO_HIGH):
2535 * openfs.c (ext2fs_open): Folded in Remy Card's changes to add a
2536 revision level to the superblock.
2537
2538Sun Aug 21 00:50:08 1994 Theodore Y. Ts'o (tytso@rt-11)
2539
2540 * ext2fs.h:
2541 * bitmaps.c:
2542 * bitops.c
2543 * bitops.h:
2544 * openfs.c:
2545 * initialize.c: Completely revamped the inode and block bitmap
2546 structures, so that they can be better chance of being extensible
2547 in a shared library. They are now their own type, instead of
2548 being a char *. Also, the function signatures of
2549 ext2fs_test_block_bitmap, ext2fs_mark_block_bitmap,
2550 ext2fs_unmark_block_bitmap, ext2fs_test_inode_bitmap,
2551 ext2fs_mark_inode_bitmap, and ext2fs_unmark_inode_bitmap were
2552 changed to eliminate the ext2_filsys argument, since it is no
2553 longer necessary.
2554
2555Wed Aug 17 21:46:44 1994 Remy Card (card@bbj)
2556
2557 * unix_io.c (unix_read_blk and unix_write_blk): use the llseek
2558 system call if available.
2559
2560 * llseek.c: new file. This is the stub calling the llseek system
2561 call which allows supports for 2GB+ file systems.
2562
2563 * initialize.c (ext2fs_initialize): Ext2fs_initialize now stores
2564 the creator operating system.
2565
2566Wed Aug 17 10:03:24 1994 Theodore Y. Ts'o (tytso@rt-11)
2567
2568 * initialize.c (ext2fs_initialize): Ext2fs_initialize now sets up
2569 the group descriptor statistics in addition to everything else.
2570 This relieves mke2fs of the responsibility of doing it.
2571
2572 * bitops.c, bitops.h: Add assembly inline functions for the 68000.
2573 Added a new #define, _EXT2_HAVE_ASM_BITOPS_ to control whether or
2574 not the generic C function equivalents should be included or not.
2575
2576 * openfs.c (ext2fs_open): If a superblock is specified, then use
2577 the backup group descriptors that go along with this superblock,
2578 instead of using the primary group descriptors. This allows
2579 e2fsck to recover filesystems where the primary group descriptors
2580 have been trashed.
2581
2582