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