blob: d1e4f18df61606cd7ba66d512cae0227dce3ea0b [file] [log] [blame]
Theodore Ts'o9ed06a12002-10-31 11:45:06 -050012002-10-31 Theodore Ts'o <tytso@mit.edu>
2
Theodore Ts'o55ca9ae2002-10-31 12:21:05 -05003 * flushb.c (ext2fs_sync_device): If the BLKFLSBUF ioctl succeeds,
4 don't try the FDFLUSH ioctl that was required for floppies
5 with older kernels. This avoids needless whining from the
6 MD device driver. (Addresses Sourceforge bug #545832).
7
Theodore Ts'o9ed06a12002-10-31 11:45:06 -05008 * openfs.c (ext2fs_open): Fix bug which caused us to pass the
9 wrong group_block to ext2fs_descriptor_block_loc if we're
10 using the backup superblock/block group descriptors.
11 (ext2fs_descriptor_block_loc): If we're using the backup
12 superblock descriptors, use the backup descriptor block in
13 the next block group.
14
Theodore Ts'o76dd5e52002-10-30 23:07:21 -0500152002-10-30 Theodore Ts'o <tytso@mit.edu>
16
17 * alloc_tables.c (ext2fs_allocate_group_table): Allocate the inode
18 table so that it buts up against the bitmap blocks, to
19 avoid block fragmentation.
20
21 * closefs.c (write_bgdesc), initalize.c (ext2fs_initialize): Fix
22 bug; only allocate group descriptor blocks up to
23 s_first_meta_bg.
24
Theodore Ts'o9d2aefb2002-10-25 17:29:55 -0400252002-10-25 Theodore Ts'o <tytso@mit.edu>
26
27 * ext2_fs.h: Add a new superblock field, s_mkfs_time, so that we
28 know when a filesystem was created. (Sometimes this can
29 be useful...)
30
31 * initialize.c (ext2fs_initialize): Set the s_mkfs_time field.
32
Theodore Ts'oc046ac72002-10-20 00:38:57 -0400332002-10-20 Theodore Ts'o <tytso@valinux.com>
34
Theodore Ts'o4a959fe2002-10-20 01:52:52 -040035 * ext2_fs.h (EXT3_DEFM_JMODE): Add new default mount options for
36 the journal data mode.
37
Theodore Ts'oc046ac72002-10-20 00:38:57 -040038 * closefs.c (ext2fs_flush, write_bgdesc), ext2_fs.h, ext2fs.h,
39 openfs.c (ext2fs_descriptor_block_loc, ext2fs_open), initialize.c
40 (ext2fs_initialize), swapfs.c (ext2fs_swap_super): Add support for
41 the meta_blockgroup filesystem format.
42
Theodore Ts'oa0c3fd52002-10-15 17:43:43 -0400432002-10-15 <tytso@snap.thunk.org>
44
45 * ext2_fs.h: Add new field in superblock for default mount options.
46
Theodore Ts'o3e699062002-10-13 23:56:28 -0400472002-10-13 Theodore Ts'o <tytso@mit.edu>
48
49 * ext2fs.h: Add #include of header files necessary for ext2fs.h to
50 compile cleanly.
51
Theodore Ts'o8132d842002-10-02 22:07:17 -0400522002-10-02 Theodore Y. Ts'o <tytso@mit.edu>
53
54 * rw_bitmaps.c (ext2fs_write_block_bitmap,
55 ext2fs_read_block_bitmap): Don't set the CHANGED bit just
56 because the bitmap is getting written to disk. Make
57 ext2fs_swap_bitmap be a static function, since it's not
58 intended to be exported.
59
60 * swapfs.c (ext2fs_swap_super): Byte-swap the hash seed
61
Theodore Ts'oc6633052002-09-24 01:26:50 -0400622001-09-24 Theodore Tso <tytso@mit.edu>
63
64 * Release of E2fsprogs 1.29
65
Theodore Ts'o87ee8dc2002-08-31 03:02:57 -0400662001-08-31 Theodore Tso <tytso@thunk.org>
67
68 * Release of E2fsprogs 1.28
69
Theodore Ts'oea1959f2002-08-31 02:32:41 -0400702002-08-31 Theodore Ts'o <tytso@valinux.com>
71
72 * dblist.c (ext2fs_dblist_sort): New function which allows the
73 caller to pass in a special sort comparison function.
74
Theodore Ts'oee504122002-08-20 01:14:30 -0400752002-08-20 Theodore Ts'o <tytso@mit.edu>
76
77 * valid_blk.c (ext2fs_inode_has_valid_blocks): Fix bug which
78 failed to accurately characterize non-standard slow
79 symlinks. (Which don't appear in practice on real-life
80 systems, fortunately.)
81
Theodore Ts'ob33278c2002-08-17 10:52:51 -0400822002-08-17 Theodore Ts'o <tytso@mit.edu>
83
Theodore Ts'oe5b16432002-08-17 21:11:29 -040084 * Makefile.in: Remove inode_io.o from the standard object files,
85 and only build it if debugfs is enabled (it requires
86 fileio.o, which is only built if --disable-debugfs isn't
87 specified to configure).
88
Theodore Ts'ob33278c2002-08-17 10:52:51 -040089 * dirhash.c (ext2fs_dirhash): Change the MD4 hash in a backwards
90 incompatible way so that it is no longer
91 endian-dependent. Add the TEA hash. Allow the seed
92 parameter to be optional.
93
94 * ext2_fs.h: Remove the HALF_MD4_SEED and HALF_MD4_64 hashes.
95 These features are all now in the HALF_MD4 hash. Add
96 definition for EXT2_HASH_TEA.
97
98 * ext2fs.h (ext2fs_dirhash): Change function prototype so it takes
99 a pointer instead of an array.
100
Theodore Ts'o0684a4f2002-08-17 10:19:44 -04001012002-08-16 Theodore Ts'o <tytso@mit.edu>
102
103 * ext2_err.et.in (EXT2_ET_BAD_EA_BLOCK_NUM): New error code
104
105 * ext2fs.h (ext2fs_inode_data_blocks): New function which returns
106 the number of data blocks used by an inode exclusive of
107 the EA block.
108
109 * ext_attr.c (ext2fs_adjust_ea_refcount): New function which
110 adjusts the reference count in an extended attribute block.
111
112 * valid_blk.c (ext2fs_inode_has_valid_blocks): Add code to
113 correctly deal with extended attribute blocks in symbolic
114 links.
115
Theodore Ts'o917e8752002-08-13 15:16:47 -04001162002-08-13 <tytso@snap.thunk.org>
117
118 * Makefile.in: Move dupfs.o and test_io.o from the
119 needed-by-debugfs object list to the needed-by-resizer
120 object list. Fixes compile problem if the system is built
121 with only --disable-debugfs.
122
Theodore Ts'ofe4dd422002-07-29 19:26:33 -04001232002-07-29 Theodore Ts'o <tytso@mit.edu>
124
125 * link.c (ext2fs_link): When adding a new link to a directory,
126 clear the HTREE bit.
127
Theodore Ts'occ90bdf2002-07-23 13:11:53 -04001282002-07-23 Theodore Ts'o <tytso@mit.edu>
129
130 * dirhash.c (ext2fs_dirhash): Fix bug which caused MD4
131 calculations for names > 32 characters to be completely
132 bogus. Changed MD4 calculation to match what is currently
133 being used in the CVS gkernel tree.
134
Theodore Ts'o3ea1f0f2002-07-19 22:30:37 -04001352002-07-19 Theodore Ts'o <tytso@mit.edu>
136
Theodore Ts'ob7a00562002-07-20 00:28:07 -0400137 * ext2_fs.h: Add s_hash_seed and s_def_hash_version to the
138 superblock definition.
139
140 * badblocks.c, freefs.c, ext2fs.h: Use the badblocks functions to
141 create a set of u32_list functions.
142
Theodore Ts'o3ea1f0f2002-07-19 22:30:37 -0400143 * dirhash.c (halfMD4Transform): Shift the hash by one bit,
144 since that's required by the directory indexing code.
145
Theodore Ts'of154d2f2002-07-14 08:33:32 -04001462002-07-14 Theodore Ts'o <tytso@mit.edu>
147
Theodore Ts'o50cd7e02002-07-14 16:00:50 -0400148 * ext2fs.h, read_bb_file.c: Change private to priv_data, to avoid
149 using a C++ reserved word.
150
Theodore Ts'of154d2f2002-07-14 08:33:32 -0400151 * unix_io.c (unix_open): Only attempt the setrlimit workaround if
152 the kernel version is 2.4.10 -- 2.4.17, since otherwise an
153 old version of glibc (built against 2.2 headers) will
154 interact badly with the workaround to actually cause more
155 problems. I hate it when the glibc folks think they're
156 being smarter than the kernel....
157
Theodore Ts'o9e6c5dd2002-07-09 11:08:10 -04001582002-06-28 Andreas Dilger <adilger@clusterfs.com>
159
160 * ext2_fs.h: Add superblock field for reserved group descriptors.
161
Theodore Ts'o2cb403b2002-06-28 08:10:29 -04001622002-06-28 Theodore Ts'o <tytso@mit.edu>
163
164 * bitops.h: Add #define's for ext2fs_{l,b}e{32,16}_to_cpu and
165 ext2fs_cpu_to_{l,b}e{32,16}
166
Theodore Ts'o5818d672002-06-27 21:19:45 -04001672002-06-27 Theodore Ts'o <tytso@mit.edu>
168
169 * ismounted.c (check_mntent): In AIX 4.3, MOUNTED isn't defined.
170 Add appropriate fallbacks in this case.
171
Theodore Ts'o503f9e72002-06-26 16:52:10 -04001722002-06-26 Theodore Ts'o <tytso@mit.edu>
173
174 * dirhash.c (ext2fs_dirhash): Change function signature to support
175 a hash seed, and to return the minor hash (for 64-bit hash
176 support). Add support for the half MD4, half MD4 with
177 seed, and half MD4 with seed and 64 bits.
178
Theodore Ts'o88372d52002-06-15 18:58:39 -04001792002-06-15 Theodore Ts'o <tytso@mit.edu>
180
181 * ext2_fs.h (EXT2_DIRSYNC_FL): Add new file.
182
Andreas Dilger7da78ff2002-06-09 17:38:50 -06001832002-06-09 Andreas Dilger <adilger@clusterfs.com>
184
Andreas Dilgerb21bf262002-06-10 11:05:56 -0600185 * ext2_fs.h: Add macros for maximum block/inode counts:
186 EXT2_INODES_PER_BLOCK, EXT2_MAX_BLOCKS_PER_GROUP,
187 and EXT2_MAX_INODES_PER_GROUP.
188
189 * openfs.c (ext2fs_open): Check that the number of blocks in a group
190 is less than 2^16, otherwise we need an INCOMPAT flag (not
191 in existence yet, if ever) to open such a filesystem.
192
193 * initialize.c (ext2fs_initialize): Limit the number of blocks and
194 inodes in a group to less than 2^16.
195
1962002-06-09 Andreas Dilger <adilger@clusterfs.com>
197
Andreas Dilger7da78ff2002-06-09 17:38:50 -0600198 * ext2_fs.h: Further minor cleanups of the header. Consolidate
199 some checks for __KERNEL__ into one place.
200
Andreas Dilger0fbd1a82002-05-23 00:32:34 -06002012002-05-22 Andreas Dilger <adilger@clusterfs.com>
202
203 * ext2_fs.h: Remove macros accessing u.ext2_sb field and use
204 the EXT2_SB() macro instead. Remove kernel function
205 prototypes also. This matches the 2.5 kernel, and
206 is also cleaner for other reasons. Whitespace cleanup.
207
Theodore Ts'o0d634672002-05-22 00:22:38 -04002082002-05-21 Theodore Ts'o <tytso@mit.edu>
209
210 * ext2_ext_attr.h: Update to V2 version of the Bestbits format.
211
Theodore Ts'o31e29a12002-05-17 10:53:07 -04002122002-05-16 Andreas Dilger <adilger@clusterfs.com>
213
214 * ext2_fs.h: Change limits to support filesystems with 8k blocks.
215
216 * initialize.c (ext2fs_initialize): Remove assumption that
217 blocksizes are always <= 4k.
218
2192002-05-11 Theodore Ts'o <tytso@mit.edu>
Theodore Ts'ob38cd282002-05-11 22:13:20 -0400220
221 * bmap.c (ext2fs_bmap): Fix bug which caused ext2fs_bmap to fail
222 silently if inode pointer is NULL (and ext2fs_bmap is
223 expected to read the inode itself).
224
Theodore Ts'o31e29a12002-05-17 10:53:07 -04002252002-04-27 Theodore Ts'o <tytso@mit.edu>
Theodore Ts'of0efd292002-04-27 17:07:52 -0400226
227 * ismounted.c (check_mntent_file, is_swap_device): Verify that the
228 file we are checking is a block device file before looking
229 at st_rdev, since it's not valid for normal files.
230 (is_swap_device): Move so that it is outside the
231 HAVE_MNTENT_H, so that it is always built.
232
Theodore Ts'o52783e02002-03-11 15:04:45 -05002332002-03-11 Theodore Tso <tytso@mit.edu>
234
Theodore Ts'of9190c82002-03-12 01:05:06 -0500235 * dirblock.c (ext2fs_read_dir_block2, ext2fs_write_dir_block): New
236 functions which take an extra flags argument. The flag
237 EXT2_DIRBLOCK_V2_STRUCT will reverse when the name_len
238 field is byte swampped on big-endian machines, since in
239 the V2 structure, name_len is a char field which is
240 doesn't need to be byte swapped --- except if an
241 old-style kernel had byte-swapped the name_len field
242 as part of the V1 structure.
243
Theodore Ts'o52783e02002-03-11 15:04:45 -0500244 * ext2_err.et.in (EXT2_ET_DIRHASH_UNSUPP): New error code
245
246 * dirhash.c (ext2fs_dirhash): New function which calculates the
247 hash for a filename in an indexed directory.
248
Theodore Ts'oa8e77242002-03-08 03:12:14 -05002492002-03-08 Theodore Tso <tytso@mit.edu>
250
251 * Release of E2fsprogs 1.27
252
Theodore Ts'o304905d2002-03-07 20:55:01 -05002532002-03-07 Theodore Tso <tytso@mit.edu>
254
Theodore Ts'o546a1ff2002-03-07 23:52:56 -0500255 * ext2fs.h (ext2fs_inode_io_intern): Add missing function prototype.
256
257 * bmap.c, fileio.c, inode_io.c, tst_badblocks.c,
258 tst_byteswap.c: Fix gcc -Wall complaints
259
Theodore Ts'o304905d2002-03-07 20:55:01 -0500260 * Makefile.in (check): Use LD_LIBRARY_PATH to run test programs.
261 (From Philipp Thomas <pthomas@suse.de>)
262
Theodore Ts'o57173d02002-02-26 14:59:39 -05002632002-02-25 Theodore Tso <tytso@mit.edu>
Theodore Ts'odf614db2002-02-25 04:28:45 -0500264
265 * ext2_fs.h: Add structure definitions for the directory indexing
266 extension.
267
Theodore Ts'o57173d02002-02-26 14:59:39 -05002682002-02-23 Theodore Tso <tytso@mit.edu>
Theodore Ts'o64e1b272002-02-23 18:50:32 -0500269
270 * unix_io.c (unix_open): Fix 2.4 resource limit workaround so that
271 it doesn't break things on mis32, sparc32, and alpha
272 platforms.
273
Theodore Ts'o57173d02002-02-26 14:59:39 -05002742002-02-21 Theodore Tso <tytso@mit.edu>
Theodore Ts'of3e3d312002-02-21 20:48:25 -0500275
276 * ismounted.c (is_swap_device): Fix file descriptor/memory leak;
277 we were missing an fclose().
278
Theodore Ts'o57173d02002-02-26 14:59:39 -05002792002-02-20 Theodore Tso <tytso@mit.edu>
Theodore Ts'of12e2852002-02-20 01:06:25 -0500280
281 * Makefile.in, inode_io.c, ext2fs.h, ext2_err.et.in: Add new io
282 abstraction interface which exports an ext2 inode.
283
Theodore Ts'of3e3d312002-02-21 20:48:25 -0500284 * ext2fs.h, fileio.c (ext2fs_file_flush): Export ext2fs_file_flush
285 as a public interface. Change void * to const void * in
286 ext2fs_file_write's interface.
Theodore Ts'of12e2852002-02-20 01:06:25 -0500287
288 * test_io.c (test_close), unix_io.c (unix_close): Remove unneeded
289 conditional; save a few bytes.
290
Theodore Ts'o57173d02002-02-26 14:59:39 -05002912002-02-12 Theodore Tso <tytso@mit.edu>
Theodore Ts'o7d4343d2002-02-12 02:34:44 -0500292
293 * Makefile.in (tst_badblocks): Add some extra .o files when
294 linking the debugging program tst_badblocks which are
295 needed if we aren't compiling with inline functions enable.
296
297 * kernel-list.h (__inline__): On non-gcc and non-Watcom compilers,
298 define away __inline__ since it may not be supported.
299
300 * kernel-jbd.h (jbd_debug): For systems that don't do STDC, use a
301 stripped down jbd_debug that doesn't use variadic
302 arguments. This will cause warnings under AIX, but things
303 should still build.
304
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05003052002-02-03 Theodore Tso <tytso@thunk.org>
306
307 * Release of E2fsprogs 1.26
308
Theodore Ts'o57173d02002-02-26 14:59:39 -05003092002-02-03 Theodore Tso <tytso@mit.edu>
Theodore Ts'o7f961d42002-02-03 01:28:52 -0500310
311 * mkdir.c (ext2fs_mkdir): Change to use ext2fs_inode_alloc_stats2
312 so that the number of directories in use is adjusted
313 appropriately.
314
315 * alloc_stats.c (ext2fs_inode_alloc_stats2): Add new function
316 which optionally will modify the number of directories
317 count.
318
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05003192002-01-03 Theodore Tso <tytso@mit.edu>
Theodore Ts'o8bd0c952002-01-03 03:29:19 -0500320
321 * dir_iterate.c (ext2fs_dir_iterate2, ext2fs_process_dir_block):
322 Add support for a new flag, DIRENT_FLAG_INCLUDE_REMOVED,
323 which will return deleted directory entries.
324 ext2fs_dir_iterate2 takes a new callback function which
325 is identical with the one used by
326 ext2fs_dblist_dir_iterate(). If the directory entry is
327 deleted, the callback function will be called with the
328 entry paraemter set to DIRENT_DELETED_FILE.
329
330 * Makefile.in, alloc_stats.c (ext2fs_inode_alloc_stats,
331 ext2fs_block_alloc_stats): New functions which update
332 block/inode allocation statistics in the bitmaps, block
333 group descriptors, and superblock.
334
335 * mkjournal.c (mkjournal_proc), mkdir.c (ext2fs_mkdir),
336 expanddir.c (expand_dir_proc), bb_inode.c
337 (clear_bad_block_proc, set_bad_block_proc,
338 ext2fs_update_bb_inode), alloc.c (ext2fs_alloc_block):
339 Update to use new block/inode allocation statistics.
340
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05003412001-12-24 Theodore Tso <tytso@mit.edu>
Theodore Ts'oa8fd6e32001-12-24 01:40:35 -0500342
Theodore Ts'o07cefe72001-12-24 15:20:22 -0500343 * ismounted.c (is_swap_device): New function used by
344 ext2fs_check_if_mounted and ext2fs_check_mount_point which
345 determines whether or not the specified device is a swap
346 device by using /proc/swaps. More bulletproofing for
347 idiotic/careless system administrators!
348
Theodore Ts'o6a525062001-12-24 09:40:00 -0500349 * ext2fs.h, openfs.c (ext2fs_open), initialize.c
350 (ext2fs_initialize), mkdir.c (ext2fs_mkdir): Add a new
351 field to struct_ext2_filsys, umask. This field is
352 initialize to 022, and affects ext2fs_mkdir in the obvious
353 way. (In the future umask should also affect new file
354 creation routines, but the fileio functions don't
355 currently support this yes.)
356
Theodore Ts'oa8fd6e32001-12-24 01:40:35 -0500357 * ismounted.c (check_mntent_file): Stat all of the entries in
358 /etc/mtab and/or /proc/mounts in order to catch dim-witted
359 system administrators who might have created alias
360 devices.
361
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05003622001-12-23 Theodore Tso <tytso@mit.edu>
Theodore Ts'o19007e52001-12-23 19:33:51 -0500363
364 * Makefile.in, jfs_user.h: Move linux/jbd.h to
365 ext2fs/kernel-jbd.h, to avoid using the system header
366 file version of hbd.h when using diet glibc (since it
367 forcibly adds /usr/include to the beginning of the
368 include search path.)
369
370 * kernel-jbd.h, kernel-list.h, jfs_compat.h: Move files from
371 include/linux directory.
372
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05003732001-12-16 Theodore Tso <tytso@mit.edu>
Theodore Ts'o8cf93332001-12-16 02:23:36 -0500374
Theodore Ts'o4ea7bd02001-12-16 23:23:37 -0500375 * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap),
376 ext_attr.c (ext2fs_read_ext_attr, ext2fs_write_ext_attr),
377 fileio.c (ext2fs_file_write): Fix gcc -Wall nits
378
Theodore Ts'o8cf93332001-12-16 02:23:36 -0500379 * Makefile.in, jfs_user.h: linux/jfs.h has been renamed to
380 linux/jbd.h
381
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05003822001-12-03 Theodore Tso <tytso@mit.edu>
Theodore Ts'obd278802001-12-03 05:47:32 +0100383
384 * unix_io.c (unix_open): Make sure the ulimit workaround works
385 regardless of the version of glibc which is used to
386 compild e2fsprogs.
387
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05003882001-11-26 Theodore Tso <tytso@mit.edu>
Theodore Ts'o8880e752001-11-26 21:05:36 -0500389
390 * unix_io.c (unix_open): Work around a bug in 2.4.10+ kernels by
391 trying to unset the filesize limit if at all possible,
392 if a block device is getting opened. (The filesize limit
393 shouldn't be applied against writes to a block device, but
394 starting in 2.4.10, the kernel is doing this.)
395
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05003962001-11-05 Theodore Tso <tytso@mit.edu>
Theodore Ts'ob3f5b4c2001-11-05 19:22:02 -0500397
Theodore Ts'o5bc28df2001-11-09 17:34:54 -0500398 * mkjournal.c (ext2fs_add_journal_inode): When creating a .journal
399 file on adding a journal to an already-mounted filesystem,
400 try to clear the ext2 file attributes on an already
401 existing .journal file so that we don't fail if on a
402 partially added journal to the filesystem.
403
Theodore Ts'ob3f5b4c2001-11-05 19:22:02 -0500404 * ext2_fs.h: Define a new ext2 file attribute, EXT2_NOTAIL_FL,
405 which signals that a particular inode should not have the
406 last bits of data (the "tail") be merged with another
407 file. This is necessary to keep LILO happy.
408
Theodore Ts'ofbf91112001-09-20 10:47:47 -04004092001-09-20 Theodore Tso <tytso@thunk.org>
410
411 * Release of E2fsprogs 1.25
412
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05004132001-09-16 Theodore Tso <tytso@mit.edu>
Theodore Ts'o7746cad2001-09-17 00:02:21 -0400414
415 * ext2_ext_attr.h: Remove unneeded #include of <linux/config.h>
416 which was breaking the build on the Hurd. (Addresses
417 Debian bug #112414).
418
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05004192001-09-13 Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o2038b632001-09-14 07:44:25 -0400420
421 * ismounted.c (check_mntent_file): We now validate the entry in
422 /etc/mtab to make sure the filesystem is really mounted,
423 since some broken distributions (read: Slackware) have
424 buggy boot scripts that don't initialize /etc/mtab before
425 checking non-root filesystems. (Slackware also doesn't
426 check the root filesystem separately, and reboot if the
427 root filesystem had changes applied to it, which is
428 dangerous and broken.)
429
Theodore Ts'ofb707752001-09-04 15:00:37 -04004302001-09-02 Theodore Tso <tytso@thunk.org>
431
432 * Release of E2fsprogs 1.24a
433
Theodore Ts'o109624a2001-08-31 00:59:55 -04004342001-08-30 Theodore Tso <tytso@thunk.org>
435
436 * Release of E2fsprogs 1.24
437
Theodore Ts'oeddeb562001-08-30 17:24:02 -04004382001-08-30 Theodore Tso <tytso@valinux.com>
439
440 * getsize.c (ext2fs_get_device_size): Back out BLKGETSIZE64
441 changes, since the ioctl number has been reused by another
442 unofficial patch.
443
Theodore Ts'o943ed872001-08-27 12:29:22 -04004442001-08-15 Theodore Tso <tytso@valinux.com>
445
446 * Release of E2fsprogs 1.23
447
Theodore Ts'o89a6ebd2001-08-05 20:31:09 -04004482001-08-05 Theodore Tso <tytso@valinux.com>
449
450 * alloc.c (ext2fs_new_inode, ext2fs_new_block): Use the fast
451 version of the bitmap test routines to speed up these
452 routines. (At some point I may want to make these
453 routines use the find_first_bit functions, but that will
454 add a lot of complexity since it means that these
455 functions will have to break the bitmap abstraction
456 boundary. It's not clear it's worth it.)
457
458 * mkjournal.c (mkjournal_proc): Remember the last block allocated
459 to speed up ext2fs_new_block().
460
Theodore Ts'o37517212001-07-29 12:01:09 -04004612001-07-29 Theodore Tso <tytso@valinux.com>
462
463 * finddev.c (scan_dir): Fix memory leak; we weren't calling
464 closedir() when exiting the function in all cases.
465
Theodore Ts'of35e6442001-07-27 15:35:21 -04004662001-07-27 Theodore Tso <tytso@valinux.com>
467
Theodore Ts'o4e40f6c2001-07-27 23:33:40 -0400468 * mkjournal.c (ext2fs_create_journal_superblock): Set the first
469 block usable in the journal for external journals to be 2
470 or 3, depending on the blocksize, so that the existing
471 kernel code does the right thing.
472
Theodore Ts'o343fa652001-07-27 22:15:06 -0400473 * getsize.c (ext2fs_get_device_size): Add support for the
474 BLKGETSIZE64 ioctl. (Ioctl defined by unofficial patches
475 from Ben LaHaise, but it's likely this interface won't
476 change.)
477
Theodore Ts'of35e6442001-07-27 15:35:21 -0400478 * mkjournal.c (ext2fs_add_journal_device): Use the correct block
479 when writing the journal superblock, too. (Oops! Needed
480 to make 1k filesystems with external journal to work.)
481
Theodore Ts'o36131b32001-07-26 23:44:39 -04004822001-07-26 Theodore Tso <tytso@valinux.com>
483
484 * mkjournal.c (ext2fs_add_journal_device): Use the correct block
485 to find the journal superblock if the blocksize is 1024.
486
Theodore Ts'oadee8d72001-07-23 00:17:49 -04004872001-07-21 Theodore Tso <tytso@valinux.com>
488
489 * ext2_err.et.in (EXT2_ET_LOAD_EXT_JOURNAL): Add new error code
490
Theodore Ts'o6ae296e2001-07-20 12:33:37 -04004912001-07-20 Theodore Tso <tytso@valinux.com>
492
Theodore Ts'o241f7d22001-07-20 14:17:19 -0400493 * ext_attr.c (ext2fs_write_ext_attr): When writing the extended
494 attribute block, set the filesystem changed bit.
495
Theodore Ts'o6ae296e2001-07-20 12:33:37 -0400496 * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set):
497 Comment out these functions since we're not using them.
498
Theodore Ts'o3c6b8972001-07-10 14:27:58 -04004992001-07-10 Theodore Tso <tytso@valinux.com>
500
501 * closefs.c (write_primary_superblock): After writing changes to
502 the primary superblock, update the original superblock
503 copy so we don't have to re-write those changes in the
504 future.
505 (ext2fs_flush): Clear the superblock dirty flag after
506 we've flushed out changes to disk.
507
Theodore Ts'of41e7e62001-07-07 22:14:23 -04005082001-07-07 Theodore Tso <tytso@valinux.com>
509
510 * bitops.h (ext2fs_find_first_bit_set): Use %esi instead of %ebx
511 to avoid register conflicts when compiling in PIC mode.
512
Theodore Ts'oac493822001-07-04 14:04:58 -04005132001-07-04 Theodore Tso <tytso@valinux.com>
514
515 * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set):
516 Add new functions (C and in i386 assembler) which quickly
517 find bits set in a bitmask.
518
Theodore Ts'o67960132001-06-23 00:16:37 -04005192001-06-23 Theodore Tso <tytso@valinux.com>
520
Theodore Ts'o342d8472001-07-02 11:54:09 -0400521 * Makefile.in, ext_attr.c, ext2_attr.c, ext2fs.h: Add new files
522 ext2_ext_attr.h and ext_attr.c for extended attributes
523 support.
524
Theodore Ts'o67960132001-06-23 00:16:37 -0400525 * Release of E2fsprogs 1.22
526
Theodore Ts'o89a1fa82001-06-22 20:40:51 -04005272001-06-22 Theodore Tso <tytso@valinux.com>
528
Theodore Ts'ob23520d2001-06-22 21:52:14 -0400529 * mkjournal.c (ext2fs_add_journal_inode): Move close of file
530 descriptor so that adding a journal to a mounted
531 filesystem doesn't die. (Fixes a bug accidentally
532 introduced in e2fsprogs 1.21.)
533
Theodore Ts'o78332622001-06-22 21:20:47 -0400534 * mkjournal.c (ext2fs_add_journal_inode): Only use fchflags if
535 HAVE_CHFLAGS and UF_NODUMP are defined, since the Hurd has
536 fchflags without defining UF_NODUMP. (Addresses Debian
537 bug #101361)
538
Theodore Ts'od90f3492001-06-22 21:01:17 -0400539 * flushb.c: Use platform independent method of defining the
540 BLKFLSBUF and FDFLUSH ioctl's. Also include sys/mount.h
541 since on newer glibc's BLKFLSBUF is defined there.
542
Theodore Ts'o16645f82001-06-22 20:54:11 -0400543 * bitops.h: The C language versions of ext2fs_swab16/32 need to be
544 included if EXT2FS_ENABLE_SWAPFS is defined, since we need
545 to support byte swapping even if we don't support the
546 conversion functions. (Fixes Debian bug #101686).
547
Theodore Ts'o89a1fa82001-06-22 20:40:51 -0400548 * dirblock.c (ext2fs_read_dir_block): Remove use of dir_entry_2
549 since the byte-swapping code all assumes the
550 ext2_dir_entry structure. (It's a question of whether or
551 not name_len should be byte-swapped or not, and whether
552 it's a 16 bit or 8 bit field.)
553
Theodore Ts'o997b8202001-06-15 18:33:43 +00005542001-06-15 Theodore Tso <tytso@valinux.com>
555
Theodore Ts'of4f75ba2001-06-16 01:14:28 +0000556 * Release of E2fsprogs 1.21
557
5582001-06-15 Theodore Tso <tytso@valinux.com>
559
Theodore Ts'od1e66b72001-06-15 22:44:32 +0000560 * Makefile.in: Fix bug in installation of ext2_types.h. It is a
561 file which is generated and is therefore found in the
562 build directory, not source directory.
563
Theodore Ts'o997b8202001-06-15 18:33:43 +0000564 * ismounted.c (check_mntent_file): Use a test file in / to check
565 to see if the root filesystem is mounted read-only. This
566 protects against the case where /etc might not be on /, as
567 well as the case where /etc/mtab doesn't exist. (Both are
568 should-never happen scenarios, but you never know...)
569
Theodore Ts'o6bd13482001-06-14 07:00:55 +00005702001-06-14 Theodore Tso <tytso@valinux.com>
571
572 * ismounted.c (ext2fs_check_if_mounted): Fix grammer in comment.
573 Remove unneeded #pragma argsused, since the arguments are
574 always used.
575
Theodore Ts'o30ae14c2001-06-13 22:38:56 +00005762001-06-13 Theodore Tso <tytso@valinux.com>
577
Theodore Ts'o65794882001-06-14 00:24:42 +0000578 * ext2_types.h.in: If linux/types.h has been defined, then don't
579 try to redefine the typedefs.
580
Theodore Ts'o364a3732001-06-13 23:46:39 +0000581 * Makefile.in (HFILES): Add ext2_types.h to the list of files
582 which should be installed.
583
Theodore Ts'o66a46142001-06-13 23:26:19 +0000584 * ismounted.c (check_mntent_file): Work around GNU hurd brain
Theodore Ts'o83d5abf2001-06-13 23:31:27 +0000585 damage. Addresses Debian bug #100304.
Theodore Ts'o66a46142001-06-13 23:26:19 +0000586
Theodore Ts'o30ae14c2001-06-13 22:38:56 +0000587 * Makefile.in: Limit some .o files from being included into the
588 library if --disable-debugfs, --disable-swapfs,
589 --disable-imager, or --disable-resizer are used.
590
Theodore Ts'ocbbf0312001-06-13 00:12:04 +00005912001-06-12 Theodore Tso <tytso@valinux.com>
592
593 * inode.c, tst_iscan.c: Stop using the compatibility badblocks
594 function, and use the ext2fs_badblocks_* functions
595 instead.
596
Theodore Ts'o5df55d72001-06-11 07:00:04 +00005972001-06-11 Theodore Tso <tytso@valinux.com>
598
Theodore Ts'o3034f622001-06-11 15:17:45 +0000599 * Makefile.in, gen_bitmap.c, bitops.h: Move inline functions
600 ext2fs_mark_generic_bitmap and
601 ext2fs_unmark_generic_bitmap to gen_bitmap.c as normal
602 functions. (This saves space and doesn't significantly
603 change the speed of e2fsck on a P-III.)
604
Theodore Ts'o5df55d72001-06-11 07:00:04 +0000605 * ext2fs.h, bitops.h, block.c, bmap.c, closefs.c, dirblock.c,
606 inode.c, native.c, openfs.c, rw_bitmaps.c, swapfs.c: Only
607 include the byte-swapping logic if ENABLE_SWAPFS is turned
608 on or if we're on a big-endian machine.
609
610 * initialize.c (ext2fs_initialize):Use WORDS_BIGENDIAN directly to
611 set EXT2_FLAG_SWAP_BYTES, instead of using
612 ext2fs_native_flag.
613
614 * native.c (ext2fs_native_flag): Use WORDS_BIGENDIAN provided by
615 autoconf to determine whether or not return
616 EXT2_FLAG_SWAP_BYTES.
617
Theodore Ts'o349a4842001-06-11 00:49:29 +00006182001-06-10 Theodore Tso <tytso@valinux.com>
619
620 * Makefile.in: Remove the dependence on the libe2p library.
621
622 * mkjournal.c (ext2fs_add_journal_inode): Replace use of fsetflags
623 with direct usage of the ioctl/fchflags so that we don't
624 have to depend on the libe2p library.
625
Theodore Ts'o30e50b72001-06-08 09:43:40 +00006262001-06-08 Theodore Tso <tytso@valinux.com>
627
628 * ext2_types.h.in: Use unsigned ints in favor of unsigned longs
629 when trying to find a 32-bit wide type.
630
631 * icount.c (insert_icount_el): Fix the code used to estimate the
632 size of the new icount array to be more intelligent, to
633 avoid reallocating the array too many times. Thanks to
634 Enrique Perez-Terron for pointing this out.
635
Theodore Ts'of36d14f2001-06-02 04:13:16 +00006362001-06-02 Theodore Tso <tytso@valinux.com>
637
638 * valid_blk.c (ext2fs_inode_has_valid_blocks): Only check i_blocks
639 for a symlink to determine whether it is a fast symlink.
640
Theodore Ts'o797f5ef2001-06-01 23:49:46 +00006412001-06-01 Theodore Tso <tytso@valinux.com>
642
643 * Makefile.in, dosio.c, ext2_fs.h, ext2_types.h.in, ext2fs.h:
Theodore Ts'o36a23e12001-06-02 00:54:10 +0000644 Move include/asm/types.h.in to lib/ext2fs/ext2_types.h.in.
Theodore Ts'o797f5ef2001-06-01 23:49:46 +0000645
Theodore Ts'od5f858d2001-05-25 17:14:23 +00006462001-05-25 Theodore Tso <tytso@valinux.com>
647
Theodore Ts'obb185862001-05-25 17:35:00 +0000648 * Release of E2fsprogs 1.20
649
6502001-05-25 Theodore Tso <tytso@valinux.com>
651
Theodore Ts'od5f858d2001-05-25 17:14:23 +0000652 * ismounted.c: More cleanups for ismounted.c, some from Andreas,
653 some to clean up Andreas's patches. Use strncpy instead
654 of strcpy to save the root's mountpoint. Clean up #ifdef
655 structure. Remove uneeded variable in testing/debug driver.
656
Theodore Ts'occ860172001-05-25 16:32:53 +00006572001-05-24 Andreas Dilger <adilger@turbolinux.com>
658
659 * ismounted.c: Add check for root device which doesn't depend on
660 /etc/fstab or /proc/mounts to be correct. Don't call
661 endmntent() before we are done with mnt struct.
662
Theodore Ts'o4ed8ebe2001-05-23 18:30:10 +00006632001-05-23 Theodore Tso <tytso@valinux.com>
664
665 * ext2_err.et.in (EXT2_ET_JOURNAL_UNSUPP_VERSION): Added new error
666 code.
667
Theodore Ts'ob10820c2001-05-21 05:23:31 +00006682001-05-21 Theodore Tso <tytso@valinux.com>
669
670 * ext2_fs.h: Change assignment of EXT2_FEATURE_COMPAT_DIR_INDEX to
671 make room for pre-existing usage of
672 EXT2_FEATURE_COMPAT_EXT_ATTR. Add flag EXT2_INDEX_FL with
673 the same codepoint as EXT2_BTREE_FL.
674
Theodore Ts'o7c2d2562001-05-21 02:54:21 +00006752001-05-20 Theodore Tso <tytso@valinux.com>
676
677 * ext2fs.h: #include <> instead of "" for ext2fs and et header
678 files, since they will be installed in /usr/include
679
Theodore Ts'o7a34cb02001-05-14 04:28:35 +00006802001-05-14 Theodore Tso <tytso@valinux.com>
681
Theodore Ts'o9f8046f2001-05-14 11:35:52 +0000682 * alloc.c, alloc_tables.c, badblocks.c, bb_compat.c, bb_inode.c,
683 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
684 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
685 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
686 expanddir.c, ext2_fs.h, fileio.c, finddev.c, flushb.c,
687 freefs.c, get_pathname.c, getsize.c, icount.c, imager.c,
688 initialize.c, inline.c, inode.c, irel_ma.c, ismounted.c,
689 link.c, lookup.c, mkdir.c, mkjournal.c, namei.c, native.c,
690 newdir.c, nt_io.c, openfs.c, read_bb.c, read_bb_file.c,
691 rs_bitmap.c, rw_bitmaps.c, swapfs.c, test_io.c,
692 tst_badblocks.c, tst_byteswap.c, tst_getsize.c,
693 tst_iscan.c, unix_io.c, unlink.c, valid_blk.c, version.c,
694 write_bb_file.c, ext2_fs.h: Moved file from include/linux.
695 Adjust all files in this directroy to include this file.
696
Theodore Ts'o7a34cb02001-05-14 04:28:35 +0000697 * mkjournal.c (ext2fs_create_journal_superblock): Remove redundant
698 code.
699
Theodore Ts'o0f679452001-05-05 16:42:24 +00007002001-05-05 Theodore Tso <tytso@valinux.com>
701
702 * fileio.c (ext2fs_file_read): Factored out common code and
703 cleaned up function. Fixed a bug where if there was an
704 error reading from the disk, the number of bytes read
705 wasn't reliably set. (Fixes Debian bug #79163)
706 (ext2fs_file_write): Factored out common code and made
707 function more efficient; if writing a full block, don't
708 bother to do a read-modify-write cycle.
709
Theodore Ts'o1cca4d62001-05-05 05:12:14 +00007102001-05-04 Theodore Tso <tytso@valinux.com>
711
712 * dirblock.c (ext2fs_read_dir_block): Check for an directory
713 record length which isn't a multiple four, and treat that
714 as an invalid. Scan the directory and return an error
715 (EXT2_ET_DIR_CORRUPTED) if the directory records are
716 corrupted.
717 (ext2fs_write_dir_block): If while byte-swapping the
718 directory block, if there's an error, abort and return
719 EXT2_ET_DIR_CORRUPTED.
720
Theodore Ts'oa78926e2001-05-03 04:02:29 +00007212001-05-02 Theodore Tso <tytso@valinux.com>
722
723 * ext2fs.h (EXT2_FLAG_IMAGE_FILE): Add new flag, and add
724 image_header field in the ext2_filsys structure
725
726 * block.c (block_iterate_ind, block_iterate_dind, block_iterate_tind):
727 * inode.c (ext2fs_read_inode):
728 * rw_bitmaps.c (read_bitmaps):
729 * openfs.c (ext2fs_open): Add support for EXT2_FLAG_IMAGE_FILE
730
731 * imager.c (ext2fs_image_bitmap_read): Fix bug in imager to make
732 sure the full bitmap is saved.
733
Theodore Ts'of955cc12001-05-01 19:04:28 +00007342001-05-01 Theodore Tso <tytso@valinux.com>
735
Theodore Ts'oa78926e2001-05-03 04:02:29 +0000736 * e2image.h (struct ext2_image_hdr): Add space for the device name
737 in the image header.
738
Theodore Ts'of955cc12001-05-01 19:04:28 +0000739 * dir_iterate.c (ext2fs_process_dir_block): Add a double-check to
740 make sure the rec_len is a multiple of 4, to prevent
741 bus-errors on architectures which care about mis-aligned
742 pointer references.
743
Theodore Ts'o954a6832001-04-26 01:42:37 +00007442001-04-25 Theodore Tso <tytso@valinux.com>
745
746 * getsize.c (ext2fs_get_device_size): Use an unsigned long to
747 query the device sizes using the BLKGETSIZE ioctl.
748
Theodore Ts'o03603942001-04-17 00:53:25 +00007492001-04-16 Theodore Tso <tytso@valinux.com>
750
Theodore Ts'o52db0b42001-04-17 02:22:05 +0000751 * ismounted.c (check_mntent): Check /proc/mounts on Linux systems
752 before checking /etc/mtab. The EXT2_MF_READONLY flag is
753 now set from the /etc/mtab options field for all
754 filesystems, not just the root filesystem. Add debugging
755 code to make it easier to test ext2fs_check_if_mounted().
756
Theodore Ts'o03603942001-04-17 00:53:25 +0000757 * mkjournal.c (ext2fs_create_journal_superblock): Add safety
758 check; return an error if there's an attempt to create a
759 journal less than 1024 filesystem blocks.
760
761 * ext2_err.et.in, mkjournal.c: Change EXT2_JOURNAL_NOT_BLOCK and
762 EXT2_NO_JOURNAL_SB to be EXT2_ET_*.
763
Theodore Ts'o9ec53cf2001-02-20 16:28:40 +00007642001-02-20 Theodore Tso <tytso@valinux.com>
765
766 * bitops.h (ext2fs_swab16, ext2fs_swab32): Add i386 assembly
767 inline functions.
768
769 * tst_byteswap.c: New function to test the byteswap functions.
770 Add to regression test suite.
771
Theodore Ts'oc5423c52001-02-08 05:45:17 +00007722001-02-08 Theodore Tso <tytso@valinux.com>
773
774 * e2image.h (struct ext2_image_hdr): Fix type for fs_hostname
775
Theodore Ts'od23042a2001-02-08 03:37:16 +00007762001-02-07 Theodore Tso <tytso@valinux.com>
777
778 * mkjournal.c (ext2fs_create_journal_superblock): Fix the setting
779 of s_first for external devices to always be 1, since
780 jsb->s_first is always relative to the start of the
781 journal superblock. Use htonl(1) when setting s_nr_users.
782
Theodore Ts'o02088862001-01-18 01:44:19 +00007832001-01-17 Theodore Ts'o <tytso@valinux.com>
784
785 * mkjournal.c (ext2fs_add_journal_device): Fix bug where the
786 device number of the filesystem (instead of the journal)
787 was being dropped into s_journal_dev.
788
Theodore Ts'oa1128472001-01-16 06:56:14 +00007892001-01-15 Theodore Ts'o <tytso@valinux.com>
790
791 * initialize.c (ext2fs_initialize): Add support for initializing
792 the ext2 superblock for external journal devices. This
793 basically means we don't bother to allocate any block
794 group descriptors.
795
796 * openfs.c (ext2fs_open): Only open external journal devices if
797 the new flag EXT2_FLAG_JOURNAL_DEV_OK is passed to
798 ext2fs_open. When opening such devices, don't try to read
799 the block group descriptors, since they're not there.
800
801 * ext2_err.et.in (EXT2_NO_JOURNAL_SB): Add new error code
802
803 * mkjournal.c: Export a new function,
804 ext2fs_create_journal_superblock(), which allocates and
805 returns a buffer containing a journal superblock. This is
806 needed by mke2fs to create an external journal. Rewrote
807 ext2fs_add_journal_device() so that it no longer creates
808 the external journal, but rather adds a filesystem to an
809 existing external journal. It handles all of the UUID
810 manipulation.
811
812 * ext2fs.h: List the EXT3_FEATURE_JOURNAL_DEV as a flag supported
813 by the library. Define the EXT2_FLAG_JOURNAL_DEV_OK.
814 Changed function prototype for ext2fs_add_journal_device().
815
Theodore Ts'o80779942001-01-14 18:03:43 +00008162001-01-14 Theodore Ts'o <tytso@valinux.com>
817
818 * closefs.c (ext2fs_flush): Don't write out anything beyond the
819 primary superblock if EXT2_INCOMPAT_JOURNAL_DEV is
820 listed.
821
Theodore Ts'ob94bd812001-01-12 17:26:05 +00008222001-01-12 Theodore Ts'o <tytso@valinux.com>
823
824 * imager.c: Fix gcc -Wall complaints and a series of bugs where
825 retval wasn't set correctly. (Thanks to Andreas Dilger
826 for pointing this out.)
827
Theodore Ts'o4d0f3e12001-01-11 15:48:50 +00008282001-01-11 <tytso@snap.thunk.org>
829
830 * flushb.c (ext2fs_sync_device): New function which centralizes
831 all of the places which might try to use the BLKFLSBUF
832 or FDFLUSH ioctls (and usually failing to define them
833 since the system header files don't usually do this for
834 us, and we're trying to avoid usage of kernel include
835 files now).
836
Theodore Ts'o31dbecd2001-01-11 04:54:39 +00008372001-01-10 <tytso@snap.thunk.org>
838
839 * alloc.c, bb_inode.c, bitmaps.c, bitops.h, block.c, bmap.c,
840 bmove.c, brel.h, cmp_bitmaps.c, dblist.c, dblist_dir.c,
841 dir_iterate.c, expanddir.c, ext2fs.h, ext2fsP.h, fileio.c,
842 finddev.c, get_pathname.c, icount.c, inode.c, irel.h,
843 irel_ma.c, ismounted.c, link.c, lookup.c, mkdir.c,
844 mkjournal.c, namei.c, newdir.c, read_bb_file.c, test_io.c,
845 tst_iscan.c, unix_io.c, unlink.c: Change use of ino_t to
846 ext2_ino_t, to protect applications that attempt to
847 compile -D_FILE_OFFSET_BITS=64, since this inexplicably
848 changes ino_t(!?). So we use ext2_ino_t to avoid an
849 unexpected ABI change.
850
Theodore Ts'ocdaf1fa2001-01-05 22:23:22 +00008512001-01-05 <tytso@snap.thunk.org>
852
Theodore Ts'oe446d712001-01-05 22:27:06 +0000853 * dirblock.c (ext2fs_read_dir_block): Fix a potential case where
854 we may overrun allocated memory in case of a corrupted
855 filesystem (or an e2fsck test case :-) when byte-swapping
856 the directory block.
857
Theodore Ts'ocdaf1fa2001-01-05 22:23:22 +0000858 * ext2fs.h: Indent the #warning to fix gcc -Wall complaint.
859
860 * mkjournal.c (ext2fs_add_journal_device): Fix various gcc -Wall
861 complaints including a missing return 0 at the end of
862 ext2fs_add_journal_device.
863
Theodore Ts'o43ec8732001-01-03 14:56:46 +00008642001-01-03 <tytso@snap.thunk.org>
865
Theodore Ts'o4becab62001-01-03 19:22:42 +0000866 * Makefile.in: Link in libe2p when creating libext2fs as a shared
867 library, since mkjournal.c now references fsetflags().
868
869 * mkjournal.c (ext2fs_add_journal_inode): Folded in Andreas
870 Dilger's changes (with fixups) to allow on-line creation
871 of a journal file.
872
Theodore Ts'o43ec8732001-01-03 14:56:46 +0000873 * ext2fs.h, closefs.c (ext2fs_flush): Add new flag,
874 EXT2_FLAG_SUPER_ONLY, which the close routines to only
875 update the superblock, and not the group descriptors.
876
8772000-12-30 Andreas Dilger <adilger@turbolinux.com>
878
879 * ismounted.c: add ext2fs_check_mount_point() function, which will
880 optionally return the mount point of a device if mounted
881
Theodore Ts'o31a17b32001-01-03 13:04:12 +00008822000-12-14 Andreas Dilger <adilger@turbolinux.com>
883
884 * mkjournal.c: rename ext2fs_add_journal_fs() to the more descriptive
885 ext2fs_add_journal_inode()
886
Theodore Ts'oe5b38a52001-01-01 16:17:12 +00008872001-01-01 <tytso@snap.thunk.org>
888
889 * ext2fs.h: Remove definition of ext2fs_sb. Note: this may break
890 source (but not binary) compatibility of some users of the
891 ext2 library. They should just simply do a global search
892 and replace of struct ext2fs_sb with struct
893 ext2_super_block, and use their own private copy of
894 ext2_fs.h if they aren't already.
895
896 * closefs.c, initialize.c, link.c, newdir.c, openfs.c, swapfs.c:
897 Replace use of ext2fs_sb with ext2_super_block.
898
Theodore Ts'o2fe1efe2000-12-31 13:39:17 +00008992000-12-31 <tytso@snap.thunk.org>
900
901 * ext2fs.h: Cleaned up header file by removing definitions of
902 feature flags that might not have been defined in older
903 ext2 header files. Now that we're using our own
904 include/linux/ext2fs.h header file, this can never happen.
905
906 * jfs_dat.h: Removed old header file which is no longer needed.
907
Theodore Ts'o7dcfa6e2000-12-13 17:50:14 +00009082000-12-13 Theodore Ts'o <tytso@valinux.com>
909
Theodore Ts'oa917d1c2000-12-13 18:36:23 +0000910 * closefs.c (ext2fs_update_dynamic_rev): New function suggested
Theodore Ts'o3fe973b2000-12-13 17:55:49 +0000911 by Andreas Dilger to update the filesystem revision to
912 EXT2_DYNAMIC_REV.
913
Theodore Ts'o7dcfa6e2000-12-13 17:50:14 +0000914 * swapfs.c (ext2fs_swap_super): Add byte swapping for the journal
915 fields.
916
Theodore Ts'o58618732000-12-09 05:47:45 +00009172000-12-09 <tytso@snap.thunk.org>
918
Theodore Ts'o31a17b32001-01-03 13:04:12 +0000919 * ext2fs.h, mkjournal.c (ext2fs_add_journal_inode,
Theodore Ts'o4e246702000-12-09 14:39:16 +0000920 ext2fs_add_journal_device): Add a new argument to the APIs
921 of these function, which is a flags word. This is used to
922 allow the creation of a V1 superblock for those folks who
923 are using ext3 0.3b in production. Note, the user-land
924 interface for getting at this flag won't be documented, as
925 the V1 superblock is deprecated.
926
Theodore Ts'o58618732000-12-09 05:47:45 +0000927 * mkjournal.c (init_journal_superblock): Sync Stephen's changes
928 which creates a V2 superblock instead of a V1 superblock.
929
Theodore Ts'of20d0d52000-12-05 03:53:41 +00009302000-11-21 <tytso@snap.thunk.org>
931
932 * test_io.c (test_write_blk, test_write_byte): Fix typos pointed
933 out by Andreas Dilger.
934
Theodore Ts'o72ed1262000-11-12 19:32:20 +00009352000-11-05 <tytso@snap.thunk.org>
936
937 * imager.c (ext2fs_image_{inode,super,bitmap}_{read,write},
938 ext2_fs.h, Makefile.in: New file that has routines that
939 save ext2fs metadata to a file.
940
941 * ext2_err.et.in (EXT2_ET_MAGIC_E2IMAGE): New error code assigned.
942
943 * e2image.h: New file which defines the file format for the ext2
944 image file. (Saved copy of ext2 metadata to a file as a
945 saving throw against worst-case damage.)
946
Theodore Ts'o6a7f4552000-11-12 19:07:06 +00009472000-11-01 <tytso@snap.thunk.org>
948
949 * inode.c (ext2fs_flush_icache): Add new function
950 ext2fs_flush_icache() which flushes the internal inode
951 cache. Applications which modify the inode table blocks
952 directly must call this function.
953
Theodore Ts'oc180ac82000-10-26 20:24:43 +00009542000-10-26 <tytso@snap.thunk.org>
955
Theodore Ts'o17ee8b12000-10-26 20:45:58 +0000956 * mkjournal.c: Add #include of netinet/in.h, since Solaris
957 requires it for ntohl().
958
Theodore Ts'oc180ac82000-10-26 20:24:43 +0000959 * ext2_io.h (io_channel_write_byte): Add new interface to allow
960 callers to write specific byte ranges. This is an
961 optional interface, which not all IO channels may
962 implement.
963
964 * unix_io.c (unix_write_byte):
965 * test_io.c (test_write_byte): Add implementation of the
966 write_byte function.
967
968 * closefs.c (write_primary_superblock, ext2fs_flush): Add a new
969 function which writes the primary superblock. If the IO
970 channel supports writing raw bytes directly, only fields
971 which were modified are written to the disk. This makes
972 it safe(r) to use utilities like tune2fs on a mounted
973 filesystem.
974
975 * freefs.c (ext2fs_free): Free the original superblock if it is
976 available.
977
978 * openfs.c (ext2fs_open): Store a copy of the original superblock
979 when opening it.
980
981 * ext2fs.h: Add a field to store the original superblock in the
982 ext2 context structure.
983
Theodore Ts'o43819662000-10-25 02:06:09 +00009842000-10-24 <tytso@snap.thunk.org>
985
986 * llseek.c: Add #ifdef's for IA64 (it's a 64-bit platform, so we
987 don't need to use llseek).
988
Theodore Ts'od3cd93c2000-10-24 18:33:16 +00009892000-10-24 <tytso@valinux.com>
990
991 * Makefile.in, ext2fs.h, jfs_dat.h, mkjournal.c: Add functions for
992 creating an ext3 journal on a filesystem.
993
9942000-08-21 <tytso@valinux.com>
995
996 * ext2_err.et.in (EXT2_JOURNAL_NOT_BLOCK): Add new error code.
997
Theodore Ts'oadfc8c62000-10-18 19:22:24 +00009982000-08-22 <tytso@valinux.com>
999
1000 * unix_io.c: Make massive changes to support a multiple block
1001 writethrough cacheing.
1002
1003 * ext2_io.h: Added flags field to the io_channel structure.
1004
Theodore Ts'ode23aa12000-08-19 17:00:47 +000010052000-08-19 <tytso@valinux.com>
1006
1007 * finddev.c, ext2fs.h, Makefile.in: Add new file, finddev.c, which
1008 provides the function ext2fs_find_block_device(). This
1009 function returns the pathname to a block device, given its
1010 device number.
1011
Theodore Ts'of9e67062000-07-13 23:25:54 +000010122000-07-13 <tytso@valinux.com>
1013
1014 * Release of E2fsprogs 1.19
1015
Theodore Ts'oab146762000-07-07 04:37:35 +000010162000-07-07 Theodore Ts'o <tytso@valinux.com>
1017
1018 * ext2fs.h (EXT2_LIB_FEATURE_INCOMPAT_SUPP): Add
1019 EXT3_FEATURE_INCOMPAT_RECOVER (aka needs_recovery) to the
1020 list of filesystem flags supported by the library.
1021
Theodore Ts'o57dca852000-07-04 19:20:25 +000010222000-07-04 Theodore Ts'o <tytso@valinux.com>
1023
Theodore Ts'o8f13d8c2000-07-04 19:41:29 +00001024 * ext2fs.h: Update to include latest journalling additions to the
1025 superblock.
1026
Theodore Ts'o57dca852000-07-04 19:20:25 +00001027 * dll/jump.funcs: Add new jumptable entries for
1028 ext2fs_write_bb_FILE, ext2fs_read_bb_FILE2, and
1029 ext2fs_badblocks_equal.
1030
1031 * tst_badblocks.c: Update test program to test
1032 ext2fs_read_bb_FILE2 and ext2fs_write_FILE.
1033
1034 * write_bb_file.c (ext2fs_write_bb_FILE): New function which
1035 writes out bad blocks list to a file.
1036
1037 * read_bb_file.c (ext2fs_read_bb_FILE2): Add new function which
1038 changes the callback function to take two additional
1039 arguments; a private blind pointer supplied by the caller,
1040 and pointer to a char * containing a pointer to the
1041 invalid string.
1042
1043 * badblocks.c (ext2fs_badblocks_equal): Add new function which
1044 returns true if two badblocks list are equal.
1045
1046 * Makefile.in: Remove explicit link of -lc in the shared library.
1047 (It shouldn't be necessary, and is harmful in some cases).
1048
Theodore Ts'oabf7d382000-06-10 19:27:17 +000010492000-06-10 Theodore Ts'o <tytso@valinux.com>
1050
1051 * getsize.c (main): Add debugging code under #ifdef DEBUG
1052
Theodore Ts'o2e8d40d2000-05-27 15:15:40 +000010532000-05-27 Theodore Ts'o <tytso@valinux.com>
1054
1055 * mkdir.c (ext2fs_mkdir): Read the parent directory's inode
1056 earlier, so that if there's an error reading it, we can
1057 more cleanly back out of the operation.
1058
Theodore Ts'of0f4acb2000-05-25 23:22:11 +000010592000-05-25 <tytso@snap.thunk.org>
1060
Theodore Ts'odc5f68c2000-05-25 23:31:54 +00001061 * getsize.c (ext2fs_get_device_size): Use open64() instead of
Theodore Ts'o7fd86d32000-05-25 23:42:22 +00001062 open() if it exists. Under linux, manually define the
1063 ioctl for BLKGETSIZE if it isn't already defined and it's
1064 safe to do so.
Theodore Ts'odc5f68c2000-05-25 23:31:54 +00001065
1066 * unix_io.c (unix_open): Use open64() instead of open() if it
1067 exists.
1068
1069 * llseek.c: Simplify header includes of unistd.h. If lseek64 is
1070 available (and prototypes are defined) use it in
1071 preference to llseek.
1072
Theodore Ts'of0f4acb2000-05-25 23:22:11 +00001073 * Makefile: Add hack dependency rule so that parallel makes work
1074 correctly.
1075
Theodore Ts'ofa7ef712000-05-19 02:11:41 +000010762000-05-18 Theodore Ts'o <tytso@valinux.com>
1077
1078 * ext2fs.h: Add appropriate ifdef's to support C++ compilation.
1079
Theodore Ts'oe589f672000-04-03 13:45:40 +000010802000-04-03 Theodore Ts'o <tytso@valinux.com>
1081
Theodore Ts'o06af47f2000-04-03 13:51:00 +00001082 * block.c: Readibility tweak in conditionals involving
1083 ctx->fs->flags.
1084
Theodore Ts'oe589f672000-04-03 13:45:40 +00001085 * ext2fs.h: Use AUTOCONF SIZEOF_* macros if available to determine
1086 how to define __s64 and __u64. Turn off "compression is
1087 experimental" warning if the cpp macro
1088 I_KNOW_THAT_COMPRESSION_IS_EXPERIMENTAL is defined.
1089
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +000010902000-02-11 <tytso@snap.thunk.org>
1091
Theodore Ts'o5a63dd22000-02-11 15:44:08 +00001092 * ext2fs.h: Define EXT2FS_COMPRESSED_BLKADDR and HOLE_BLKADDR.
1093 Conditionally include Compression as a supported type if
1094 ENABLE_COMPRESSION (via --enable-compression) is turned on.
1095
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +00001096 * swapfs.c (ext2fs_swap_super): Swap the compression usage bitmap.
1097
Theodore Ts'o28ffafb2000-02-08 19:14:02 +000010982000-02-08 <tytso@snap.thunk.org>
1099
1100 * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap,
1101 ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
1102 ext2fs_mark_inode_bitmap, ext2fs_unmark_inode_bitmap):
1103 Change to return the previous state of the bit that is
1104 being marked or unmarked. For speed optimization.
1105
Theodore Ts'o80e808f2000-02-02 16:19:59 +000011062000-02-02 Theodore Ts'o <tytso@valinux.com>
1107
1108 * getsize.c, ismounted.c: Remove unneeded include of linux/fs.h
1109
1110 * swapfs.c: Remove #ifdef HAVE_EXT2_INODE_VERSION since it's not
1111 needed any more; we know it will always be i_generation.
1112 Add support for swapping the high bits of the uid and gid.
1113
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +000011141999-11-19 <tytso@valinux.com>
1115
Theodore Ts'odab278a1999-11-19 18:49:27 +00001116 * mkdir.c (ext2fs_mkdir): Only update the parent's inode link
1117 counts if the link was successful. Patch suggested by
1118 jeremy@goop.org.
1119
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +00001120 * Makefile.in (distclean): Remove TAGS and Makefile.in.old from
1121 the source directory.
1122
Theodore Ts'ocd086361999-11-10 16:00:39 +000011231999-11-10 <tytso@valinux.com>
1124
1125 * Release of E2fsprogs 1.18
1126
Theodore Ts'o9b9fe8a1999-11-08 22:05:04 +000011271999-11-08 <tytso@valinux.com>
1128
1129 * Makefile.in (tst_badblocks): Add freefs.o to the object list,
1130 since ext2fs_badblocks_list_free was moved to freefs.c.
1131
1132 * tst_badblocks.c: Use the newer badblocks API names. Add
1133 duplicate blocks to the test inputs to test dealing with
1134 adding blocks which are already in the badblocks list.
1135
1136 * badblocks.c (ext2fs_badblocks_list_add): If appending to the end
1137 of the list, use a shortcut O(1) operations instead of an
1138 O(n) operation. (Idea suggested by David Beattie.)
1139
1140 * freefs.c (ext2fs_free): Use ext2fs_badblocks_list_free() instead
1141 of badblocks_list_free(), to save a procedure call.
1142
Theodore Ts'o416c93d1999-10-26 04:49:54 +000011431999-10-26 <tytso@valinux.com>
1144
Theodore Ts'o28e11941999-10-26 18:17:20 +00001145 * Release of E2fsprogs 1.17
1146
11471999-10-26 <tytso@valinux.com>
1148
Theodore Ts'o416c93d1999-10-26 04:49:54 +00001149 * ext2fs.h: Add kludge to deal with the fact that egcs cpp doesn't
1150 seem to handle ~0UL the same way as they used to.
1151
Theodore Ts'o601002b1999-10-26 02:06:39 +000011521999-10-25 <tytso@valinux.com>
1153
Theodore Ts'ofe70fd31999-10-26 02:34:47 +00001154 * nt_io.c (_OpenNtName): Open the device using
1155 FILE_SYNCHRONOUS_IO_NONALERT instead of
1156 FILE_SYNCHRONOUS_IO_ALERT
1157 (nt_open): At the end of the device open routine, unlock
1158 the drive but do not dismount it.
1159
Theodore Ts'o601002b1999-10-26 02:06:39 +00001160 * initialize.c (CREATOR_OS): Use __GNU__ instead of __gnu__ to
1161 detect the Hurd OS.
1162
Theodore Ts'oe6198e51999-10-23 00:58:54 +000011631999-10-22 <tytso@valinux.com>
1164
Theodore Ts'o614fdfd1999-10-23 03:19:51 +00001165 * Release of E2fsprogs 1.16
1166
11671999-10-22 <tytso@valinux.com>
1168
Theodore Ts'oe6198e51999-10-23 00:58:54 +00001169 * mkdir.c (ext2fs_mkdir): Pass EXT2_FT_DIR flag to ext2fs_link().
1170
1171 * link.c (ext2fs_link): This call now uses the low three bits of
1172 the flags parameter to pass the directory filetype
1173 information; it will set the directory entry FILETYPE
1174 information if the filesystem supports it.
1175
1176 * newdir.c (ext2fs_new_dir_block): If the FILETYPE superblock
1177 option is set, then create the '.' and '..' entries with
1178 the filetype set to EXT2_FT_DIR.
1179
Theodore Ts'oaa4115a1999-10-21 19:33:18 +000011801999-09-24 <tytso@valinux.com>
1181
1182 * nt_io.c: New file which supports I/O under Windows NT.
1183
Theodore Ts'o3a5f8ea1999-09-14 20:21:26 +000011841999-09-07 <tytso@valinux.com>
1185
1186 * ext2fs.h: Add new fields for journalling and define new
1187 feature bits used by newer filesystems: IMAGIC_INODES,
1188 HAS_JOURNAL, RECOVER.
1189
1190 * expanddir.c (ext2fs_expand_dir, expand_dir_proc): Change where
1191 we update the inode block count and size files so that the
1192 block count field is updated correctly when we create an
1193 indirect block.
1194
11951999-07-18 Theodore Ts'o <tytso@valinux.com>
Theodore Ts'o657cb971999-07-30 23:19:10 +00001196
1197 * Release of E2fsprogs 1.15
1198
Theodore Ts'oe72a9ba1999-06-25 15:40:18 +000011991999-06-23 <tytso@valinux.com>
1200
1201 * swapfs.c (ext2fs_swap_inode): Add compatibility for Linux 2.3
1202 kernels that use i_generation instead of i_version. Patch
1203 supplied by Jon Bright <sircus@sircus.demon.co.uk>.
1204
12051999-06-21 <tytso@valinux.com>
Theodore Ts'o813bbb21999-06-22 03:17:45 +00001206
1207 * dir_iterate.c (ext2fs_process_dir_block): Check for corrupted
1208 directory entry before calling the callback function.
1209 This should prevent some core dumps of insufficiently
1210 paranoid callback functions.
1211
Theodore Ts'oa4bf69d1999-05-29 21:53:30 +000012121999-05-29 <tytso@rsts-11.mit.edu>
1213
1214 * ext2fs.h: Add feature definition for AFS IMAGIC inodes.
1215
1216 * fileio.c (ext2fs_file_open): Remove obsolete comment stating
1217 that we don't handle writing yet (we do). Fixed bug where
1218 we weren't allocating a big enough buffer for ext2_bmap.
1219
Theodore Ts'of0687a51999-05-29 21:48:03 +000012201999-05-03 <tytso@rsts-11.mit.edu>
1221
1222 * openfs.c (ext2fs_open): Check to make sure that the number of
1223 blocks per group is not zero --- if so, it must be a bad
1224 superblock!
1225
Theodore Ts'o9e51eca1999-01-09 16:32:31 +000012261999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
1227
1228 * Release of E2fsprogs 1.14
1229
Theodore Ts'o665f7101999-01-08 13:33:39 +000012301999-01-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
1231
1232 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Check to see if
1233 the inode number is zero; if it's zero, return
1234 EXT2_ET_BAD_INODE_NUM.
1235
Theodore Ts'o7a469521999-01-04 08:50:59 +000012361998-12-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
1237
1238 * initialize.c (ext2fs_initialize): Use EXT2_FIRST_INODE instead
1239 of EXT2_FIRST_INO to ensure compatibility with Linux 1.2
1240 header files.
1241
Theodore Ts'o73f17cf1999-01-04 07:35:45 +00001242Mon Jan 4 02:32:09 1999 Theodore Y. Ts'o <tytso@mit.edu>
1243
1244 * llseek.c (ext2fs_llseek): Change ext2fs_llseek() in the
1245 non-Linux case to use EINVAL by default, unless it isn't
1246 defined, in which case we use EXT2_ET_INVALID_ARGUMENT
1247 instead.
1248
Theodore Ts'o556ad131998-12-19 08:10:58 +000012491998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu>
1250
1251 * Release of E2fsprogs 1.13
1252
Theodore Ts'o5a679c81998-12-03 16:40:38 +000012531998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
1254
1255 * Makefile.in: Updated dependencies.
1256
Theodore Ts'o8d7e83b1998-09-23 00:27:26 +000012571998-09-22 Theodore Ts'o <tytso@rsts-11.mit.edu>
1258
1259 * initialize.c (ext2fs_initialize): Make sure that we allocate
1260 enough inodes so that we can make a valid filesystem.
1261
Theodore Ts'o2eb374c1998-09-03 01:22:57 +000012621998-09-02 Theodore Ts'o <tytso@rsts-11.mit.edu>
1263
1264 * rw_bitmaps.c: Fixed signed/unsigned warnings.
1265
1266 * fileio.c (ext2fs_file_set_size): Remove unneeded extern from the
1267 function declaration.
1268
1269 * dblist.c (make_dblist): Add safety check in case the dblist
1270 pointer passed in is null (in which case, assign it to
1271 fs->dblist). Fixed some signed/unsigned warnings.
1272
1273 * bmap.c: Make addr_per_block be of type blk_t to avoid
1274 signed/unsigned warnings.
1275
1276 * namei.c (ext2fs_follow_link): Remove uneeded extern from the
1277 function declaration.
1278
1279 * get_pathname.c (get_pathname_proc): Use return value from
1280 ext2fs_get_mem, instead of checking if &gp->name is
1281 NULL.
1282
1283 * dir_iterate.c (ext2fs_process_dir_block):
1284 * dblist_dir.c (ext2fs_dblist_dir_iterate): Remove uneeded extern
1285 from the function declaration.
1286
1287 * block.c (ext2fs_block_iterate2): If the read_inode call fails,
1288 return the error directly instead of jumping to the
1289 cleanup routine, since we don't need to do any cleanup.
1290
1291 * alloc_table.c (ext2fs_allocate_group_table): Make this
1292 function take a dgrp_t for its group argument.
1293
1294 * ext2fs.h: Make dgrp_t an __u32 type, and make
1295 fs->desc_group_count be of type dgrp_t.
1296
Theodore Ts'of75c28d1998-08-01 04:18:06 +000012971998-07-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
1298
1299 * badblocks.c (ext2fs_badblocks_list_add): Use a bigger increment
1300 than 10 blocks when we need to expand the size of the
1301 badblocks list.
1302
Theodore Ts'o4a5fa191998-07-09 05:42:45 +000013031998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
1304
1305 * Release of E2fsprogs 1.12
1306
Theodore Ts'o30c42611998-06-30 05:33:11 +000013071998-06-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
1308
1309 * closefs.c (ext2fs_flush): Update the s_block_group_nr field as
1310 appropriate for all of the block group copies, so that
1311 it's clear where the beginning of the filesystem is on the
1312 disk. (For when the partition table gets scrod.)
1313
1314 * ext2fs.h: Change the name of the feature from
1315 EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE to
1316 EXT2_FEATURE_INCOMPAT_FILESIZE (to match with the kernel).
1317
Theodore Ts'o818180c1998-06-27 05:11:14 +000013181998-06-18 Theodore Ts'o <tytso@rsts-11.mit.edu>
1319
1320 * inode.c (get_next_blockgroup): Fix bug where if
1321 get_next_blockgroup() is called early because of a missing
1322 inode table in a block group, the current_inode counter
1323 wasn't incremented correctly.
1324
Theodore Ts'o4faba5b1998-06-16 05:23:41 +000013251998-06-16 Theodore Ts'o <tytso@rsts-11.mit.edu>
1326
1327 * read_bb.c (ext2fs_read_bb_inode): Make function more robust
1328 against a completely trashed bad block inode.
1329
Theodore Ts'o03673db1998-06-10 20:39:43 +000013301998-06-10 Theodore Ts'o <tytso@rsts-11.mit.edu>
1331
1332 * alloc_tables.c (ext2fs_allocate_group_table): Fix bug so that if
1333 the stride length hits a bad value, we retry the block
1334 allocation starting at the beginning of the block group.
1335
1336 * ext2fs.h, bb_inode.c, block.c, bmove.c, dir_iterate.c,
1337 expanddir.c, ext2fsP.h, read_bb.c: Change blkcnt_t to be
1338 e2_blkcnt_t to avoid collision with LFS API.
1339
Theodore Ts'o353952d1998-05-01 05:32:18 +000013401998-05-01 Theodore Ts'o <tytso@rsts-11.mit.edu>
1341
1342 * initialize.c (ext2fs_initialize): Initialize s_inodes_count in a
1343 way that avoids overflows on disk sizes greater than 4GB.
1344
Theodore Ts'o4c77fe51998-04-30 17:35:59 +000013451998-04-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
1346
1347 * ext2fs.h: Define EXT2_QSORT_TYPE appropriately for the
1348 return type for comparison functions for qsort.
1349
1350 * dblist.c (dir_block_cmp): Use EXT2_QSORT_TYPE in function
1351 declaration.
1352
Theodore Ts'o76f875d1998-04-27 01:41:13 +000013531998-04-26 Theodore Ts'o <tytso@rsts-11.mit.edu>
1354
1355 * ext2fs.h, bitops.h: Add support for the Watcom C compiler to do
1356 inline functions.
1357
1358 * ext2fs.h, dosio.c: Use asm/types.h instead of linux/types.h to
1359 evade a potential problem with glibc's header files trying
1360 to spike out linux/types.h.
1361
1362 * ext2fs.h (ext2fs_resize_mem): Change the function prototype to
1363 include the old size of the memory, which is needed for
1364 some braindamaged memory allocation systems that don't
1365 support realloc().
1366
1367 * badblocks.c (ext2fs_badblocks_list_add):
1368 bb_inode.c (clear_bad_block_proc):
1369 dblist.c (ext2fs_add_dir_block):
1370 icount.c (insert_icount_el):
1371 irel_ma.c (ima_put):
1372 rs_bitmap.c (ext2fs_resize_generic_bitmap): Update functions to
1373 pass the old size of the memory to be resized to
1374 ext2fs_resize_mem().
1375
Theodore Ts'o469bec81998-04-01 02:46:43 +000013761998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
1377
1378 * Makefile.in: Change to use new installation directory variables
1379 convention. Fix uninstall rules to take $(DESTDIR) into
1380 account.
1381
Theodore Ts'o4a31c481998-03-30 01:27:25 +000013821998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu>
1383
1384 * ext2fs.h: If __STRICT_ANSI__ is defined and we're on a platform
1385 with 32 bit longs, then we need to manually define __s64
1386 and __u64, since the current kernel header files don't
1387 define these if __STRICT_ANSI__ is defined. This is a
1388 problem if we are compiling with full GCC warnings, since
1389 we do need 64 bit support.
1390
1391 * Makefile.in (OBJS): Remove bmove.o from files to be built,
1392 since we're not using ext2fs_move_blocks() and there
1393 is some question as to its usefulness in its current
1394 form.
1395
1396 * bmap.c (block_bmap): Remove unused function.
1397
1398 * bmove.c (process_block): Fix -Wall warning.
1399
Theodore Ts'o36a43d61998-03-24 16:17:51 +000014001998-03-23 Theodore Ts'o <tytso@rsts-11.mit.edu>
1401
1402 * block.c (ext2fs_block_iterate3): Make the ref_offset field
1403 contain the offset into the inode.i_blocks array when
1404 ref_block is zero. Since we haven't done a formal
1405 release of e2fsprogs since block_iterate2 was first
1406 introduced, I removed block_iterate2, and renamed
1407 block_iterate3 to be block_iterate2.
1408
1409 * bb_inode.c, bmove.c, dblist_dir.c, dir_iterate.c,
1410 expanddir.c, ext2fs.h, ext2fsP.h, read_bb.c: Change
1411 use of block_iterate and block_iterate2 to
1412 block_iterate2 with the new prototype for the
1413 interator function. (using blkcnt_t forr blockcount)
1414
Theodore Ts'o674a4ee1998-03-23 02:06:52 +000014151998-03-21 Theodore Ts'o <tytso@rsts-11.mit.edu>
1416
1417 * ext2fs.h: Add new superblock fields (s_algorithm_usage_bitmap,
1418 s_prealloc_blocks, s_prealloc_dir_blocks). Added
1419 conditional defines of new features COMPAT_DIR_PREALLOC,
1420 RO_COMPAT_LARGE_FILE RO_COMPAT_BTREE_DIR,
1421 INCOMPAT_COMPRESSION, INCOMPAT_DIRNAME_SIZE. Changed
1422 the library to declare that we support COMPAT_DIR_PREALLOC,
1423 INCOMPAT_DIRNAME_SIZE, RO_COMPAT_LARGE_FILE.
1424
1425 * fileio.c: Rename function ext2fs_file_llseek to be
1426 ext2fs_file_lseek, which is more accurate.
1427
1428 * block.c: Add new function ext2fs_block_iterate3 which calls
1429 the iterator function with the blockcount argument of
1430 type blkcnt_t. This version of the function is
1431 allowed to handle large files; the other fucntions are
1432 not.
1433
1434 * ext2fs.h: Add new type blkcnt_t
1435
1436 * ext2_err.et.in: Add error code EXT2_ET_FILE_TOO_BIG
1437
1438 * block.c (ext2fs_block_iterate2): Fix bug where the block count
1439 field wasn't getting correctly incremented for sparse
1440 files when the indirect or doubly-indirect block
1441 specified in the inode was zero.
1442
1443Sun Mar 8 22:42:47 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1444
1445 * unlink.c (unlink_proc):
1446 * lookup.c (lookup_proc):
1447 * link.c (link_proc):
1448 * get_pathname.c (get_pathname_proc):
1449 * dir_iterate.c (ext2fs_process_dir_block): Mask off high 8 bits
1450 from dirent->name_len, so it can be used for other
1451 purposes.
1452
1453 * ext2fs.h: Add definition of EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE,
1454 and indicate that we have support for this incompatible
1455 option.
1456
Theodore Ts'oc7752561998-02-24 04:25:52 +00001457Mon Feb 23 08:46:33 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1458
1459 * ext2_err.et.in: Added new error code, EXT2_ET_CANCEL_REQUESTED.
1460
Theodore Ts'o79b05db1998-02-21 05:01:19 +00001461Fri Feb 20 23:58:01 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1462
1463 * dblist.c (ext2fs_get_num_dirs): Improve the estimation of the
1464 number of directories when the block group information is
1465 unreliable.
1466
Theodore Ts'oc4e749a1998-02-20 05:33:14 +000014671998-02-20 Theodore Y. Ts'o <tytso@edt.mit.edu>
1468
Theodore Ts'o218a4861998-02-21 01:41:39 +00001469 * inode.c (ext2fs_get_next_inode): Always do the check to see if the
1470 inode table is missing so that we catch the case where the
1471 first block group is missing.
1472
Theodore Ts'oc4e749a1998-02-20 05:33:14 +00001473 * getsize.c, ismounted.c, unix_io.c: #include errno.h since it's
1474 needed.
1475
Theodore Ts'o9abd2ce1998-02-16 22:00:37 +00001476Mon Feb 16 16:16:00 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1477
1478 * ext2_io.h, ext2fs.h: Protect against being included multiple times.
1479
1480 * bmove.c: #include ext2fsP.h instead of "ext2fs/ext2fs.h"
1481
1482 * test_io.c (test_flush): Add a debugging printf when the flush
1483 method is called.
1484
1485 * rw_bitmaps.c (ext2fs_read_bitmaps): If the bitmaps are already
1486 read in, return right away.
1487
Theodore Ts'o5953b9d1998-02-01 13:23:02 +00001488Sun Feb 1 08:20:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1489
1490 * bitops.h: Don't try to do i386 inline asm functions if the
1491 compiler isn't GCC.
1492
1493 * ext2fs.h: If EXT2_FLAT_INCLUDES is defined, #include e2_types.h,
1494 instead of linux/types.h, and e2_bitops.h instead of
1495 ext2fs/bitops.h.
1496
1497 * icount.c, version.c: Don't #include <et/com_err.h>, as it isn't
1498 necessary.
1499
Theodore Ts'ob5abe6f1998-01-19 14:47:53 +00001500Sat Jan 17 13:13:31 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1501
1502 * inode.c (ext2fs_open_inode_scan): Initialize the group variables
1503 so that we don't need to call get_next_blockgroup() the
1504 first time around. Saves a bit of time, and prevents us
1505 from needing to assign -1 to current_group (which is an
1506 unsigned value).
1507
1508 * icount.c (insert_icount_el): Cast the estimated number of inodes
1509 from a float to an ino_t.
1510
1511 * alloc.c, alloc_tables.c, badlbocks.c, bb_compat.c, bb_inode.c,
1512 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
1513 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
1514 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
1515 expanddir.c, ext2fs.h, fileio.c, freefs.c,
1516 get_pathname.c, getsize.c, icount.c, initialize.c,
1517 inline.c, inode.c, irel_ma.c, ismounted.c, link.c,
1518 lookup.c, mkdir.c, namei.c, native.c, newdir.c,
1519 openfs.c, read_bb.c, read_bb_file.c, rs_bitmap.c,
1520 rw_bitmaps.c, swapfs.c, test_io.c, tst_badblocks.c,
1521 tst_getsize.c, tst_iscan.c, unix_io.c, unlink.c,
1522 valid_blk.c, version.c: If EXT2_FLAT_INCLUDES is
1523 defined, then assume all of the
1524 ext2-specific header files are in a flat directory.
1525
1526 * block.c, bmove.c, dirblock.c, fileio.c: Explicitly cast
1527 all assignments from void * to be compatible with C++.
1528
1529Tue Jan 6 11:28:15 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1530
1531 * closefs.c (ext2fs_flush): Add a call to io_channel_flush() to
1532 make sure the contents of the disk are flushed to disk.
1533
1534Mon Dec 29 14:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1535
1536 * dblist.c (ext2fs_add_dir_block): Change new to be new_entry to
1537 avoid C++ namespace clash.
1538
1539 * bitmaps.c (ext2fs_copy_bitmap): Change new to be new_map to
1540 avoid C++ namespace clash.
1541
1542 * ext2fs.h, bb_inode.c, block.c, bmove.c, brel.h, brel_ma.c,
1543 irel.h, irel_ma.c, dblist.c, dblist_dir.c, dir_iterate.c,
1544 ext2fsP.h, expanddir.c, get_pathname.c, inode.c, link.c,
1545 unlink.c: Change private to be priv_data (to avoid C++
1546 namespace clash)
1547
Theodore Ts'o5be8dc21997-12-01 18:24:10 +00001548Fri Nov 28 09:26:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1549
1550 * dblist.c (ext2fs_get_num_dirs): Make ext2fs_get_num_dirs more
1551 paranoid about validating the directory counts from the
1552 block group information.
1553
1554 * all files: Don't include stdlib.h anymore; include it in
1555 ext2_fs.h, since that file requires stdlib.h
1556
Theodore Ts'o89270b51997-11-24 11:44:25 +00001557Thu Nov 20 16:07:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1558
1559 * expanddir.c (ext2fs_expand_dir): Check to make sure the block
1560 bitmap is loaded, and return an error if it is not.
1561 (expand_dir_proc): Only use ext2fs_write_dir_block when
1562 writing a directory block, not when writing out a fresh
1563 indirect block.
1564
Theodore Ts'od36d8351997-11-12 03:48:07 +00001565Tue Nov 11 22:46:45 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1566
1567 * Makefile.in, tst_getsize.c: Added new file which is used to test
1568 the ext2fs_get_device_size function.
1569
1570 * ext2_err.et.in (EXT2_ET_UNIMPLEMENTED): Added new error code.
1571
Theodore Ts'o79a90bd1997-11-03 19:16:55 +00001572Sun Nov 2 20:36:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1573
1574 * ext2fs.h: Make ext2fs_get_mem take an unsigned argument.
1575
1576 * fileio.c (ext2fs_file_get_size, ext2fs_file_set_size,
1577 ext2fs_file_get_fs): New functions added.
1578
1579
1580Fri Oct 31 12:16:52 1997 <tytso@EDT.MIT.EDU>
1581
1582 * bitops.c (ext2fs_warn_bitmap, ext2fs_warn_bitmap2): Don't call
1583 com_err if OMIT_COM_ERR is defined.
1584
Theodore Ts'o1f0b6c11997-10-31 06:07:47 +00001585Thu Oct 30 11:33:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1586
1587 * Rename new error codes to _ET_ in them for consistency.
1588
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001589Sat Oct 25 00:06:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1590
Theodore Ts'o7b4e4531997-10-26 03:41:24 +00001591 * [all files, basically]: Added definition of ext2fs_get_mem,
1592 ext2fs_free_mem, and ext2fs_resize_mem in ext2fs.h, and
1593 changed all library routines to use these wrapper functions.
1594
Theodore Ts'o78d8f901997-10-26 01:53:39 +00001595 * dblist.c, mkdir.c: use EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND
1596 instead of the system error messages.
1597
1598 * ext2_err.et.in: Added new error messages EXT2_DIR_EXISTS and
1599 EXT2_DB_NOT_FOUND
1600
Theodore Ts'o30fab291997-10-25 22:37:42 +00001601 * ext2fs.h: Added function declarations and constants for bmap.c
1602 and fileio.c.
1603
1604 * ext2_err.et.in: Added new error messages EXT2_FILE_RO and
1605 EXT2_ET_MAGIC_EXT2_FILE
1606
1607 * Makefile.in: Added files bmap.c and fileio.c, and temporarily
1608 commented out brel_ma.c and irel_ma.c
1609
1610 * bmap.c: New file which maps a file's logical block number to its
1611 physical block number.
1612
1613 * fileio.c: New file which implements simple file reading and
1614 writing primitives.
1615
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001616 * alloc.c (ext2fs_alloc_block): New function which allocates a
Theodore Ts'o30fab291997-10-25 22:37:42 +00001617 block, zeros it, and updates the filesystem accounting
1618 records appropriately.
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001619
1620Wed Oct 22 16:47:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1621
1622 * ext2_err.et.in: Added new error codes: EXT2_NO_MEMORY,
1623 EXT2_INVALID_ARGUMENT, EXT2_BLOCK_ALLOC_FAIL,
1624 EXT2_INODE_ALLOC_FAIL, EXT2_NOT_DIRECTORY
1625
1626 * Change various library files to use these functions instead of
1627 EINVAL, ENOENT, etc.
1628
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +00001629Mon Oct 20 19:32:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1630
1631 * llseek.c: Check HAVE_LLSEEK_PROTOTYPE to see whether or not we
1632 need to declare llseek().
1633
Theodore Ts'o1d2ff461997-10-19 23:00:21 +00001634Sun Oct 19 18:56:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1635
Theodore Ts'od40259f1997-10-20 00:44:26 +00001636 * Rename io.h to be ext2_io.h (avoid namespace collisions)
1637
Theodore Ts'o1d2ff461997-10-19 23:00:21 +00001638 * Add #ifdef's for HAVE_SYS_STAT_H and HAVE_SYS_TYPES_H
1639
Theodore Ts'od163b091997-10-03 17:42:28 +00001640Fri Oct 3 13:35:59 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1641
1642 * llseek.c (ext2fs_llseek): Fix type error for ext2fs_llseek()
1643
1644 * icount.c (ext2fs_icount_validate):
1645 * bmove.c (process_block): Fix lint error in type for fprintf().
1646
1647Mon Sep 15 11:45:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1648
1649 * inode.c (ext2fs_check_directory): Add support for the callback
1650 to return the error code EXT2_ET_CALLBACK_NOTHANDLED.
1651
Theodore Ts'offf876b1997-09-13 00:32:29 +00001652Thu Sep 4 12:28:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1653
1654 * bitmaps.c (ext2fs_set_bitmap_padding): New function which sets the
1655 padding of the bitmap to be all one's.
1656
Theodore Ts'obc75f2a1997-09-04 00:43:10 +00001657Wed Sep 3 14:27:30 1997 Theodore Y. Ts'o <tytso@edt.mit.edu>
1658
1659 * llseek.c: Added missing semicolon to glibc fixup declaration of
1660 llseek().
1661
1662 * bmove.c: Add #include of errno.h
1663
Theodore Ts'oe9affb71997-08-24 02:57:55 +00001664Sat Aug 23 22:47:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1665
1666 * Makefile.in (ELF_SO_VERSION): Bump version to be 2.4 since we've
1667 added a new field to the io_channel (app_data).
1668
1669 * io.h: Add a new element to the io_channel structure, app_data.
1670
1671 * initialize.c, openfs.c: Set io->app_data to point at the
1672 filesystem handle.
1673
Theodore Ts'o1c27cac1997-08-14 17:20:42 +00001674Thu Aug 14 08:14:17 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1675
1676 * io.h: Change the prototype of ext2fs_llseek() to use int's
1677 instead of unsigned int's.
1678
1679 * llseek.c: Change to allow PIC and !HAVE_LLSEEK. Add a prototype
1680 to make life easer for GNU Libc 2.
1681
1682 * rw_bitmaps.c: On the PowerPC, the big-endian variant of the ext2
1683 filesystem has its bitmaps stored as 32-bit words with bit
1684 0 as the LSB of each word. Thus a bitmap with only bit 0
1685 set would be, as a string of bytes, 00 00 00 01 00 ... To
1686 cope with this, we byte-reverse each word of a bitmap if
1687 we have a big-endian filesystem, that is, if we are *not*
1688 byte-swapping other word-sized numbers.
1689
Theodore Ts'o3cb6c501997-08-11 20:29:22 +00001690Mon Aug 11 03:30:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1691
1692 * dosio.c: New file to do DOS/BIOS disk accesses.
1693
1694 * namei.c (open_namei): Make pathlen be of type size_t.
1695
1696 * llseek.c: Always #include stdlib.h since it's need to define
1697 size_t.
1698
1699 * io.h: Use errcode_t for magic numbers.
1700
1701 * icount.c (get_icount_el): Use size_t where appropriate
1702
1703 * dupfs.c (ext2fs_dup_handle):
1704 * dblist.c (dir_block_cmp): Use size_t where appropriate.
1705
1706 * read_bb.c (ext2fs_read_bb_inode):
1707 * cmp_bitmaps.c (ext2fs_compare_inode_bitmap): Use blk_t, ino_t
1708 and size_t where appropriate.
1709
1710 * closefs.c (ext2fs_flush): Use dgrp_t instead of int where
1711 appropriate.
1712
1713 * openfs.c (ext2fs_open):
1714 * check_desc.c (ext2fs_check_desc): Use blk_t instead of int where
1715 appropriate.
1716
1717 * rw_bitmaps.c (read_bitmaps):
1718 * irel_ma.c:
1719 * inode.c (ext2fs_write_inode):
1720 * initialize.c (ext2fs_initialize):
1721 * brel_ma.c: Fix to make be 16-bit safe.
1722
1723 * link.c (ext2fs_link):
1724 * unlink.c (ext2fs_unlink):
1725 * lookup.c (lookup_proc):
1726 * ismounted.c (ext2fs_check_if_mounted):
1727 * block.c (xlate_func): Add #pragma argsused for Turbo C.
1728
Theodore Ts'o4cbe8af1997-08-10 23:07:40 +00001729Sun Aug 10 10:05:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1730
1731 * block.c (ext2fs_block_iterate2): Use retval which is a errcode_t
1732 type.
1733
1734 * bitmaps.c (make_bitmap): Use size_t instead of int where
1735 appropriate.
1736
1737 * bb_inode.c (set_bad_block_proc): Add #pragma argsused for Turbo C.
1738
1739 * alloc.c (ext2fs_new_inode): Use ino_t instead of int for the
1740 group number.
1741
1742 * get_pathname.c: Use ino_t instead of int where appropriate.
1743
1744 * ext2fs.h: Make the magic structure element be errcode_t instead
1745 of int.
1746
1747 * alloc.c alloc_tables.c badblocks.c bb_compat.c bb_inode.c
1748 bitmaps.c block.c bmove.c brel_ma.c check_desc.c closefs.c
1749 cmp_bitmaps.c dblist.c dblist_dir.c dir_iterate.c
1750 dirblock.c dupfs.c expanddir.c freefs.c get_pathname.c
1751 icount.c initialize.c inline.c inode.c irel_ma.c link.c
1752 llseek.c lookup.c mkdir.c namei.c newdir.c read_bb.c
1753 read_bb_file.c rs_bitmap.c rw_bitmaps.c swapfs.c
1754 test_io.c tst_badblocks.c tst_iscan.c unix_io.c unlink.c
1755 valid_blk.c version.c: Add an #ifdef for HAVE_UNISTD_H
1756
Theodore Ts'o024996c1997-06-17 05:38:35 +00001757Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1758
Theodore Ts'oa1230b11997-07-02 02:41:59 +00001759 * unix_io.c (unix_read_blk): If ext2fs_llseek() fails, but errno
1760 is zero, then return EXT2_IO_LLSEEK_FAILED.
1761
1762 * ext2_err.et.in: Add a new error code, EXT2_IO_LLSEEK_FAILED.
1763
Theodore Ts'o024996c1997-06-17 05:38:35 +00001764 * Release of E2fsprogs 1.11
1765
Theodore Ts'o549860c1997-06-17 03:55:00 +00001766Mon Jun 16 23:53:06 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1767
1768 * dblist.c (ext2fs_dblist_count): Added new function which returns
1769 the number of directory blocks in dblist.
1770
Theodore Ts'o36f21431997-06-14 07:25:40 +00001771Sat Jun 14 01:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1772
1773 * unix_io.c (unix_flush): Make the io_channel flush function do a
1774 fsync to flush the kernel buffers to disk.
1775
Theodore Ts'o9941fb71997-06-11 22:27:41 +00001776Wed Jun 11 18:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1777
1778 * inode.c (ext2fs_inode_scan_goto_blockgroup): Fix bug; the
1779 current inode number wasn't being set by the
1780 goto_blockgroup function.
1781
Theodore Ts'o1e1da291997-06-09 14:51:29 +00001782Mon Jun 9 10:45:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1783
1784 * bmove.c (ext2fs_move_blocks): New function which takes a bitmap
1785 of blocks which need to be moved, and moves those blocks
1786 to another location in the filesystem.
1787
1788 * rs_bitmap.c (ext2fs_resize_generic_bitmap): When expanding a
1789 bitmap, make sure all of the new parts of the bitmap are
1790 zero.
1791
1792Sun Jun 8 16:24:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1793
1794 * bitmaps.c (ext2fs_copy_bitmap): Fix bug; the destination bitmap
1795 wasn't being returned to the caller.
1796
1797 * alloc_tables.c (ext2fs_allocate_group_table): Add new function
1798 ext2fs_allocate_group_table() which sets the group tables
1799 for a particular block group. The relevant code was
1800 factored out of ext2fs_allocate_tables().
1801
1802 * dblist.c (make_dblist): Adjust the initial size of the directory
Theodore Ts'o024996c1997-06-17 05:38:35 +00001803 block list to be a bit more realistic (ten plus twice the
Theodore Ts'o1e1da291997-06-09 14:51:29 +00001804 number of directories in the filesystem).
1805
Theodore Ts'of635d7f1997-05-09 02:50:16 +00001806Thu May 8 22:19:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1807
1808 * badblocks.c (ext2fs_badblocks_list_test): Fix bug where
1809 ext2fs_badblocks_list_test would test the list (and exceed
1810 array boundaries) if there were no bad blocks on the bad
1811 blocks list. (Showed up when user tried: mke2fs -c -b 4096).
1812
Theodore Ts'oa29f4d31997-04-29 21:26:48 +00001813Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1814
1815 * Release of E2fsprogs version 1.10
1816
1817Thu Apr 24 10:13:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1818
1819 * alloc_tables.c (ext2fs_allocate_tables): Correctly place the
1820 inode and block bitmaps based on the RAID 0 stride
1821 parameter (which is passed by mke2fs).
1822
1823 * ext2fs.h: Add "stride" parameter to ext2_filsys, to be used by
1824 mke2fs to communicate the stride length to
1825 ext2fs_allocate_tables()
1826
1827Wed Apr 23 21:50:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1828
1829 * initialize.c (ext2fs_initialize): Fix to compile under Linux 1.2
1830 systems. (We can't assume that the new filesystem types
1831 are supported.)
1832
1833Wed Apr 23 18:40:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1834
1835 * alloc_tables.c (ext2fs_allocate_tables): Make sure that we
1836 allocate the inode and block bitmaps inside block group at
1837 all times.
1838
1839Mon Apr 21 00:06:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1840
1841 * alloc.c (ext2fs_new_block): Fix bug where if goal==0 and the
1842 filesystem has no free blocks, ext2fs_new_block would loop
1843 forever.
1844
1845 * dupfs.c (ext2fs_dup_handle): Duplicate an ext2 filesystem handle
1846
1847 * freefs.c (ext2fs_free_inode_cache): Decrement refcount and only
1848 free if refcount goes to zero.
1849
1850 * inode.c (create_icache): Initialize refcount to 1.
1851
1852 * ext2fsP.h: Added refcount to ext2_inode_cache
1853
1854 * dblist.c (ext2fs_copy_dblist): New function to copy a directory
1855 block list.
1856
1857 * badblocks.c (ext2fs_badblocks_copy): New function to copy a
1858 badblocks structure.
1859
1860Sun Apr 20 23:19:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1861
1862 * bitmaps.c (ext2fs_copy_bitmap): New function to copy a bitmap.
1863
1864 * unix_io.c, test_io.c (unix_open, test_open): Initialize the
1865 refcount to 1.
1866 (unix_close, test_close): Decrement the refcount and only
1867 close the io_channel if the refcount goes to 0.
1868
1869 * io.h: Add refcount to the io_channel structure. Add new macro
1870 interface io_channel_bumpcount() to bump the refcount.
1871
1872Thu Apr 17 20:25:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1873
1874 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Use the inode
1875 cache in the filesystem handle, instead of the inode cache
1876 in a static variable.
1877
1878 * freefs.c: Added static function to free the inode cache (called by
1879 ext2fs_free).
1880
1881 * ext2fsP.h: Added definition of the ext2_inode_cache structures.
1882
1883 * ext2fs.h: Added pointer to the inode_cache structure.
1884
1885 * block.c (block_iterate_ind, block_iterate_dind,
1886 block_iterate_tind): If there are holes in the indirect,
1887 doubly indirect, or triply indirect blocks, increment the
1888 block count field automatically.
1889
1890Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1891
1892 * Release of E2fsprogs version 1.09
1893
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +00001894Mon Apr 14 20:38:56 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1895
1896 * version.c (ext2fs_parse_version_string): Check the passed in
1897 version string (instead of the hard-coded one).
1898
1899 * alloc_tables.c (ext2fs_allocate_tables): If the last block is
1900 greater filesystem size, clamp it to prevent allocating a
1901 block or inode bitmap beyond the filesystem.
1902
1903 * initialize.c (ext2fs_initialize): Fix bug where the metatdata
1904 overhead calculation was accidentally removed.
1905
1906Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1907
1908 * Release of E2fsprogs version 1.08
1909
Theodore Ts'o521e3681997-04-29 17:48:10 +00001910Thu Apr 10 13:15:15 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1911
1912 * dblist.c (ext2fs_set_dir_block): New function which sets the
1913 block of a dblist entry, given the directory inode and
1914 blockcnt.
1915
1916Sat Apr 5 12:42:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1917
1918 * alloc_tables.c (ext2fs_allocate_tables): Allocate the bitmap and
1919 inode bitmaps at staggered locations across the block
1920 groups, to avoid concentrating the bitmaps on a small
1921 number of disks when using striped RAID arrays.
1922
1923 * initialize.c (ext2fs_initialize): By default, choose the maximum
1924 possible number of blocks per group (based on the size of
1925 the bitmaps in the blocksize).
1926
1927Fri Apr 4 11:28:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1928
1929 * initialize.c (ext2fs_initialize): Add support for
1930 EXT2_COMPAT_SPARSE_SUPER feature.
1931
1932 * closefs.c (ext2fs_bg_has_super): New function to determine
1933 whether or a particular block group should have a
1934 superblock and block group descriptor. Used for the
1935 EXT2_COMPAT_SPARSE_SUPER feature is turned on.
1936 (ext2fs_flush): Check ext2fs_bg_has_super to see whether
1937 or not the superblock should be written out for the block
1938 group.
1939
1940 * ext2fs.h (EXT2_COMPAT_SPARSE_SUPER): Define compatibility flag
1941 for sparse duplicate superblocks.
1942
1943 * version.c (ext2fs_get_library_version): New function which
1944 returns the library version.
1945
1946 * version.c (ext2fs_parse_version_string): New function which
1947 parses a version string and returns a version number,
1948 so application programs can compare version numbers as
1949 integers.
1950
1951Wed Mar 26 00:43:52 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1952
1953 * icount.c (ext2fs_create_icount): Change function so that it also
1954 takes a new argument which contains a "hint" icount
1955 structure. This "hint" icount allows the create function
1956 to set up the sorted list in advance. This reduces
1957 significantly the amount of data moving needed to insert
1958 these inodes into the list later.
1959
1960 * icount.c (ext2fs_icount_validate): New function which validates
1961 that the icount structure's rep invariant.
1962
1963 * icount.c (get_icount_el): Completely revamped implementation
1964 to subsume put_icount_el(). Put_icount_el() used to
1965 use an O(N) implementation to insert in the middle
1966 of the icount list. It now uses a O(ln N) to search
1967 for where the icount should be inserted, and then uses
1968 a memcpy to move the list down (instead of a for loop).
1969
1970 * icount.c (ext2fs_icount_fetch, ext2fs_icount_store,
1971 ext2fs_icount_increment, ext2fs_icount_decrement): Check
1972 to see if the inode is within bounds; if it isn't, return
1973 EINVAL.
1974
1975 * bitops.h (ext2fs_test_generic_bitmap): Fix error message given
1976 when a bad inode number is passed to test_generic_bitmap
1977 to be EXT2FS_TEST_ERROR instead of the wrong
1978 EXT2FS_UNMARK_ERROR.
1979
Theodore Ts'o21c84b71997-04-29 16:15:03 +00001980Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
1981
1982 * Release of E2fsprogs version 1.07
1983
1984Sun Mar 2 16:46:18 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1985
1986 * Makefile.in (ELF_VERSION): Change version to be 2.2
1987
1988Tue Feb 11 14:54:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1989
1990 * alloc.c (ext2fs_get_free_blocks): Change routine to use
1991 ext2fs_fast_test_block_bitmap_range().
1992
1993 * bitops.h (ext2fs_fast_test_block_bitmap_range,
1994 ext2fs_test_block_bitmap_range: New inline functions which
1995 test to see whether a contiguous range of blocks is
1996 available.
1997
1998Thu Feb 6 10:00:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1999
2000 * badblocks.c (ext2fs_badblocks_list_create): Rename sybmols to use
2001 use ext2fs_badblocks_* instead of badblocks_*
2002
2003 * bb_compat.c: New file which translates between old badblocks_*()
2004 names to ext2fs_badblocks_*()
2005
2006 * unlink.c (ext2fs_unlink): New file, moved ext2fs_unlink() from
2007 link.c (since e2fsck doesn't use ext2fs_unlink()).
2008
2009 * rs_bitmap.c (ext2fs_resize_generic_bitmap): New file, contains
2010 bitmap resizing routine moved from bitmaps.c, since e2fsck
2011 doesn't need to use this function.
2012
2013 * lookup.c (ext2fs_lookup): Moved ext2fs_lookup to its own file,
2014 since e2fsck only needs ext2fs_lookup.
2015
2016Mon Feb 3 10:11:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
2017
2018 * inode.c (ext2fs_open_inode_scan): Set fs->badblocks if it is not
2019 already set; this is needed so that programs like dump
2020 which use the inode scan functions will deal with
2021 filesystems that have bad blocks in the inode table.
2022
2023Sun Feb 2 00:17:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
2024
2025 * ext2fs.h (struct_badblocks_list, struct_badblocks_iterate):
2026 Moved to ext2fsP.h, since it doesn't need to be part of
2027 the public interface.
2028
2029 * dir_iterate.c: Move ext2_dir_iterate out of namei.c.
2030
2031Sat Feb 1 10:14:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
2032
2033 * dblist.c (ext2fs_get_num_dirs): New file, which implements a
2034 directory block list abstraction. (Code moved from
2035 e2fsck).
2036
2037 * ext2fs.h, inode.c: Moved definition of ext2_struct_inode_scan to
2038 to inode.c (since no one else should be peeking inside it!)
2039
2040 * valid_blk.c (ext2_inode_has_valid_blocks): New function.
2041
2042 * openfs.c (ext2fs_open): Check the feature set in the ext2
2043 superblock, and refuse to open filesystems if they contain
2044 incompatible features. (Can be overriden with the
2045 EXT2_FLAG_FORCE
2046
2047Sun Jan 12 11:31:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
2048
2049 * block.c (ext2fs_block_iterate2): Added new function
2050 ext2fs_block_iterate2 which changes the function
2051 signature of the callback function to include the
2052 referencing block and offset.
2053
2054 * inode.c (ext2fs_inode_scan_goto_blockgroup): Added new function
2055 ext2fs_inode_scan_goto_blockgroup which allows an
2056 application to jump to a particular block group while
2057 doing an inode scan.
2058
2059Wed Jan 1 23:50:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
2060
2061 * dirblock.c: Include string.h, since we use memcpy().
2062
2063Tue Dec 3 12:27:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2064
2065 * getsize.c (ext2fs_get_device_size): The ioctl BLKGETSIZE returns
2066 a long not an int; this doesn't matter on i386 machines,
2067 but it does on Alpha's.
2068
2069Fri Nov 29 20:57:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2070
2071 * inode.c (ext2fs_write_inode, ext2fs_read_inode): If the inode
2072 table pointer is NULL, then return an error indicating
2073 that the inode table is missing.
2074 (get_next_blockgroup, get_next_blocks,
2075 ext2fs_get_next_inode): Don't treat a missing inode table
2076 as permanent error. Return MISSING_INODE_TABLE, but as an
2077 advisory error code, much like BAD_BLOCK_IN_INODE_TABLE.
2078
2079 * rw_bitmaps.c (ext2fs_write_block_bitmap,
2080 ext2fs_write_inode_bitmap): If the inode or block bitmap
2081 block is zero, then don't write out the inode or block
2082 bitmap. The idea here is to avoid stomping on the
2083 superblock.
2084 (read_bitmaps): If the inode or block bitmap block is
2085 zero, then fill in that portion of the inode or block
2086 bitmap with all zeros.
2087
2088 * inode.c (ext2fs_get_next_inode): Fix bug in handling of bad
2089 blocks in inode table when the inode table size is
2090 non-standard (and can therefore span blocks).
2091
2092Tue Oct 29 20:13:14 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2093
2094 * alloc.c (ext2fs_new_block): Fix fencepost error in
2095 ext2fs_new_block; make sure we don't try to allocate the
2096 first block beyond the end of the filesystem.
2097
2098Mon Oct 14 11:00:48 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2099
2100 * inode.c (check_for_inode_bad_blocks): New function called by
2101 get_next_blocks() to avoid reading in bad blocks marked in
2102 fs->badblocks. Inodes located in bad blocks are returned
2103 by ext2fs_get_next_inode() returns the error code
2104 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE.
2105
2106 * alloc_tables.c (ext2fs_allocate_tables): New function which
2107 performs the part of mke2fs's job of allocating the
2108 filesystem tables.
2109
2110 * test_io.c (test_close): IO manager which is used for testing
2111 purposes.
2112
2113Sun Oct 13 04:31:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2114
2115 * inode.c (ext2fs_get_next_inode): Separate out the function of
2116 setting up for a new block group to get_next_blockgroup().
2117 Separate out the function of reading in blocks of the
2118 inode table to get_next_blocks().
2119
2120 * ext2fs.h: Add the badblocks list to the ext2_filsys entry
2121
2122 * badblocks.c (badblocks_list_add, badblocks_list_test): Add
2123 blocks to the badblock list in sorted order. This allows
2124 badblocks_list_test to be coded using a binary search for
2125 speed.
2126
2127Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2128
2129 * Release of E2fsprogs version 1.06
2130
Theodore Ts'o5c576471997-04-29 15:29:49 +00002131Mon Oct 7 00:44:17 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2132
2133 * ext2fs.h, block.c, closefs.c, dirblock.c, inode.c, native.c,
2134 open.c: Change EXT2_SWAP to EXT2_FLAG_SWAP for
2135 consistency's sake.
2136
2137 * closefs.c (ext2fs_flush): If the flag EXT2_MASTER_SB_ONLY is
2138 set, then only write out the master superblock.
2139
2140Sun Oct 6 21:45:26 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2141
2142 * block.c (ext2fs_block_iterate): Fixed bug which caused
2143 block_iterate to fail to handle HURD created filesystems;
2144 it tested the inode translator field before the inode was
2145 loaded.
2146
2147Tue Sep 17 14:08:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2148
2149 * initialize.c (ext2fs_initialize): Make sure the description for
2150 the inode bitmap is set correctly.
2151
2152 * bitmaps.c (ext2fs_allocate_generic_bitmap): Fix minor type typo.
2153
2154Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2155
2156 * Release of E2fsprogs version 1.05
2157
Theodore Ts'o1e3472c1997-04-29 14:53:37 +00002158Sat Sep 7 07:36:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2159
2160 * initialize.c: Override the kernel's idea of default
2161 checkinterval from 0 (never) to 180 days.
2162
2163Wed Aug 28 03:20:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2164
2165 * namei.c (ext2fs_namei_follow): New function which follows
2166 symbolic link (if any) at the target.
2167
2168Tue Aug 27 01:48:43 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2169
2170 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Add support
2171 for shortcut function fs->read_inode() and fs->write_inode().
2172 Added inode_cache to reduce CPU time spent in doing
2173 byte swapping.
2174
2175 * swapfs.c (ext2fs_swap_super): Swap the new fields in a V2
2176 superblock.
2177
2178 * namei.c (ext2fs_follow_link): New function.
2179 (ext2fs_namei): Extended to have support for chasing
2180 symbolic links. ext2fs_namei() still returns an inode
2181 which is a symbolic link. Symbolic links are only chased
2182 while resolving the containing directory. To chase
2183 symbolic links of the final result, use
2184 ext2fs_follow_link().
2185
2186Mon Aug 26 23:46:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2187
2188 * ext2_err.et.in: Added new error code EXT2_ET_SYMLINK_LOOP.
2189
2190 * bitops.h (ext2fs_set_bit, ext2fs_celar_bit): Use asm inlines
2191 provided by Pete A. Zaitcev (zaitcev@lab.sun.mcst.ru).
2192
2193Thu Aug 22 00:40:18 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2194
2195 * initialize.c (ext2fs_initialize): On systems where the byte
2196 order is not i386 compatible, set the swap_byte flag.
2197
2198 * inode.c (inocpy_with_swap): Check to see if inode contains a
2199 fast symlink before swapping the inode block fields. This
2200 required adding a new argument to inocpy_with_swap to
2201 determine whether the mode field is in host order or not.
2202
2203Wed Aug 21 00:45:42 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2204
2205 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit): On
2206 the sparc, if EXT2_STD_BITOPS set, use the standard
2207 i386-compatible bitmask operations, instead on the
2208 non-standard native bitmask operators.
2209
2210Fri Aug 9 11:11:35 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2211
2212 * block.c (ext2fs_block_iterate): Cause block iterator to return
2213 the HURD translator block (along with everything else).
2214 If the flag BLOCK_FLAG_DATA_ONLY is passed to the block
2215 iterator, then don't return any meta data blocks
2216 (including the HURD translator).
2217
2218Wed Jul 17 17:13:34 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2219
2220 * gen_uuid.c: New file, which generates DCE-compatible UUIDs.
2221
2222 * uuid.c: New file, containing UUID utility functions.
2223
2224Tue Jul 16 10:19:16 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2225
2226 * ext2fs.h: Add a definition of the "real" ext2 superblock.
2227
2228Fri May 24 14:54:55 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2229
2230 * ext2fs.h: Fix erroneous ino_t type used in block_bitmap type.
2231
2232Sun May 19 15:39:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2233
2234 * openfs.c (ext2fs_open): If the blocksize in the superblock is
2235 zero, return the error EXT2_ET_CORRUPT_SUPERBLOCK, since
2236 that's a basic value that must be correct for the rest of
2237 the library to work.
2238
2239 * ext2_err.et.in (EXT2_ET_CORRUPT_SUPERBLOCK): Added new error
2240 code.
2241
Theodore Ts'o62c06f71997-04-29 14:34:47 +00002242Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2243
2244 * Release of E2fsprogs version 1.04
2245
Theodore Ts'o7f88b041997-04-26 14:48:50 +00002246Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
2247
2248 * Release of E2fsprogs version 1.03
2249
2250Tue Mar 26 12:06:32 1996 <tytso@rsts-11.mit.edu>
2251
2252 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit):
2253 Change the m68k bit numbering for bitmasks to match with
2254 the bit numbering used by all other ext2 implementations.
2255
2256Thu Mar 7 03:37:00 1996 <tytso@rsts-11.mit.edu>
2257
2258 * inode.c (ext2fs_get_next_inode, ext2fs_close_inode_scan,
2259 ext2fs_open_inode_scan): Support dynamically-sized inodes.
2260
2261Wed Mar 6 12:26:29 1996 <tytso@rsts-11.mit.edu>
2262
2263 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Support
2264 dynamically-sized inodes.
2265
2266 * openfs.c (ext2fs_open): Allow dynamic revision filesystem to be
2267 loaded.
2268
2269Tue Mar 5 03:49:37 1996 <tytso@rsts-11.mit.edu>
2270
2271 * initialize.c (ext2fs_initialize): Catch an error condition where
2272 the passed in size is *really* too small.
2273
2274 * alloc.c (ext2fs_new_inode):
2275 * ext2fs.h (EXT2_FIRST_INODE): Add support for dynamic revision to
2276 get first inode.
2277
2278Wed Feb 21 15:56:17 1996 <tytso@rsts-11.mit.edu>
2279
2280 * getsize.c (ext2fs_get_device_size): Open the device read-only
2281 when trying to determine its size.
2282
Theodore Ts'o74becf31997-04-26 14:37:06 +00002283Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
2284
2285 * Release of E2fsprogs version 1.02
2286
2287Sat Dec 9 09:57:50 1995 <tytso@rsts-11.mit.edu>
2288
2289 * rw_bitops.c (ext2fs_write_block_bitmap):
2290 * bitops.c (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
2291 * bitops.h (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
2292 Rename {test,set,clear}_bit to ext2fs_{test,set,clear}_bit,
2293 to avoid conflicts with with kernel include files. Also
2294 rename ADDR and CONST_ADDR to EXT2FS_ADDR and
2295 EXT2FS_CONST_ADDR.
2296
Theodore Ts'o50e1e101997-04-26 13:58:21 +00002297Thu Oct 26 12:09:16 1995 <tytso@rsts-11.mit.edu>
2298
2299 * ext2_err.et: Updated message in EXT2_ET_BASE to say version 0.5c
2300
2301 * swapfs.c (ext2fs_swap_super): Put an #ifdef check around
2302 s_def_resuid and s_def_resgid for backwards compatibility.
2303
2304Fri Oct 20 23:33:31 1995 <tytso@rsts-11.mit.edu>
2305
2306 * bitops.h: Added #ifdef's for Sparc.
2307
2308Wed Sep 6 22:14:46 1995 <tytso@rsts-11.mit.edu>
2309
2310 * getsize.c: #include <sys/ioctl.h> under Linux to pick up ioctl()
2311 declaration
2312
2313 * closefs.c: #include <string.h> to pick up memset() declaration
2314
2315Mon Sep 4 21:45:29 1995 Remy Card <card@bbj>
2316
2317 * Makefile.in: Added support for BSD shared libraries.
2318
2319 * initialize.c (ext2fs_initialize): Correctly set the s_creator_os
2320 flag.
2321
2322Mon Sep 4 09:55:30 1995 <tytso@rsts-11.mit.edu>
2323
2324 * unix_io.c (unix_open): Add a double check; if the passed in name
2325 is NULL, return EXT2_ET_BAD_DEVICE_NAME.
2326
2327 * ext2_err.et (EXT2_ET_BAD_DEVICE_NAME): Added new error code
2328
2329Wed Aug 16 15:44:10 1995 <tytso@rsts-11.mit.edu>
2330
2331 * inode.c (ext2fs_check_directory): Use LINUX_S_ISDIR instead of
2332 S_ISDIR.
2333
2334Tue Aug 15 13:08:36 1995 <tytso@rsts-11.mit.edu>
2335
2336 * getsize.c (ext2fs_get_device_size): Add support for reading the
2337 partition size from a BSD disk label.
2338
2339Thu Aug 10 09:33:26 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2340
2341 * getsize.c (ext2fs_get_device_size): New function that determins
2342 the size of a device. Used by mke2fs and e2fsck.
2343
2344Sat Aug 12 03:09:54 1995 Remy Card <card@bbj>
2345
2346 * Makefile.in (install): Install static libraries in $(ulibdir)
2347 (/usr/lib on Linux) instead of $(libdir) (/lib on Linux).
2348
2349Wed Aug 9 17:04:23 1995 Theodore Y. Ts'o <tytso@dcl>
2350
2351 * bitmaps.c (ext2fs_free_inode_bitmap, ext2fs_free_block_bitmap):
2352 Move these functions to freefs.c.
2353
2354 * closefs.c (ext2fs_flush): If swapping blocks, clear the group
2355 descriptors shadow memory to keep purify quiet. (This
2356 also has the nice benefit that the unused portion of the
2357 shadow descriptors are zeroed out.)
2358
2359 * dirblock.c (ext2fs_write_dir_block): We need to use
2360 dirent->rec_len *before* it's byteswapped to find the
2361 location of the next directory structure!
2362
2363 * alloc.c (ext2fs_new_inode): Fix bug which could potentially
2364 cause ext2fs_new_inode to loop infinitely if we're trying
2365 to allocate an inode in group #0 and there are no free
2366 inodes at all in the system.
2367
2368 * closefs.c: #include <errno.h> if it exists.
2369
2370Sun Aug 6 13:27:50 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2371
2372 * ext2fs.h (BLOCK_FLAG_HOLE): Added new definition for
2373 BLOCK_FLAG_APPEND. Added documentation for the block
2374 interator flags.
2375
2376Sat Aug 5 11:44:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2377
2378 * Makefile.in (DLL_INSTALL_DIR, ELF_INSTALL_DIR): Set the
2379 installation directories correctly.
2380
2381Tue Jul 18 09:27:38 1995 <tytso@rsx-11.mit.edu>
2382
2383 * namei.c (process_dir_block):
2384 * mkdir.c (ext2fs_mkdir):
2385 * expanddir.c (expand_dir_proc): Use ext2fs_{read,write}_dir_block
2386 to read/write the directory block.
2387
2388 * dirblock.c (ext2fs_read_dir_block), ext2fs_write_dir_block): New
2389 file containing functions for reading and writing
2390 directory blocks (byte swapping if necesssary)
2391
2392 * block.c (block_iterate_ind, block_iterate_dind,
2393 block_iterate_tind): Byte swap the block addresses if
2394 EXT2_SWAP_BYTES is set (and swap them back before writing
2395 them out.)
2396
2397 * inode.c (inocpy_with_swap): New function.
2398 (ext2fs_get_next_inode, ext2fs_read_inode, ext2fs_write_inode):
2399 Call inocpy_with_swap if EXT2_SWAP_BYTES if set.
2400
2401 * closefs.c (ext2fs_flush): If EXT2_SWAP_BYTES is set, then swap
2402 the superblock and group descriptors before writing it out.
2403
2404 * openfs.c (ext2fs_open): If the magic number is byte-swapped,
2405 then set the EXT2_SWAP_BYTES and byte-swap the superblock
2406 and group descriptors.
2407
2408 * swapfs.c (ext2fs_swap_super, ext2fs_swap_group_desc): New functions
2409 to desp ext2 filesystem structures.
2410
2411 * bitops.c (set_bit, clear_bit, test_bit): Use modifications
2412 supplied by Pete A. Zaitcev so that the C language
2413 versions of these functions are more portable. They will
2414 now work on both little and big endian systems, and the
2415 assumption that 32-bit integers are used is gone.
2416
2417 * bitops.h (ext2_swab16, ext2_swab32): Added new functions for
2418 doing byte swapping.
2419
2420 * ext2fs.h (EXT2_SWAP_BYTES): Add new flag which indicates that
2421 byte swapping should take place.
2422
2423Sun Jul 16 06:21:43 1995 <tytso@rsx-11.mit.edu>
2424
2425 * Makefile.in, cmp_bitmaps.c (ext2fs_compare_block_bitmap_end,
2426 ext2fs_compare_inode_bitmap_end): Added new file
2427 containing routines to compare bitmaps.
2428
2429 * ext2_err.et (EXT2_ET_NEQ_BLOCK_BITMAP, EXT2_ET_NEQ_INODE_BITMAP):
2430 Added new error codes.
2431
2432Sat Jul 15 04:23:37 1995 <tytso@rsx-11.mit.edu>
2433
2434 * inode.c (ext2fs_get_next_inode): Don't check scan->inode_buffer;
2435 if the magic number is correct, it will be allocated.
2436
2437Fri Jul 14 19:02:59 1995 <tytso@rsx-11.mit.edu>
2438
2439 * block.c (block_iterate_ind, block_iterate_dind,
2440 block_iterate_tind): Don't recompute block_nr each loop;
2441 just increment it! Factor check of BLOCK_FLAG_APPEND out
2442 of the loop. Factor mask of BLOCK_CHANGED into changed
2443 variable out of the loop. (block_iterate_ind, in
2444 particular, gets called a lot, so every little
2445 optimization helps.)
2446
2447Thu Jul 13 08:02:45 1995 <tytso@rsx-11.mit.edu>
2448
2449 * block.c (block_iterate_ind, block_iterate_dind,
2450 block_iterate_tind): Precompute limit of loop to speed up
2451 block_iterate_ind and company.
2452
2453 * bitops.h (ext2fs_fast_mark_block_bitmap,
2454 ext2fs_fast_unmark_block_bitmap, ext2fs_fast_test_block_bitmap,
2455 ext2fs_fast_mark_inode_bitmap, ext2fs_fast_unmark_inode_bitmap,
2456 ext2fs_fast_test_inode_bitmap): Add fast version of these
2457 functions, which don't do range checking.
2458
2459 * bitops.h (ext2fs_get_block_bitmap_start,
2460 ext2fs_get_inode_bitmap_start, ext2fs_get_block_bitmap_end,
2461 ext2fs_get_inode_bitmap_end): Add new accessor functions
2462 which return the start and end points of the bitmaps.
2463
2464Tue Jul 11 18:59:41 1995 <tytso@rsx-11.mit.edu>
2465
2466 * llseek.c (ext2_llseek): If the offset is small enough, use lseek
2467 instead of llseek. The errno if the offset is too large
2468 and lseek is not supported should be EINVAL, not -EINVAL.
2469
2470Thu Jun 15 23:43:02 1995 Remy Card <card@bbj>
2471
2472 * Makefile.in: Added support for ELF shared libraries.
2473 Fixed typos in the compilation rules.
2474 (distclean): Added Makefile.
2475
2476 * llseek.c (llseek): New function, if llseek() does not exist in the
2477 C library.
2478 (ext2_llseek): Changed to call llseek().
2479
2480Mon Jun 12 08:29:07 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2481
2482 * ext2fs.h: Use __u32 to define blk_t, instead of unsigned long.
2483
2484Sun Jun 11 15:02:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2485
2486 * mkdir.c (ext2fs_mkdir): Use LINUX_S_IFDIR instead of S_IFDIR.
2487
2488 * ext2fs.h (LINUX_S_IFDIR): Define a linux specific versions of
2489 the S_*, which are normally defined in <sys/stat.h>. This
2490 allows us to compile e2fsprogs on a non-Linux system,
2491 which may have a different value for S_IFDIR.
2492
2493Sat Jun 10 23:47:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2494
2495 * bitops.c (clear_bit, set_bit): Remove calls to cli() and sti();
2496 this is a user-mode application!
2497
2498Thu Jun 8 13:13:22 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
2499
2500 * llseek.c: Put the include of <linux/unistd.h> inside the #ifdef
2501 __linux__ so that non-linux systems won't see it.
2502
2503 * alloc.c: Include <errno.h> if possible.
2504 * badblocks.c: Ditto.
2505 * bb_inode.c: Ditto.
2506 * bitmaps.c: Ditto.
2507 * block.c: Ditto.
2508 * expanddir.c: Ditto.
2509 * get_pathname.c: Ditto.
2510 * initialize.c: Ditto.
2511 * inode.c: Ditto.
2512 * llseek.c: Ditto.
2513 * mkdir.c: Ditto.
2514 * namei.c: Ditto.
2515 * newdir.c: Ditto.
2516 * openfs.c: Ditto.
2517 * rw_bitmaps.c: Ditto.
2518 * unix_io.c: Ditto.
2519
2520 * Makefile.in: Rewritten to conform to GNU coding standards and
2521 support separate compilation directories.
2522
2523Thu May 11 04:13:12 1995 <tytso@rsx-11.mit.edu>
2524
2525 * initialize.c (ext2fs_initialize): Don't allow more than one
2526 bitmaps's worth of inodes in a group.
2527
Theodore Ts'of3db3561997-04-26 13:34:30 +00002528Sat Mar 11 14:07:11 1995 Theodore Y. Ts'o <tytso@localhost>
2529
2530 * llseek.c (ext2_llseek): Added error checking to the llseek()
2531 compat code to protect against overflow. This only
2532 applies to 1.0 and early 1.1 kernels, which don't support
2533 the llseek() system call.
2534
2535Thu Nov 24 16:29:00 1994 Theodore Y. Ts'o (tytso@rt-11)
2536
2537 * unix_io.c (unix_open): Initialize the read_error and write_error
2538 io_channel pointers to be null.
2539
2540 * bb_inode.c (clear_bad_block_proc): If an illegal block number is
2541 found, clear it but don't try to update the filesystem
2542 accounting information, since that's hopeless anyway.
2543
2544 * block.c (bloblock_iterate_ind, bloblock_iterate_dind,
2545 bloblock_iterate_tind): Check to see if the indirect blocks are
2546 valid before trying to read them.
2547
2548 * ext2_err.et (EXT2_ET_BAD_IND_BLOCK, EX2_ET_BAD_DIND_BLOCK,
2549 EXT2_ET_BAD_TIND_BLOCK): Add new error codes.
2550
2551 * bitops.h (ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
2552 ext2fs_test_block_bitmap, ext2fs_mark_inode_bitmap,
2553 ext2fs_unmark_inode_bitmap, ext2fs_test_inode_bitmap): If an
2554 illegal block or inode number is passed in, return instead
2555 of trying to test, set, or clear the bit.
2556
2557Mon Nov 7 21:32:33 1994 Remy Card <card@bbj>
2558
2559 * Makefile: Added a dummy install target in case shared libraries
2560 are not built.
2561
2562Mon Oct 24 14:11:44 1994 (tytso@rsx-11)
2563
2564 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix calculation of how
2565 the real last block of the bitmap should be calculated.
2566
2567Wed Sep 7 10:05:36 1994 (tytso@rsx-11)
2568
2569 * bitmaps.c (ext2fs_fudge_inode_bitmap_end,
2570 ext2fs_fudge_block_bitmap_end, ext2fs_clear_inode_bitmap,
2571 ext2fs_clear_block_bitmap, ext2fs_free_inode_bitmap,
2572 ext2fs_free_block_bitmap): Add magic number checking for
2573 the inode and block bitmaps.
2574
2575 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix to set the correct
2576 magic number for a block bitmap instead of an inode bitmap.
2577
2578 * inode.c (ext2fs_close_inode_scan, ext2fs_get_next_inode): Add
2579 magic number checking for the inode_scan structure.
2580
2581 * badblocks.c (badblocks_list_free, badblocks_list_add,
2582 badblocks_list_test, badblocks_list_iterate_begin,
2583 badblocks_list_iterate, badblocks_list_iterate_end): Add
2584 magic number checking for the badblocks_list and
2585 badblocks_iterate structures.
2586
2587 * ext2_err.et (EXT2_ET_MAGIC_UNIX_IO_CHANNEL):
2588 * unix_io.c (unix_open, unix_close, unix_set_blksize, unix_read_blk,
2589 unix_write_blk, unix_flush): Add magic number checking
2590 both for io_channel structure and unix_private_data
2591 structure.
2592
2593 * openfs.c (ext2fs_open): Add check for io_manager structure's
2594 magic number.
2595
2596 * rw_bitmaps.c (ext2fs_write_inode_bitmap, ext2fs_write_block_bitmap,
2597 ext2fs_read_inode_bitmap, ext2fs_read_block_bitmap,
2598 ext2fs_read_bitmaps, ext2fs_write_bitmaps):
2599 * read_bb.c (ext2fs_read_bb_inode):
2600 * read_bb_file.c (ext2fs_read_bb_FILE):
2601 * newdir.c (ext2fs_new_dir_block):
2602 * namei.c (ext2fs_dir_iterate, ext2fs_lookup, ext2fs_namei):
2603 * link.c (ext2fs_link, ext2fs_unlink):
2604 * inode.c (ext2fs_open_inode_scan, ext2fs_read_inode,
2605 ext2fs_write_inode, ext2fs_get_blocks,
2606 ext2fs_check_directory):
2607 * get_pathname.c (ext2fs_get_pathname):
2608 * expanddir.c (ext2fs_expand_dir):
2609 * block.c (ext2fs_block_iterate):
2610 * bitmaps.c (ext2fs_allocate_inode_bitmap,
2611 ext2fs_allocate_block_bitmap):
2612 * bb_inode.c (ext2fs_update_bb_inode):
2613 * alloc.c (ext2fs_new_inode,ext2fs_new_block,ext2fs_get_free_blocks):
2614 * check_desc.c (ext2fs_check_desc):
2615 * closefs.c (ext2fs_close, ext2fs_flush):
2616 * freefs.c (ext2fs_free): Add check for ext2_filsys magic number.
2617
2618 * Makefile:
2619 * ext2fs.h:
2620 * openfs.c:
2621 * check_desc.c (ext2fs_check_desc): Move ext2fs_check_desc from
2622 openfs.c into its own file.
2623
2624 * ext2fs.h (EXT2_CHECK_MAGIC): Added macro for checking for
2625 structure magic numbers.
2626
2627 * closefs.c (ext2fs_flush): Folded in Remy Card's changes to clear
2628 the EXT2_VALID_FS flag in the backup superblock blocks, so that if
2629 someone uses the -b option to specify the use of the backup
2630 superblock --- this usually means that the main superblock is
2631 toast. :-)
2632
2633 * ext2fs.h:
2634 * ext2_err.et (EXT2_ET_REV_TOO_HIGH):
2635 * openfs.c (ext2fs_open): Folded in Remy Card's changes to add a
2636 revision level to the superblock.
2637
2638Sun Aug 21 00:50:08 1994 Theodore Y. Ts'o (tytso@rt-11)
2639
2640 * ext2fs.h:
2641 * bitmaps.c:
2642 * bitops.c
2643 * bitops.h:
2644 * openfs.c:
2645 * initialize.c: Completely revamped the inode and block bitmap
2646 structures, so that they can be better chance of being extensible
2647 in a shared library. They are now their own type, instead of
2648 being a char *. Also, the function signatures of
2649 ext2fs_test_block_bitmap, ext2fs_mark_block_bitmap,
2650 ext2fs_unmark_block_bitmap, ext2fs_test_inode_bitmap,
2651 ext2fs_mark_inode_bitmap, and ext2fs_unmark_inode_bitmap were
2652 changed to eliminate the ext2_filsys argument, since it is no
2653 longer necessary.
2654
2655Wed Aug 17 21:46:44 1994 Remy Card (card@bbj)
2656
2657 * unix_io.c (unix_read_blk and unix_write_blk): use the llseek
2658 system call if available.
2659
2660 * llseek.c: new file. This is the stub calling the llseek system
2661 call which allows supports for 2GB+ file systems.
2662
2663 * initialize.c (ext2fs_initialize): Ext2fs_initialize now stores
2664 the creator operating system.
2665
2666Wed Aug 17 10:03:24 1994 Theodore Y. Ts'o (tytso@rt-11)
2667
2668 * initialize.c (ext2fs_initialize): Ext2fs_initialize now sets up
2669 the group descriptor statistics in addition to everything else.
2670 This relieves mke2fs of the responsibility of doing it.
2671
2672 * bitops.c, bitops.h: Add assembly inline functions for the 68000.
2673 Added a new #define, _EXT2_HAVE_ASM_BITOPS_ to control whether or
2674 not the generic C function equivalents should be included or not.
2675
2676 * openfs.c (ext2fs_open): If a superblock is specified, then use
2677 the backup group descriptors that go along with this superblock,
2678 instead of using the primary group descriptors. This allows
2679 e2fsck to recover filesystems where the primary group descriptors
2680 have been trashed.
2681
2682