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