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