blob: cd881e832241ef2574f34150245f897870aaf1b2 [file] [log] [blame]
Theodore Ts'o3c6b8972001-07-10 14:27:58 -040012001-07-10 Theodore Tso <tytso@valinux.com>
2
3 * closefs.c (write_primary_superblock): After writing changes to
4 the primary superblock, update the original superblock
5 copy so we don't have to re-write those changes in the
6 future.
7 (ext2fs_flush): Clear the superblock dirty flag after
8 we've flushed out changes to disk.
9
Theodore Ts'of41e7e62001-07-07 22:14:23 -0400102001-07-07 Theodore Tso <tytso@valinux.com>
11
12 * bitops.h (ext2fs_find_first_bit_set): Use %esi instead of %ebx
13 to avoid register conflicts when compiling in PIC mode.
14
Theodore Ts'oac493822001-07-04 14:04:58 -0400152001-07-04 Theodore Tso <tytso@valinux.com>
16
17 * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set):
18 Add new functions (C and in i386 assembler) which quickly
19 find bits set in a bitmask.
20
Theodore Ts'o67960132001-06-23 00:16:37 -0400212001-06-23 Theodore Tso <tytso@valinux.com>
22
Theodore Ts'o342d8472001-07-02 11:54:09 -040023 * Makefile.in, ext_attr.c, ext2_attr.c, ext2fs.h: Add new files
24 ext2_ext_attr.h and ext_attr.c for extended attributes
25 support.
26
Theodore Ts'o67960132001-06-23 00:16:37 -040027 * Release of E2fsprogs 1.22
28
Theodore Ts'o89a1fa82001-06-22 20:40:51 -0400292001-06-22 Theodore Tso <tytso@valinux.com>
30
Theodore Ts'ob23520d2001-06-22 21:52:14 -040031 * mkjournal.c (ext2fs_add_journal_inode): Move close of file
32 descriptor so that adding a journal to a mounted
33 filesystem doesn't die. (Fixes a bug accidentally
34 introduced in e2fsprogs 1.21.)
35
Theodore Ts'o78332622001-06-22 21:20:47 -040036 * mkjournal.c (ext2fs_add_journal_inode): Only use fchflags if
37 HAVE_CHFLAGS and UF_NODUMP are defined, since the Hurd has
38 fchflags without defining UF_NODUMP. (Addresses Debian
39 bug #101361)
40
Theodore Ts'od90f3492001-06-22 21:01:17 -040041 * flushb.c: Use platform independent method of defining the
42 BLKFLSBUF and FDFLUSH ioctl's. Also include sys/mount.h
43 since on newer glibc's BLKFLSBUF is defined there.
44
Theodore Ts'o16645f82001-06-22 20:54:11 -040045 * bitops.h: The C language versions of ext2fs_swab16/32 need to be
46 included if EXT2FS_ENABLE_SWAPFS is defined, since we need
47 to support byte swapping even if we don't support the
48 conversion functions. (Fixes Debian bug #101686).
49
Theodore Ts'o89a1fa82001-06-22 20:40:51 -040050 * dirblock.c (ext2fs_read_dir_block): Remove use of dir_entry_2
51 since the byte-swapping code all assumes the
52 ext2_dir_entry structure. (It's a question of whether or
53 not name_len should be byte-swapped or not, and whether
54 it's a 16 bit or 8 bit field.)
55
Theodore Ts'o997b8202001-06-15 18:33:43 +0000562001-06-15 Theodore Tso <tytso@valinux.com>
57
Theodore Ts'of4f75ba2001-06-16 01:14:28 +000058 * Release of E2fsprogs 1.21
59
602001-06-15 Theodore Tso <tytso@valinux.com>
61
Theodore Ts'od1e66b72001-06-15 22:44:32 +000062 * Makefile.in: Fix bug in installation of ext2_types.h. It is a
63 file which is generated and is therefore found in the
64 build directory, not source directory.
65
Theodore Ts'o997b8202001-06-15 18:33:43 +000066 * ismounted.c (check_mntent_file): Use a test file in / to check
67 to see if the root filesystem is mounted read-only. This
68 protects against the case where /etc might not be on /, as
69 well as the case where /etc/mtab doesn't exist. (Both are
70 should-never happen scenarios, but you never know...)
71
Theodore Ts'o6bd13482001-06-14 07:00:55 +0000722001-06-14 Theodore Tso <tytso@valinux.com>
73
74 * ismounted.c (ext2fs_check_if_mounted): Fix grammer in comment.
75 Remove unneeded #pragma argsused, since the arguments are
76 always used.
77
Theodore Ts'o30ae14c2001-06-13 22:38:56 +0000782001-06-13 Theodore Tso <tytso@valinux.com>
79
Theodore Ts'o65794882001-06-14 00:24:42 +000080 * ext2_types.h.in: If linux/types.h has been defined, then don't
81 try to redefine the typedefs.
82
Theodore Ts'o364a3732001-06-13 23:46:39 +000083 * Makefile.in (HFILES): Add ext2_types.h to the list of files
84 which should be installed.
85
Theodore Ts'o66a46142001-06-13 23:26:19 +000086 * ismounted.c (check_mntent_file): Work around GNU hurd brain
Theodore Ts'o83d5abf2001-06-13 23:31:27 +000087 damage. Addresses Debian bug #100304.
Theodore Ts'o66a46142001-06-13 23:26:19 +000088
Theodore Ts'o30ae14c2001-06-13 22:38:56 +000089 * Makefile.in: Limit some .o files from being included into the
90 library if --disable-debugfs, --disable-swapfs,
91 --disable-imager, or --disable-resizer are used.
92
Theodore Ts'ocbbf0312001-06-13 00:12:04 +0000932001-06-12 Theodore Tso <tytso@valinux.com>
94
95 * inode.c, tst_iscan.c: Stop using the compatibility badblocks
96 function, and use the ext2fs_badblocks_* functions
97 instead.
98
Theodore Ts'o5df55d72001-06-11 07:00:04 +0000992001-06-11 Theodore Tso <tytso@valinux.com>
100
Theodore Ts'o3034f622001-06-11 15:17:45 +0000101 * Makefile.in, gen_bitmap.c, bitops.h: Move inline functions
102 ext2fs_mark_generic_bitmap and
103 ext2fs_unmark_generic_bitmap to gen_bitmap.c as normal
104 functions. (This saves space and doesn't significantly
105 change the speed of e2fsck on a P-III.)
106
Theodore Ts'o5df55d72001-06-11 07:00:04 +0000107 * ext2fs.h, bitops.h, block.c, bmap.c, closefs.c, dirblock.c,
108 inode.c, native.c, openfs.c, rw_bitmaps.c, swapfs.c: Only
109 include the byte-swapping logic if ENABLE_SWAPFS is turned
110 on or if we're on a big-endian machine.
111
112 * initialize.c (ext2fs_initialize):Use WORDS_BIGENDIAN directly to
113 set EXT2_FLAG_SWAP_BYTES, instead of using
114 ext2fs_native_flag.
115
116 * native.c (ext2fs_native_flag): Use WORDS_BIGENDIAN provided by
117 autoconf to determine whether or not return
118 EXT2_FLAG_SWAP_BYTES.
119
Theodore Ts'o349a4842001-06-11 00:49:29 +00001202001-06-10 Theodore Tso <tytso@valinux.com>
121
122 * Makefile.in: Remove the dependence on the libe2p library.
123
124 * mkjournal.c (ext2fs_add_journal_inode): Replace use of fsetflags
125 with direct usage of the ioctl/fchflags so that we don't
126 have to depend on the libe2p library.
127
Theodore Ts'o30e50b72001-06-08 09:43:40 +00001282001-06-08 Theodore Tso <tytso@valinux.com>
129
130 * ext2_types.h.in: Use unsigned ints in favor of unsigned longs
131 when trying to find a 32-bit wide type.
132
133 * icount.c (insert_icount_el): Fix the code used to estimate the
134 size of the new icount array to be more intelligent, to
135 avoid reallocating the array too many times. Thanks to
136 Enrique Perez-Terron for pointing this out.
137
Theodore Ts'of36d14f2001-06-02 04:13:16 +00001382001-06-02 Theodore Tso <tytso@valinux.com>
139
140 * valid_blk.c (ext2fs_inode_has_valid_blocks): Only check i_blocks
141 for a symlink to determine whether it is a fast symlink.
142
Theodore Ts'o797f5ef2001-06-01 23:49:46 +00001432001-06-01 Theodore Tso <tytso@valinux.com>
144
145 * Makefile.in, dosio.c, ext2_fs.h, ext2_types.h.in, ext2fs.h:
Theodore Ts'o36a23e12001-06-02 00:54:10 +0000146 Move include/asm/types.h.in to lib/ext2fs/ext2_types.h.in.
Theodore Ts'o797f5ef2001-06-01 23:49:46 +0000147
Theodore Ts'od5f858d2001-05-25 17:14:23 +00001482001-05-25 Theodore Tso <tytso@valinux.com>
149
Theodore Ts'obb185862001-05-25 17:35:00 +0000150 * Release of E2fsprogs 1.20
151
1522001-05-25 Theodore Tso <tytso@valinux.com>
153
Theodore Ts'od5f858d2001-05-25 17:14:23 +0000154 * ismounted.c: More cleanups for ismounted.c, some from Andreas,
155 some to clean up Andreas's patches. Use strncpy instead
156 of strcpy to save the root's mountpoint. Clean up #ifdef
157 structure. Remove uneeded variable in testing/debug driver.
158
Theodore Ts'occ860172001-05-25 16:32:53 +00001592001-05-24 Andreas Dilger <adilger@turbolinux.com>
160
161 * ismounted.c: Add check for root device which doesn't depend on
162 /etc/fstab or /proc/mounts to be correct. Don't call
163 endmntent() before we are done with mnt struct.
164
Theodore Ts'o4ed8ebe2001-05-23 18:30:10 +00001652001-05-23 Theodore Tso <tytso@valinux.com>
166
167 * ext2_err.et.in (EXT2_ET_JOURNAL_UNSUPP_VERSION): Added new error
168 code.
169
Theodore Ts'ob10820c2001-05-21 05:23:31 +00001702001-05-21 Theodore Tso <tytso@valinux.com>
171
172 * ext2_fs.h: Change assignment of EXT2_FEATURE_COMPAT_DIR_INDEX to
173 make room for pre-existing usage of
174 EXT2_FEATURE_COMPAT_EXT_ATTR. Add flag EXT2_INDEX_FL with
175 the same codepoint as EXT2_BTREE_FL.
176
Theodore Ts'o7c2d2562001-05-21 02:54:21 +00001772001-05-20 Theodore Tso <tytso@valinux.com>
178
179 * ext2fs.h: #include <> instead of "" for ext2fs and et header
180 files, since they will be installed in /usr/include
181
Theodore Ts'o7a34cb02001-05-14 04:28:35 +00001822001-05-14 Theodore Tso <tytso@valinux.com>
183
Theodore Ts'o9f8046f2001-05-14 11:35:52 +0000184 * alloc.c, alloc_tables.c, badblocks.c, bb_compat.c, bb_inode.c,
185 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
186 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
187 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
188 expanddir.c, ext2_fs.h, fileio.c, finddev.c, flushb.c,
189 freefs.c, get_pathname.c, getsize.c, icount.c, imager.c,
190 initialize.c, inline.c, inode.c, irel_ma.c, ismounted.c,
191 link.c, lookup.c, mkdir.c, mkjournal.c, namei.c, native.c,
192 newdir.c, nt_io.c, openfs.c, read_bb.c, read_bb_file.c,
193 rs_bitmap.c, rw_bitmaps.c, swapfs.c, test_io.c,
194 tst_badblocks.c, tst_byteswap.c, tst_getsize.c,
195 tst_iscan.c, unix_io.c, unlink.c, valid_blk.c, version.c,
196 write_bb_file.c, ext2_fs.h: Moved file from include/linux.
197 Adjust all files in this directroy to include this file.
198
Theodore Ts'o7a34cb02001-05-14 04:28:35 +0000199 * mkjournal.c (ext2fs_create_journal_superblock): Remove redundant
200 code.
201
Theodore Ts'o0f679452001-05-05 16:42:24 +00002022001-05-05 Theodore Tso <tytso@valinux.com>
203
204 * fileio.c (ext2fs_file_read): Factored out common code and
205 cleaned up function. Fixed a bug where if there was an
206 error reading from the disk, the number of bytes read
207 wasn't reliably set. (Fixes Debian bug #79163)
208 (ext2fs_file_write): Factored out common code and made
209 function more efficient; if writing a full block, don't
210 bother to do a read-modify-write cycle.
211
Theodore Ts'o1cca4d62001-05-05 05:12:14 +00002122001-05-04 Theodore Tso <tytso@valinux.com>
213
214 * dirblock.c (ext2fs_read_dir_block): Check for an directory
215 record length which isn't a multiple four, and treat that
216 as an invalid. Scan the directory and return an error
217 (EXT2_ET_DIR_CORRUPTED) if the directory records are
218 corrupted.
219 (ext2fs_write_dir_block): If while byte-swapping the
220 directory block, if there's an error, abort and return
221 EXT2_ET_DIR_CORRUPTED.
222
Theodore Ts'oa78926e2001-05-03 04:02:29 +00002232001-05-02 Theodore Tso <tytso@valinux.com>
224
225 * ext2fs.h (EXT2_FLAG_IMAGE_FILE): Add new flag, and add
226 image_header field in the ext2_filsys structure
227
228 * block.c (block_iterate_ind, block_iterate_dind, block_iterate_tind):
229 * inode.c (ext2fs_read_inode):
230 * rw_bitmaps.c (read_bitmaps):
231 * openfs.c (ext2fs_open): Add support for EXT2_FLAG_IMAGE_FILE
232
233 * imager.c (ext2fs_image_bitmap_read): Fix bug in imager to make
234 sure the full bitmap is saved.
235
Theodore Ts'of955cc12001-05-01 19:04:28 +00002362001-05-01 Theodore Tso <tytso@valinux.com>
237
Theodore Ts'oa78926e2001-05-03 04:02:29 +0000238 * e2image.h (struct ext2_image_hdr): Add space for the device name
239 in the image header.
240
Theodore Ts'of955cc12001-05-01 19:04:28 +0000241 * dir_iterate.c (ext2fs_process_dir_block): Add a double-check to
242 make sure the rec_len is a multiple of 4, to prevent
243 bus-errors on architectures which care about mis-aligned
244 pointer references.
245
Theodore Ts'o954a6832001-04-26 01:42:37 +00002462001-04-25 Theodore Tso <tytso@valinux.com>
247
248 * getsize.c (ext2fs_get_device_size): Use an unsigned long to
249 query the device sizes using the BLKGETSIZE ioctl.
250
Theodore Ts'o03603942001-04-17 00:53:25 +00002512001-04-16 Theodore Tso <tytso@valinux.com>
252
Theodore Ts'o52db0b42001-04-17 02:22:05 +0000253 * ismounted.c (check_mntent): Check /proc/mounts on Linux systems
254 before checking /etc/mtab. The EXT2_MF_READONLY flag is
255 now set from the /etc/mtab options field for all
256 filesystems, not just the root filesystem. Add debugging
257 code to make it easier to test ext2fs_check_if_mounted().
258
Theodore Ts'o03603942001-04-17 00:53:25 +0000259 * mkjournal.c (ext2fs_create_journal_superblock): Add safety
260 check; return an error if there's an attempt to create a
261 journal less than 1024 filesystem blocks.
262
263 * ext2_err.et.in, mkjournal.c: Change EXT2_JOURNAL_NOT_BLOCK and
264 EXT2_NO_JOURNAL_SB to be EXT2_ET_*.
265
Theodore Ts'o9ec53cf2001-02-20 16:28:40 +00002662001-02-20 Theodore Tso <tytso@valinux.com>
267
268 * bitops.h (ext2fs_swab16, ext2fs_swab32): Add i386 assembly
269 inline functions.
270
271 * tst_byteswap.c: New function to test the byteswap functions.
272 Add to regression test suite.
273
Theodore Ts'oc5423c52001-02-08 05:45:17 +00002742001-02-08 Theodore Tso <tytso@valinux.com>
275
276 * e2image.h (struct ext2_image_hdr): Fix type for fs_hostname
277
Theodore Ts'od23042a2001-02-08 03:37:16 +00002782001-02-07 Theodore Tso <tytso@valinux.com>
279
280 * mkjournal.c (ext2fs_create_journal_superblock): Fix the setting
281 of s_first for external devices to always be 1, since
282 jsb->s_first is always relative to the start of the
283 journal superblock. Use htonl(1) when setting s_nr_users.
284
Theodore Ts'o02088862001-01-18 01:44:19 +00002852001-01-17 Theodore Ts'o <tytso@valinux.com>
286
287 * mkjournal.c (ext2fs_add_journal_device): Fix bug where the
288 device number of the filesystem (instead of the journal)
289 was being dropped into s_journal_dev.
290
Theodore Ts'oa1128472001-01-16 06:56:14 +00002912001-01-15 Theodore Ts'o <tytso@valinux.com>
292
293 * initialize.c (ext2fs_initialize): Add support for initializing
294 the ext2 superblock for external journal devices. This
295 basically means we don't bother to allocate any block
296 group descriptors.
297
298 * openfs.c (ext2fs_open): Only open external journal devices if
299 the new flag EXT2_FLAG_JOURNAL_DEV_OK is passed to
300 ext2fs_open. When opening such devices, don't try to read
301 the block group descriptors, since they're not there.
302
303 * ext2_err.et.in (EXT2_NO_JOURNAL_SB): Add new error code
304
305 * mkjournal.c: Export a new function,
306 ext2fs_create_journal_superblock(), which allocates and
307 returns a buffer containing a journal superblock. This is
308 needed by mke2fs to create an external journal. Rewrote
309 ext2fs_add_journal_device() so that it no longer creates
310 the external journal, but rather adds a filesystem to an
311 existing external journal. It handles all of the UUID
312 manipulation.
313
314 * ext2fs.h: List the EXT3_FEATURE_JOURNAL_DEV as a flag supported
315 by the library. Define the EXT2_FLAG_JOURNAL_DEV_OK.
316 Changed function prototype for ext2fs_add_journal_device().
317
Theodore Ts'o80779942001-01-14 18:03:43 +00003182001-01-14 Theodore Ts'o <tytso@valinux.com>
319
320 * closefs.c (ext2fs_flush): Don't write out anything beyond the
321 primary superblock if EXT2_INCOMPAT_JOURNAL_DEV is
322 listed.
323
Theodore Ts'ob94bd812001-01-12 17:26:05 +00003242001-01-12 Theodore Ts'o <tytso@valinux.com>
325
326 * imager.c: Fix gcc -Wall complaints and a series of bugs where
327 retval wasn't set correctly. (Thanks to Andreas Dilger
328 for pointing this out.)
329
Theodore Ts'o4d0f3e12001-01-11 15:48:50 +00003302001-01-11 <tytso@snap.thunk.org>
331
332 * flushb.c (ext2fs_sync_device): New function which centralizes
333 all of the places which might try to use the BLKFLSBUF
334 or FDFLUSH ioctls (and usually failing to define them
335 since the system header files don't usually do this for
336 us, and we're trying to avoid usage of kernel include
337 files now).
338
Theodore Ts'o31dbecd2001-01-11 04:54:39 +00003392001-01-10 <tytso@snap.thunk.org>
340
341 * alloc.c, bb_inode.c, bitmaps.c, bitops.h, block.c, bmap.c,
342 bmove.c, brel.h, cmp_bitmaps.c, dblist.c, dblist_dir.c,
343 dir_iterate.c, expanddir.c, ext2fs.h, ext2fsP.h, fileio.c,
344 finddev.c, get_pathname.c, icount.c, inode.c, irel.h,
345 irel_ma.c, ismounted.c, link.c, lookup.c, mkdir.c,
346 mkjournal.c, namei.c, newdir.c, read_bb_file.c, test_io.c,
347 tst_iscan.c, unix_io.c, unlink.c: Change use of ino_t to
348 ext2_ino_t, to protect applications that attempt to
349 compile -D_FILE_OFFSET_BITS=64, since this inexplicably
350 changes ino_t(!?). So we use ext2_ino_t to avoid an
351 unexpected ABI change.
352
Theodore Ts'ocdaf1fa2001-01-05 22:23:22 +00003532001-01-05 <tytso@snap.thunk.org>
354
Theodore Ts'oe446d712001-01-05 22:27:06 +0000355 * dirblock.c (ext2fs_read_dir_block): Fix a potential case where
356 we may overrun allocated memory in case of a corrupted
357 filesystem (or an e2fsck test case :-) when byte-swapping
358 the directory block.
359
Theodore Ts'ocdaf1fa2001-01-05 22:23:22 +0000360 * ext2fs.h: Indent the #warning to fix gcc -Wall complaint.
361
362 * mkjournal.c (ext2fs_add_journal_device): Fix various gcc -Wall
363 complaints including a missing return 0 at the end of
364 ext2fs_add_journal_device.
365
Theodore Ts'o43ec8732001-01-03 14:56:46 +00003662001-01-03 <tytso@snap.thunk.org>
367
Theodore Ts'o4becab62001-01-03 19:22:42 +0000368 * Makefile.in: Link in libe2p when creating libext2fs as a shared
369 library, since mkjournal.c now references fsetflags().
370
371 * mkjournal.c (ext2fs_add_journal_inode): Folded in Andreas
372 Dilger's changes (with fixups) to allow on-line creation
373 of a journal file.
374
Theodore Ts'o43ec8732001-01-03 14:56:46 +0000375 * ext2fs.h, closefs.c (ext2fs_flush): Add new flag,
376 EXT2_FLAG_SUPER_ONLY, which the close routines to only
377 update the superblock, and not the group descriptors.
378
3792000-12-30 Andreas Dilger <adilger@turbolinux.com>
380
381 * ismounted.c: add ext2fs_check_mount_point() function, which will
382 optionally return the mount point of a device if mounted
383
Theodore Ts'o31a17b32001-01-03 13:04:12 +00003842000-12-14 Andreas Dilger <adilger@turbolinux.com>
385
386 * mkjournal.c: rename ext2fs_add_journal_fs() to the more descriptive
387 ext2fs_add_journal_inode()
388
Theodore Ts'oe5b38a52001-01-01 16:17:12 +00003892001-01-01 <tytso@snap.thunk.org>
390
391 * ext2fs.h: Remove definition of ext2fs_sb. Note: this may break
392 source (but not binary) compatibility of some users of the
393 ext2 library. They should just simply do a global search
394 and replace of struct ext2fs_sb with struct
395 ext2_super_block, and use their own private copy of
396 ext2_fs.h if they aren't already.
397
398 * closefs.c, initialize.c, link.c, newdir.c, openfs.c, swapfs.c:
399 Replace use of ext2fs_sb with ext2_super_block.
400
Theodore Ts'o2fe1efe2000-12-31 13:39:17 +00004012000-12-31 <tytso@snap.thunk.org>
402
403 * ext2fs.h: Cleaned up header file by removing definitions of
404 feature flags that might not have been defined in older
405 ext2 header files. Now that we're using our own
406 include/linux/ext2fs.h header file, this can never happen.
407
408 * jfs_dat.h: Removed old header file which is no longer needed.
409
Theodore Ts'o7dcfa6e2000-12-13 17:50:14 +00004102000-12-13 Theodore Ts'o <tytso@valinux.com>
411
Theodore Ts'oa917d1c2000-12-13 18:36:23 +0000412 * closefs.c (ext2fs_update_dynamic_rev): New function suggested
Theodore Ts'o3fe973b2000-12-13 17:55:49 +0000413 by Andreas Dilger to update the filesystem revision to
414 EXT2_DYNAMIC_REV.
415
Theodore Ts'o7dcfa6e2000-12-13 17:50:14 +0000416 * swapfs.c (ext2fs_swap_super): Add byte swapping for the journal
417 fields.
418
Theodore Ts'o58618732000-12-09 05:47:45 +00004192000-12-09 <tytso@snap.thunk.org>
420
Theodore Ts'o31a17b32001-01-03 13:04:12 +0000421 * ext2fs.h, mkjournal.c (ext2fs_add_journal_inode,
Theodore Ts'o4e246702000-12-09 14:39:16 +0000422 ext2fs_add_journal_device): Add a new argument to the APIs
423 of these function, which is a flags word. This is used to
424 allow the creation of a V1 superblock for those folks who
425 are using ext3 0.3b in production. Note, the user-land
426 interface for getting at this flag won't be documented, as
427 the V1 superblock is deprecated.
428
Theodore Ts'o58618732000-12-09 05:47:45 +0000429 * mkjournal.c (init_journal_superblock): Sync Stephen's changes
430 which creates a V2 superblock instead of a V1 superblock.
431
Theodore Ts'of20d0d52000-12-05 03:53:41 +00004322000-11-21 <tytso@snap.thunk.org>
433
434 * test_io.c (test_write_blk, test_write_byte): Fix typos pointed
435 out by Andreas Dilger.
436
Theodore Ts'o72ed1262000-11-12 19:32:20 +00004372000-11-05 <tytso@snap.thunk.org>
438
439 * imager.c (ext2fs_image_{inode,super,bitmap}_{read,write},
440 ext2_fs.h, Makefile.in: New file that has routines that
441 save ext2fs metadata to a file.
442
443 * ext2_err.et.in (EXT2_ET_MAGIC_E2IMAGE): New error code assigned.
444
445 * e2image.h: New file which defines the file format for the ext2
446 image file. (Saved copy of ext2 metadata to a file as a
447 saving throw against worst-case damage.)
448
Theodore Ts'o6a7f4552000-11-12 19:07:06 +00004492000-11-01 <tytso@snap.thunk.org>
450
451 * inode.c (ext2fs_flush_icache): Add new function
452 ext2fs_flush_icache() which flushes the internal inode
453 cache. Applications which modify the inode table blocks
454 directly must call this function.
455
Theodore Ts'oc180ac82000-10-26 20:24:43 +00004562000-10-26 <tytso@snap.thunk.org>
457
Theodore Ts'o17ee8b12000-10-26 20:45:58 +0000458 * mkjournal.c: Add #include of netinet/in.h, since Solaris
459 requires it for ntohl().
460
Theodore Ts'oc180ac82000-10-26 20:24:43 +0000461 * ext2_io.h (io_channel_write_byte): Add new interface to allow
462 callers to write specific byte ranges. This is an
463 optional interface, which not all IO channels may
464 implement.
465
466 * unix_io.c (unix_write_byte):
467 * test_io.c (test_write_byte): Add implementation of the
468 write_byte function.
469
470 * closefs.c (write_primary_superblock, ext2fs_flush): Add a new
471 function which writes the primary superblock. If the IO
472 channel supports writing raw bytes directly, only fields
473 which were modified are written to the disk. This makes
474 it safe(r) to use utilities like tune2fs on a mounted
475 filesystem.
476
477 * freefs.c (ext2fs_free): Free the original superblock if it is
478 available.
479
480 * openfs.c (ext2fs_open): Store a copy of the original superblock
481 when opening it.
482
483 * ext2fs.h: Add a field to store the original superblock in the
484 ext2 context structure.
485
Theodore Ts'o43819662000-10-25 02:06:09 +00004862000-10-24 <tytso@snap.thunk.org>
487
488 * llseek.c: Add #ifdef's for IA64 (it's a 64-bit platform, so we
489 don't need to use llseek).
490
Theodore Ts'od3cd93c2000-10-24 18:33:16 +00004912000-10-24 <tytso@valinux.com>
492
493 * Makefile.in, ext2fs.h, jfs_dat.h, mkjournal.c: Add functions for
494 creating an ext3 journal on a filesystem.
495
4962000-08-21 <tytso@valinux.com>
497
498 * ext2_err.et.in (EXT2_JOURNAL_NOT_BLOCK): Add new error code.
499
Theodore Ts'oadfc8c62000-10-18 19:22:24 +00005002000-08-22 <tytso@valinux.com>
501
502 * unix_io.c: Make massive changes to support a multiple block
503 writethrough cacheing.
504
505 * ext2_io.h: Added flags field to the io_channel structure.
506
Theodore Ts'ode23aa12000-08-19 17:00:47 +00005072000-08-19 <tytso@valinux.com>
508
509 * finddev.c, ext2fs.h, Makefile.in: Add new file, finddev.c, which
510 provides the function ext2fs_find_block_device(). This
511 function returns the pathname to a block device, given its
512 device number.
513
Theodore Ts'of9e67062000-07-13 23:25:54 +00005142000-07-13 <tytso@valinux.com>
515
516 * Release of E2fsprogs 1.19
517
Theodore Ts'oab146762000-07-07 04:37:35 +00005182000-07-07 Theodore Ts'o <tytso@valinux.com>
519
520 * ext2fs.h (EXT2_LIB_FEATURE_INCOMPAT_SUPP): Add
521 EXT3_FEATURE_INCOMPAT_RECOVER (aka needs_recovery) to the
522 list of filesystem flags supported by the library.
523
Theodore Ts'o57dca852000-07-04 19:20:25 +00005242000-07-04 Theodore Ts'o <tytso@valinux.com>
525
Theodore Ts'o8f13d8c2000-07-04 19:41:29 +0000526 * ext2fs.h: Update to include latest journalling additions to the
527 superblock.
528
Theodore Ts'o57dca852000-07-04 19:20:25 +0000529 * dll/jump.funcs: Add new jumptable entries for
530 ext2fs_write_bb_FILE, ext2fs_read_bb_FILE2, and
531 ext2fs_badblocks_equal.
532
533 * tst_badblocks.c: Update test program to test
534 ext2fs_read_bb_FILE2 and ext2fs_write_FILE.
535
536 * write_bb_file.c (ext2fs_write_bb_FILE): New function which
537 writes out bad blocks list to a file.
538
539 * read_bb_file.c (ext2fs_read_bb_FILE2): Add new function which
540 changes the callback function to take two additional
541 arguments; a private blind pointer supplied by the caller,
542 and pointer to a char * containing a pointer to the
543 invalid string.
544
545 * badblocks.c (ext2fs_badblocks_equal): Add new function which
546 returns true if two badblocks list are equal.
547
548 * Makefile.in: Remove explicit link of -lc in the shared library.
549 (It shouldn't be necessary, and is harmful in some cases).
550
Theodore Ts'oabf7d382000-06-10 19:27:17 +00005512000-06-10 Theodore Ts'o <tytso@valinux.com>
552
553 * getsize.c (main): Add debugging code under #ifdef DEBUG
554
Theodore Ts'o2e8d40d2000-05-27 15:15:40 +00005552000-05-27 Theodore Ts'o <tytso@valinux.com>
556
557 * mkdir.c (ext2fs_mkdir): Read the parent directory's inode
558 earlier, so that if there's an error reading it, we can
559 more cleanly back out of the operation.
560
Theodore Ts'of0f4acb2000-05-25 23:22:11 +00005612000-05-25 <tytso@snap.thunk.org>
562
Theodore Ts'odc5f68c2000-05-25 23:31:54 +0000563 * getsize.c (ext2fs_get_device_size): Use open64() instead of
Theodore Ts'o7fd86d32000-05-25 23:42:22 +0000564 open() if it exists. Under linux, manually define the
565 ioctl for BLKGETSIZE if it isn't already defined and it's
566 safe to do so.
Theodore Ts'odc5f68c2000-05-25 23:31:54 +0000567
568 * unix_io.c (unix_open): Use open64() instead of open() if it
569 exists.
570
571 * llseek.c: Simplify header includes of unistd.h. If lseek64 is
572 available (and prototypes are defined) use it in
573 preference to llseek.
574
Theodore Ts'of0f4acb2000-05-25 23:22:11 +0000575 * Makefile: Add hack dependency rule so that parallel makes work
576 correctly.
577
Theodore Ts'ofa7ef712000-05-19 02:11:41 +00005782000-05-18 Theodore Ts'o <tytso@valinux.com>
579
580 * ext2fs.h: Add appropriate ifdef's to support C++ compilation.
581
Theodore Ts'oe589f672000-04-03 13:45:40 +00005822000-04-03 Theodore Ts'o <tytso@valinux.com>
583
Theodore Ts'o06af47f2000-04-03 13:51:00 +0000584 * block.c: Readibility tweak in conditionals involving
585 ctx->fs->flags.
586
Theodore Ts'oe589f672000-04-03 13:45:40 +0000587 * ext2fs.h: Use AUTOCONF SIZEOF_* macros if available to determine
588 how to define __s64 and __u64. Turn off "compression is
589 experimental" warning if the cpp macro
590 I_KNOW_THAT_COMPRESSION_IS_EXPERIMENTAL is defined.
591
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +00005922000-02-11 <tytso@snap.thunk.org>
593
Theodore Ts'o5a63dd22000-02-11 15:44:08 +0000594 * ext2fs.h: Define EXT2FS_COMPRESSED_BLKADDR and HOLE_BLKADDR.
595 Conditionally include Compression as a supported type if
596 ENABLE_COMPRESSION (via --enable-compression) is turned on.
597
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +0000598 * swapfs.c (ext2fs_swap_super): Swap the compression usage bitmap.
599
Theodore Ts'o28ffafb2000-02-08 19:14:02 +00006002000-02-08 <tytso@snap.thunk.org>
601
602 * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap,
603 ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
604 ext2fs_mark_inode_bitmap, ext2fs_unmark_inode_bitmap):
605 Change to return the previous state of the bit that is
606 being marked or unmarked. For speed optimization.
607
Theodore Ts'o80e808f2000-02-02 16:19:59 +00006082000-02-02 Theodore Ts'o <tytso@valinux.com>
609
610 * getsize.c, ismounted.c: Remove unneeded include of linux/fs.h
611
612 * swapfs.c: Remove #ifdef HAVE_EXT2_INODE_VERSION since it's not
613 needed any more; we know it will always be i_generation.
614 Add support for swapping the high bits of the uid and gid.
615
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +00006161999-11-19 <tytso@valinux.com>
617
Theodore Ts'odab278a1999-11-19 18:49:27 +0000618 * mkdir.c (ext2fs_mkdir): Only update the parent's inode link
619 counts if the link was successful. Patch suggested by
620 jeremy@goop.org.
621
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +0000622 * Makefile.in (distclean): Remove TAGS and Makefile.in.old from
623 the source directory.
624
Theodore Ts'ocd086361999-11-10 16:00:39 +00006251999-11-10 <tytso@valinux.com>
626
627 * Release of E2fsprogs 1.18
628
Theodore Ts'o9b9fe8a1999-11-08 22:05:04 +00006291999-11-08 <tytso@valinux.com>
630
631 * Makefile.in (tst_badblocks): Add freefs.o to the object list,
632 since ext2fs_badblocks_list_free was moved to freefs.c.
633
634 * tst_badblocks.c: Use the newer badblocks API names. Add
635 duplicate blocks to the test inputs to test dealing with
636 adding blocks which are already in the badblocks list.
637
638 * badblocks.c (ext2fs_badblocks_list_add): If appending to the end
639 of the list, use a shortcut O(1) operations instead of an
640 O(n) operation. (Idea suggested by David Beattie.)
641
642 * freefs.c (ext2fs_free): Use ext2fs_badblocks_list_free() instead
643 of badblocks_list_free(), to save a procedure call.
644
Theodore Ts'o416c93d1999-10-26 04:49:54 +00006451999-10-26 <tytso@valinux.com>
646
Theodore Ts'o28e11941999-10-26 18:17:20 +0000647 * Release of E2fsprogs 1.17
648
6491999-10-26 <tytso@valinux.com>
650
Theodore Ts'o416c93d1999-10-26 04:49:54 +0000651 * ext2fs.h: Add kludge to deal with the fact that egcs cpp doesn't
652 seem to handle ~0UL the same way as they used to.
653
Theodore Ts'o601002b1999-10-26 02:06:39 +00006541999-10-25 <tytso@valinux.com>
655
Theodore Ts'ofe70fd31999-10-26 02:34:47 +0000656 * nt_io.c (_OpenNtName): Open the device using
657 FILE_SYNCHRONOUS_IO_NONALERT instead of
658 FILE_SYNCHRONOUS_IO_ALERT
659 (nt_open): At the end of the device open routine, unlock
660 the drive but do not dismount it.
661
Theodore Ts'o601002b1999-10-26 02:06:39 +0000662 * initialize.c (CREATOR_OS): Use __GNU__ instead of __gnu__ to
663 detect the Hurd OS.
664
Theodore Ts'oe6198e51999-10-23 00:58:54 +00006651999-10-22 <tytso@valinux.com>
666
Theodore Ts'o614fdfd1999-10-23 03:19:51 +0000667 * Release of E2fsprogs 1.16
668
6691999-10-22 <tytso@valinux.com>
670
Theodore Ts'oe6198e51999-10-23 00:58:54 +0000671 * mkdir.c (ext2fs_mkdir): Pass EXT2_FT_DIR flag to ext2fs_link().
672
673 * link.c (ext2fs_link): This call now uses the low three bits of
674 the flags parameter to pass the directory filetype
675 information; it will set the directory entry FILETYPE
676 information if the filesystem supports it.
677
678 * newdir.c (ext2fs_new_dir_block): If the FILETYPE superblock
679 option is set, then create the '.' and '..' entries with
680 the filetype set to EXT2_FT_DIR.
681
Theodore Ts'oaa4115a1999-10-21 19:33:18 +00006821999-09-24 <tytso@valinux.com>
683
684 * nt_io.c: New file which supports I/O under Windows NT.
685
Theodore Ts'o3a5f8ea1999-09-14 20:21:26 +00006861999-09-07 <tytso@valinux.com>
687
688 * ext2fs.h: Add new fields for journalling and define new
689 feature bits used by newer filesystems: IMAGIC_INODES,
690 HAS_JOURNAL, RECOVER.
691
692 * expanddir.c (ext2fs_expand_dir, expand_dir_proc): Change where
693 we update the inode block count and size files so that the
694 block count field is updated correctly when we create an
695 indirect block.
696
6971999-07-18 Theodore Ts'o <tytso@valinux.com>
Theodore Ts'o657cb971999-07-30 23:19:10 +0000698
699 * Release of E2fsprogs 1.15
700
Theodore Ts'oe72a9ba1999-06-25 15:40:18 +00007011999-06-23 <tytso@valinux.com>
702
703 * swapfs.c (ext2fs_swap_inode): Add compatibility for Linux 2.3
704 kernels that use i_generation instead of i_version. Patch
705 supplied by Jon Bright <sircus@sircus.demon.co.uk>.
706
7071999-06-21 <tytso@valinux.com>
Theodore Ts'o813bbb21999-06-22 03:17:45 +0000708
709 * dir_iterate.c (ext2fs_process_dir_block): Check for corrupted
710 directory entry before calling the callback function.
711 This should prevent some core dumps of insufficiently
712 paranoid callback functions.
713
Theodore Ts'oa4bf69d1999-05-29 21:53:30 +00007141999-05-29 <tytso@rsts-11.mit.edu>
715
716 * ext2fs.h: Add feature definition for AFS IMAGIC inodes.
717
718 * fileio.c (ext2fs_file_open): Remove obsolete comment stating
719 that we don't handle writing yet (we do). Fixed bug where
720 we weren't allocating a big enough buffer for ext2_bmap.
721
Theodore Ts'of0687a51999-05-29 21:48:03 +00007221999-05-03 <tytso@rsts-11.mit.edu>
723
724 * openfs.c (ext2fs_open): Check to make sure that the number of
725 blocks per group is not zero --- if so, it must be a bad
726 superblock!
727
Theodore Ts'o9e51eca1999-01-09 16:32:31 +00007281999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
729
730 * Release of E2fsprogs 1.14
731
Theodore Ts'o665f7101999-01-08 13:33:39 +00007321999-01-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
733
734 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Check to see if
735 the inode number is zero; if it's zero, return
736 EXT2_ET_BAD_INODE_NUM.
737
Theodore Ts'o7a469521999-01-04 08:50:59 +00007381998-12-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
739
740 * initialize.c (ext2fs_initialize): Use EXT2_FIRST_INODE instead
741 of EXT2_FIRST_INO to ensure compatibility with Linux 1.2
742 header files.
743
Theodore Ts'o73f17cf1999-01-04 07:35:45 +0000744Mon Jan 4 02:32:09 1999 Theodore Y. Ts'o <tytso@mit.edu>
745
746 * llseek.c (ext2fs_llseek): Change ext2fs_llseek() in the
747 non-Linux case to use EINVAL by default, unless it isn't
748 defined, in which case we use EXT2_ET_INVALID_ARGUMENT
749 instead.
750
Theodore Ts'o556ad131998-12-19 08:10:58 +00007511998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu>
752
753 * Release of E2fsprogs 1.13
754
Theodore Ts'o5a679c81998-12-03 16:40:38 +00007551998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
756
757 * Makefile.in: Updated dependencies.
758
Theodore Ts'o8d7e83b1998-09-23 00:27:26 +00007591998-09-22 Theodore Ts'o <tytso@rsts-11.mit.edu>
760
761 * initialize.c (ext2fs_initialize): Make sure that we allocate
762 enough inodes so that we can make a valid filesystem.
763
Theodore Ts'o2eb374c1998-09-03 01:22:57 +00007641998-09-02 Theodore Ts'o <tytso@rsts-11.mit.edu>
765
766 * rw_bitmaps.c: Fixed signed/unsigned warnings.
767
768 * fileio.c (ext2fs_file_set_size): Remove unneeded extern from the
769 function declaration.
770
771 * dblist.c (make_dblist): Add safety check in case the dblist
772 pointer passed in is null (in which case, assign it to
773 fs->dblist). Fixed some signed/unsigned warnings.
774
775 * bmap.c: Make addr_per_block be of type blk_t to avoid
776 signed/unsigned warnings.
777
778 * namei.c (ext2fs_follow_link): Remove uneeded extern from the
779 function declaration.
780
781 * get_pathname.c (get_pathname_proc): Use return value from
782 ext2fs_get_mem, instead of checking if &gp->name is
783 NULL.
784
785 * dir_iterate.c (ext2fs_process_dir_block):
786 * dblist_dir.c (ext2fs_dblist_dir_iterate): Remove uneeded extern
787 from the function declaration.
788
789 * block.c (ext2fs_block_iterate2): If the read_inode call fails,
790 return the error directly instead of jumping to the
791 cleanup routine, since we don't need to do any cleanup.
792
793 * alloc_table.c (ext2fs_allocate_group_table): Make this
794 function take a dgrp_t for its group argument.
795
796 * ext2fs.h: Make dgrp_t an __u32 type, and make
797 fs->desc_group_count be of type dgrp_t.
798
Theodore Ts'of75c28d1998-08-01 04:18:06 +00007991998-07-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
800
801 * badblocks.c (ext2fs_badblocks_list_add): Use a bigger increment
802 than 10 blocks when we need to expand the size of the
803 badblocks list.
804
Theodore Ts'o4a5fa191998-07-09 05:42:45 +00008051998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
806
807 * Release of E2fsprogs 1.12
808
Theodore Ts'o30c42611998-06-30 05:33:11 +00008091998-06-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
810
811 * closefs.c (ext2fs_flush): Update the s_block_group_nr field as
812 appropriate for all of the block group copies, so that
813 it's clear where the beginning of the filesystem is on the
814 disk. (For when the partition table gets scrod.)
815
816 * ext2fs.h: Change the name of the feature from
817 EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE to
818 EXT2_FEATURE_INCOMPAT_FILESIZE (to match with the kernel).
819
Theodore Ts'o818180c1998-06-27 05:11:14 +00008201998-06-18 Theodore Ts'o <tytso@rsts-11.mit.edu>
821
822 * inode.c (get_next_blockgroup): Fix bug where if
823 get_next_blockgroup() is called early because of a missing
824 inode table in a block group, the current_inode counter
825 wasn't incremented correctly.
826
Theodore Ts'o4faba5b1998-06-16 05:23:41 +00008271998-06-16 Theodore Ts'o <tytso@rsts-11.mit.edu>
828
829 * read_bb.c (ext2fs_read_bb_inode): Make function more robust
830 against a completely trashed bad block inode.
831
Theodore Ts'o03673db1998-06-10 20:39:43 +00008321998-06-10 Theodore Ts'o <tytso@rsts-11.mit.edu>
833
834 * alloc_tables.c (ext2fs_allocate_group_table): Fix bug so that if
835 the stride length hits a bad value, we retry the block
836 allocation starting at the beginning of the block group.
837
838 * ext2fs.h, bb_inode.c, block.c, bmove.c, dir_iterate.c,
839 expanddir.c, ext2fsP.h, read_bb.c: Change blkcnt_t to be
840 e2_blkcnt_t to avoid collision with LFS API.
841
Theodore Ts'o353952d1998-05-01 05:32:18 +00008421998-05-01 Theodore Ts'o <tytso@rsts-11.mit.edu>
843
844 * initialize.c (ext2fs_initialize): Initialize s_inodes_count in a
845 way that avoids overflows on disk sizes greater than 4GB.
846
Theodore Ts'o4c77fe51998-04-30 17:35:59 +00008471998-04-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
848
849 * ext2fs.h: Define EXT2_QSORT_TYPE appropriately for the
850 return type for comparison functions for qsort.
851
852 * dblist.c (dir_block_cmp): Use EXT2_QSORT_TYPE in function
853 declaration.
854
Theodore Ts'o76f875d1998-04-27 01:41:13 +00008551998-04-26 Theodore Ts'o <tytso@rsts-11.mit.edu>
856
857 * ext2fs.h, bitops.h: Add support for the Watcom C compiler to do
858 inline functions.
859
860 * ext2fs.h, dosio.c: Use asm/types.h instead of linux/types.h to
861 evade a potential problem with glibc's header files trying
862 to spike out linux/types.h.
863
864 * ext2fs.h (ext2fs_resize_mem): Change the function prototype to
865 include the old size of the memory, which is needed for
866 some braindamaged memory allocation systems that don't
867 support realloc().
868
869 * badblocks.c (ext2fs_badblocks_list_add):
870 bb_inode.c (clear_bad_block_proc):
871 dblist.c (ext2fs_add_dir_block):
872 icount.c (insert_icount_el):
873 irel_ma.c (ima_put):
874 rs_bitmap.c (ext2fs_resize_generic_bitmap): Update functions to
875 pass the old size of the memory to be resized to
876 ext2fs_resize_mem().
877
Theodore Ts'o469bec81998-04-01 02:46:43 +00008781998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
879
880 * Makefile.in: Change to use new installation directory variables
881 convention. Fix uninstall rules to take $(DESTDIR) into
882 account.
883
Theodore Ts'o4a31c481998-03-30 01:27:25 +00008841998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu>
885
886 * ext2fs.h: If __STRICT_ANSI__ is defined and we're on a platform
887 with 32 bit longs, then we need to manually define __s64
888 and __u64, since the current kernel header files don't
889 define these if __STRICT_ANSI__ is defined. This is a
890 problem if we are compiling with full GCC warnings, since
891 we do need 64 bit support.
892
893 * Makefile.in (OBJS): Remove bmove.o from files to be built,
894 since we're not using ext2fs_move_blocks() and there
895 is some question as to its usefulness in its current
896 form.
897
898 * bmap.c (block_bmap): Remove unused function.
899
900 * bmove.c (process_block): Fix -Wall warning.
901
Theodore Ts'o36a43d61998-03-24 16:17:51 +00009021998-03-23 Theodore Ts'o <tytso@rsts-11.mit.edu>
903
904 * block.c (ext2fs_block_iterate3): Make the ref_offset field
905 contain the offset into the inode.i_blocks array when
906 ref_block is zero. Since we haven't done a formal
907 release of e2fsprogs since block_iterate2 was first
908 introduced, I removed block_iterate2, and renamed
909 block_iterate3 to be block_iterate2.
910
911 * bb_inode.c, bmove.c, dblist_dir.c, dir_iterate.c,
912 expanddir.c, ext2fs.h, ext2fsP.h, read_bb.c: Change
913 use of block_iterate and block_iterate2 to
914 block_iterate2 with the new prototype for the
915 interator function. (using blkcnt_t forr blockcount)
916
Theodore Ts'o674a4ee1998-03-23 02:06:52 +00009171998-03-21 Theodore Ts'o <tytso@rsts-11.mit.edu>
918
919 * ext2fs.h: Add new superblock fields (s_algorithm_usage_bitmap,
920 s_prealloc_blocks, s_prealloc_dir_blocks). Added
921 conditional defines of new features COMPAT_DIR_PREALLOC,
922 RO_COMPAT_LARGE_FILE RO_COMPAT_BTREE_DIR,
923 INCOMPAT_COMPRESSION, INCOMPAT_DIRNAME_SIZE. Changed
924 the library to declare that we support COMPAT_DIR_PREALLOC,
925 INCOMPAT_DIRNAME_SIZE, RO_COMPAT_LARGE_FILE.
926
927 * fileio.c: Rename function ext2fs_file_llseek to be
928 ext2fs_file_lseek, which is more accurate.
929
930 * block.c: Add new function ext2fs_block_iterate3 which calls
931 the iterator function with the blockcount argument of
932 type blkcnt_t. This version of the function is
933 allowed to handle large files; the other fucntions are
934 not.
935
936 * ext2fs.h: Add new type blkcnt_t
937
938 * ext2_err.et.in: Add error code EXT2_ET_FILE_TOO_BIG
939
940 * block.c (ext2fs_block_iterate2): Fix bug where the block count
941 field wasn't getting correctly incremented for sparse
942 files when the indirect or doubly-indirect block
943 specified in the inode was zero.
944
945Sun Mar 8 22:42:47 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
946
947 * unlink.c (unlink_proc):
948 * lookup.c (lookup_proc):
949 * link.c (link_proc):
950 * get_pathname.c (get_pathname_proc):
951 * dir_iterate.c (ext2fs_process_dir_block): Mask off high 8 bits
952 from dirent->name_len, so it can be used for other
953 purposes.
954
955 * ext2fs.h: Add definition of EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE,
956 and indicate that we have support for this incompatible
957 option.
958
Theodore Ts'oc7752561998-02-24 04:25:52 +0000959Mon Feb 23 08:46:33 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
960
961 * ext2_err.et.in: Added new error code, EXT2_ET_CANCEL_REQUESTED.
962
Theodore Ts'o79b05db1998-02-21 05:01:19 +0000963Fri Feb 20 23:58:01 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
964
965 * dblist.c (ext2fs_get_num_dirs): Improve the estimation of the
966 number of directories when the block group information is
967 unreliable.
968
Theodore Ts'oc4e749a1998-02-20 05:33:14 +00009691998-02-20 Theodore Y. Ts'o <tytso@edt.mit.edu>
970
Theodore Ts'o218a4861998-02-21 01:41:39 +0000971 * inode.c (ext2fs_get_next_inode): Always do the check to see if the
972 inode table is missing so that we catch the case where the
973 first block group is missing.
974
Theodore Ts'oc4e749a1998-02-20 05:33:14 +0000975 * getsize.c, ismounted.c, unix_io.c: #include errno.h since it's
976 needed.
977
Theodore Ts'o9abd2ce1998-02-16 22:00:37 +0000978Mon Feb 16 16:16:00 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
979
980 * ext2_io.h, ext2fs.h: Protect against being included multiple times.
981
982 * bmove.c: #include ext2fsP.h instead of "ext2fs/ext2fs.h"
983
984 * test_io.c (test_flush): Add a debugging printf when the flush
985 method is called.
986
987 * rw_bitmaps.c (ext2fs_read_bitmaps): If the bitmaps are already
988 read in, return right away.
989
Theodore Ts'o5953b9d1998-02-01 13:23:02 +0000990Sun Feb 1 08:20:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
991
992 * bitops.h: Don't try to do i386 inline asm functions if the
993 compiler isn't GCC.
994
995 * ext2fs.h: If EXT2_FLAT_INCLUDES is defined, #include e2_types.h,
996 instead of linux/types.h, and e2_bitops.h instead of
997 ext2fs/bitops.h.
998
999 * icount.c, version.c: Don't #include <et/com_err.h>, as it isn't
1000 necessary.
1001
Theodore Ts'ob5abe6f1998-01-19 14:47:53 +00001002Sat Jan 17 13:13:31 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1003
1004 * inode.c (ext2fs_open_inode_scan): Initialize the group variables
1005 so that we don't need to call get_next_blockgroup() the
1006 first time around. Saves a bit of time, and prevents us
1007 from needing to assign -1 to current_group (which is an
1008 unsigned value).
1009
1010 * icount.c (insert_icount_el): Cast the estimated number of inodes
1011 from a float to an ino_t.
1012
1013 * alloc.c, alloc_tables.c, badlbocks.c, bb_compat.c, bb_inode.c,
1014 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
1015 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
1016 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
1017 expanddir.c, ext2fs.h, fileio.c, freefs.c,
1018 get_pathname.c, getsize.c, icount.c, initialize.c,
1019 inline.c, inode.c, irel_ma.c, ismounted.c, link.c,
1020 lookup.c, mkdir.c, namei.c, native.c, newdir.c,
1021 openfs.c, read_bb.c, read_bb_file.c, rs_bitmap.c,
1022 rw_bitmaps.c, swapfs.c, test_io.c, tst_badblocks.c,
1023 tst_getsize.c, tst_iscan.c, unix_io.c, unlink.c,
1024 valid_blk.c, version.c: If EXT2_FLAT_INCLUDES is
1025 defined, then assume all of the
1026 ext2-specific header files are in a flat directory.
1027
1028 * block.c, bmove.c, dirblock.c, fileio.c: Explicitly cast
1029 all assignments from void * to be compatible with C++.
1030
1031Tue Jan 6 11:28:15 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1032
1033 * closefs.c (ext2fs_flush): Add a call to io_channel_flush() to
1034 make sure the contents of the disk are flushed to disk.
1035
1036Mon Dec 29 14:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1037
1038 * dblist.c (ext2fs_add_dir_block): Change new to be new_entry to
1039 avoid C++ namespace clash.
1040
1041 * bitmaps.c (ext2fs_copy_bitmap): Change new to be new_map to
1042 avoid C++ namespace clash.
1043
1044 * ext2fs.h, bb_inode.c, block.c, bmove.c, brel.h, brel_ma.c,
1045 irel.h, irel_ma.c, dblist.c, dblist_dir.c, dir_iterate.c,
1046 ext2fsP.h, expanddir.c, get_pathname.c, inode.c, link.c,
1047 unlink.c: Change private to be priv_data (to avoid C++
1048 namespace clash)
1049
Theodore Ts'o5be8dc21997-12-01 18:24:10 +00001050Fri Nov 28 09:26:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1051
1052 * dblist.c (ext2fs_get_num_dirs): Make ext2fs_get_num_dirs more
1053 paranoid about validating the directory counts from the
1054 block group information.
1055
1056 * all files: Don't include stdlib.h anymore; include it in
1057 ext2_fs.h, since that file requires stdlib.h
1058
Theodore Ts'o89270b51997-11-24 11:44:25 +00001059Thu Nov 20 16:07:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1060
1061 * expanddir.c (ext2fs_expand_dir): Check to make sure the block
1062 bitmap is loaded, and return an error if it is not.
1063 (expand_dir_proc): Only use ext2fs_write_dir_block when
1064 writing a directory block, not when writing out a fresh
1065 indirect block.
1066
Theodore Ts'od36d8351997-11-12 03:48:07 +00001067Tue Nov 11 22:46:45 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1068
1069 * Makefile.in, tst_getsize.c: Added new file which is used to test
1070 the ext2fs_get_device_size function.
1071
1072 * ext2_err.et.in (EXT2_ET_UNIMPLEMENTED): Added new error code.
1073
Theodore Ts'o79a90bd1997-11-03 19:16:55 +00001074Sun Nov 2 20:36:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1075
1076 * ext2fs.h: Make ext2fs_get_mem take an unsigned argument.
1077
1078 * fileio.c (ext2fs_file_get_size, ext2fs_file_set_size,
1079 ext2fs_file_get_fs): New functions added.
1080
1081
1082Fri Oct 31 12:16:52 1997 <tytso@EDT.MIT.EDU>
1083
1084 * bitops.c (ext2fs_warn_bitmap, ext2fs_warn_bitmap2): Don't call
1085 com_err if OMIT_COM_ERR is defined.
1086
Theodore Ts'o1f0b6c11997-10-31 06:07:47 +00001087Thu Oct 30 11:33:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1088
1089 * Rename new error codes to _ET_ in them for consistency.
1090
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001091Sat Oct 25 00:06:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1092
Theodore Ts'o7b4e4531997-10-26 03:41:24 +00001093 * [all files, basically]: Added definition of ext2fs_get_mem,
1094 ext2fs_free_mem, and ext2fs_resize_mem in ext2fs.h, and
1095 changed all library routines to use these wrapper functions.
1096
Theodore Ts'o78d8f901997-10-26 01:53:39 +00001097 * dblist.c, mkdir.c: use EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND
1098 instead of the system error messages.
1099
1100 * ext2_err.et.in: Added new error messages EXT2_DIR_EXISTS and
1101 EXT2_DB_NOT_FOUND
1102
Theodore Ts'o30fab291997-10-25 22:37:42 +00001103 * ext2fs.h: Added function declarations and constants for bmap.c
1104 and fileio.c.
1105
1106 * ext2_err.et.in: Added new error messages EXT2_FILE_RO and
1107 EXT2_ET_MAGIC_EXT2_FILE
1108
1109 * Makefile.in: Added files bmap.c and fileio.c, and temporarily
1110 commented out brel_ma.c and irel_ma.c
1111
1112 * bmap.c: New file which maps a file's logical block number to its
1113 physical block number.
1114
1115 * fileio.c: New file which implements simple file reading and
1116 writing primitives.
1117
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001118 * alloc.c (ext2fs_alloc_block): New function which allocates a
Theodore Ts'o30fab291997-10-25 22:37:42 +00001119 block, zeros it, and updates the filesystem accounting
1120 records appropriately.
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001121
1122Wed Oct 22 16:47:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1123
1124 * ext2_err.et.in: Added new error codes: EXT2_NO_MEMORY,
1125 EXT2_INVALID_ARGUMENT, EXT2_BLOCK_ALLOC_FAIL,
1126 EXT2_INODE_ALLOC_FAIL, EXT2_NOT_DIRECTORY
1127
1128 * Change various library files to use these functions instead of
1129 EINVAL, ENOENT, etc.
1130
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +00001131Mon Oct 20 19:32:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1132
1133 * llseek.c: Check HAVE_LLSEEK_PROTOTYPE to see whether or not we
1134 need to declare llseek().
1135
Theodore Ts'o1d2ff461997-10-19 23:00:21 +00001136Sun Oct 19 18:56:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1137
Theodore Ts'od40259f1997-10-20 00:44:26 +00001138 * Rename io.h to be ext2_io.h (avoid namespace collisions)
1139
Theodore Ts'o1d2ff461997-10-19 23:00:21 +00001140 * Add #ifdef's for HAVE_SYS_STAT_H and HAVE_SYS_TYPES_H
1141
Theodore Ts'od163b091997-10-03 17:42:28 +00001142Fri Oct 3 13:35:59 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1143
1144 * llseek.c (ext2fs_llseek): Fix type error for ext2fs_llseek()
1145
1146 * icount.c (ext2fs_icount_validate):
1147 * bmove.c (process_block): Fix lint error in type for fprintf().
1148
1149Mon Sep 15 11:45:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1150
1151 * inode.c (ext2fs_check_directory): Add support for the callback
1152 to return the error code EXT2_ET_CALLBACK_NOTHANDLED.
1153
Theodore Ts'offf876b1997-09-13 00:32:29 +00001154Thu Sep 4 12:28:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1155
1156 * bitmaps.c (ext2fs_set_bitmap_padding): New function which sets the
1157 padding of the bitmap to be all one's.
1158
Theodore Ts'obc75f2a1997-09-04 00:43:10 +00001159Wed Sep 3 14:27:30 1997 Theodore Y. Ts'o <tytso@edt.mit.edu>
1160
1161 * llseek.c: Added missing semicolon to glibc fixup declaration of
1162 llseek().
1163
1164 * bmove.c: Add #include of errno.h
1165
Theodore Ts'oe9affb71997-08-24 02:57:55 +00001166Sat Aug 23 22:47:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1167
1168 * Makefile.in (ELF_SO_VERSION): Bump version to be 2.4 since we've
1169 added a new field to the io_channel (app_data).
1170
1171 * io.h: Add a new element to the io_channel structure, app_data.
1172
1173 * initialize.c, openfs.c: Set io->app_data to point at the
1174 filesystem handle.
1175
Theodore Ts'o1c27cac1997-08-14 17:20:42 +00001176Thu Aug 14 08:14:17 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1177
1178 * io.h: Change the prototype of ext2fs_llseek() to use int's
1179 instead of unsigned int's.
1180
1181 * llseek.c: Change to allow PIC and !HAVE_LLSEEK. Add a prototype
1182 to make life easer for GNU Libc 2.
1183
1184 * rw_bitmaps.c: On the PowerPC, the big-endian variant of the ext2
1185 filesystem has its bitmaps stored as 32-bit words with bit
1186 0 as the LSB of each word. Thus a bitmap with only bit 0
1187 set would be, as a string of bytes, 00 00 00 01 00 ... To
1188 cope with this, we byte-reverse each word of a bitmap if
1189 we have a big-endian filesystem, that is, if we are *not*
1190 byte-swapping other word-sized numbers.
1191
Theodore Ts'o3cb6c501997-08-11 20:29:22 +00001192Mon Aug 11 03:30:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1193
1194 * dosio.c: New file to do DOS/BIOS disk accesses.
1195
1196 * namei.c (open_namei): Make pathlen be of type size_t.
1197
1198 * llseek.c: Always #include stdlib.h since it's need to define
1199 size_t.
1200
1201 * io.h: Use errcode_t for magic numbers.
1202
1203 * icount.c (get_icount_el): Use size_t where appropriate
1204
1205 * dupfs.c (ext2fs_dup_handle):
1206 * dblist.c (dir_block_cmp): Use size_t where appropriate.
1207
1208 * read_bb.c (ext2fs_read_bb_inode):
1209 * cmp_bitmaps.c (ext2fs_compare_inode_bitmap): Use blk_t, ino_t
1210 and size_t where appropriate.
1211
1212 * closefs.c (ext2fs_flush): Use dgrp_t instead of int where
1213 appropriate.
1214
1215 * openfs.c (ext2fs_open):
1216 * check_desc.c (ext2fs_check_desc): Use blk_t instead of int where
1217 appropriate.
1218
1219 * rw_bitmaps.c (read_bitmaps):
1220 * irel_ma.c:
1221 * inode.c (ext2fs_write_inode):
1222 * initialize.c (ext2fs_initialize):
1223 * brel_ma.c: Fix to make be 16-bit safe.
1224
1225 * link.c (ext2fs_link):
1226 * unlink.c (ext2fs_unlink):
1227 * lookup.c (lookup_proc):
1228 * ismounted.c (ext2fs_check_if_mounted):
1229 * block.c (xlate_func): Add #pragma argsused for Turbo C.
1230
Theodore Ts'o4cbe8af1997-08-10 23:07:40 +00001231Sun Aug 10 10:05:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1232
1233 * block.c (ext2fs_block_iterate2): Use retval which is a errcode_t
1234 type.
1235
1236 * bitmaps.c (make_bitmap): Use size_t instead of int where
1237 appropriate.
1238
1239 * bb_inode.c (set_bad_block_proc): Add #pragma argsused for Turbo C.
1240
1241 * alloc.c (ext2fs_new_inode): Use ino_t instead of int for the
1242 group number.
1243
1244 * get_pathname.c: Use ino_t instead of int where appropriate.
1245
1246 * ext2fs.h: Make the magic structure element be errcode_t instead
1247 of int.
1248
1249 * alloc.c alloc_tables.c badblocks.c bb_compat.c bb_inode.c
1250 bitmaps.c block.c bmove.c brel_ma.c check_desc.c closefs.c
1251 cmp_bitmaps.c dblist.c dblist_dir.c dir_iterate.c
1252 dirblock.c dupfs.c expanddir.c freefs.c get_pathname.c
1253 icount.c initialize.c inline.c inode.c irel_ma.c link.c
1254 llseek.c lookup.c mkdir.c namei.c newdir.c read_bb.c
1255 read_bb_file.c rs_bitmap.c rw_bitmaps.c swapfs.c
1256 test_io.c tst_badblocks.c tst_iscan.c unix_io.c unlink.c
1257 valid_blk.c version.c: Add an #ifdef for HAVE_UNISTD_H
1258
Theodore Ts'o024996c1997-06-17 05:38:35 +00001259Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1260
Theodore Ts'oa1230b11997-07-02 02:41:59 +00001261 * unix_io.c (unix_read_blk): If ext2fs_llseek() fails, but errno
1262 is zero, then return EXT2_IO_LLSEEK_FAILED.
1263
1264 * ext2_err.et.in: Add a new error code, EXT2_IO_LLSEEK_FAILED.
1265
Theodore Ts'o024996c1997-06-17 05:38:35 +00001266 * Release of E2fsprogs 1.11
1267
Theodore Ts'o549860c1997-06-17 03:55:00 +00001268Mon Jun 16 23:53:06 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1269
1270 * dblist.c (ext2fs_dblist_count): Added new function which returns
1271 the number of directory blocks in dblist.
1272
Theodore Ts'o36f21431997-06-14 07:25:40 +00001273Sat Jun 14 01:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1274
1275 * unix_io.c (unix_flush): Make the io_channel flush function do a
1276 fsync to flush the kernel buffers to disk.
1277
Theodore Ts'o9941fb71997-06-11 22:27:41 +00001278Wed Jun 11 18:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1279
1280 * inode.c (ext2fs_inode_scan_goto_blockgroup): Fix bug; the
1281 current inode number wasn't being set by the
1282 goto_blockgroup function.
1283
Theodore Ts'o1e1da291997-06-09 14:51:29 +00001284Mon Jun 9 10:45:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1285
1286 * bmove.c (ext2fs_move_blocks): New function which takes a bitmap
1287 of blocks which need to be moved, and moves those blocks
1288 to another location in the filesystem.
1289
1290 * rs_bitmap.c (ext2fs_resize_generic_bitmap): When expanding a
1291 bitmap, make sure all of the new parts of the bitmap are
1292 zero.
1293
1294Sun Jun 8 16:24:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1295
1296 * bitmaps.c (ext2fs_copy_bitmap): Fix bug; the destination bitmap
1297 wasn't being returned to the caller.
1298
1299 * alloc_tables.c (ext2fs_allocate_group_table): Add new function
1300 ext2fs_allocate_group_table() which sets the group tables
1301 for a particular block group. The relevant code was
1302 factored out of ext2fs_allocate_tables().
1303
1304 * dblist.c (make_dblist): Adjust the initial size of the directory
Theodore Ts'o024996c1997-06-17 05:38:35 +00001305 block list to be a bit more realistic (ten plus twice the
Theodore Ts'o1e1da291997-06-09 14:51:29 +00001306 number of directories in the filesystem).
1307
Theodore Ts'of635d7f1997-05-09 02:50:16 +00001308Thu May 8 22:19:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1309
1310 * badblocks.c (ext2fs_badblocks_list_test): Fix bug where
1311 ext2fs_badblocks_list_test would test the list (and exceed
1312 array boundaries) if there were no bad blocks on the bad
1313 blocks list. (Showed up when user tried: mke2fs -c -b 4096).
1314
Theodore Ts'oa29f4d31997-04-29 21:26:48 +00001315Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1316
1317 * Release of E2fsprogs version 1.10
1318
1319Thu Apr 24 10:13:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1320
1321 * alloc_tables.c (ext2fs_allocate_tables): Correctly place the
1322 inode and block bitmaps based on the RAID 0 stride
1323 parameter (which is passed by mke2fs).
1324
1325 * ext2fs.h: Add "stride" parameter to ext2_filsys, to be used by
1326 mke2fs to communicate the stride length to
1327 ext2fs_allocate_tables()
1328
1329Wed Apr 23 21:50:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1330
1331 * initialize.c (ext2fs_initialize): Fix to compile under Linux 1.2
1332 systems. (We can't assume that the new filesystem types
1333 are supported.)
1334
1335Wed Apr 23 18:40:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1336
1337 * alloc_tables.c (ext2fs_allocate_tables): Make sure that we
1338 allocate the inode and block bitmaps inside block group at
1339 all times.
1340
1341Mon Apr 21 00:06:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1342
1343 * alloc.c (ext2fs_new_block): Fix bug where if goal==0 and the
1344 filesystem has no free blocks, ext2fs_new_block would loop
1345 forever.
1346
1347 * dupfs.c (ext2fs_dup_handle): Duplicate an ext2 filesystem handle
1348
1349 * freefs.c (ext2fs_free_inode_cache): Decrement refcount and only
1350 free if refcount goes to zero.
1351
1352 * inode.c (create_icache): Initialize refcount to 1.
1353
1354 * ext2fsP.h: Added refcount to ext2_inode_cache
1355
1356 * dblist.c (ext2fs_copy_dblist): New function to copy a directory
1357 block list.
1358
1359 * badblocks.c (ext2fs_badblocks_copy): New function to copy a
1360 badblocks structure.
1361
1362Sun Apr 20 23:19:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1363
1364 * bitmaps.c (ext2fs_copy_bitmap): New function to copy a bitmap.
1365
1366 * unix_io.c, test_io.c (unix_open, test_open): Initialize the
1367 refcount to 1.
1368 (unix_close, test_close): Decrement the refcount and only
1369 close the io_channel if the refcount goes to 0.
1370
1371 * io.h: Add refcount to the io_channel structure. Add new macro
1372 interface io_channel_bumpcount() to bump the refcount.
1373
1374Thu Apr 17 20:25:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1375
1376 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Use the inode
1377 cache in the filesystem handle, instead of the inode cache
1378 in a static variable.
1379
1380 * freefs.c: Added static function to free the inode cache (called by
1381 ext2fs_free).
1382
1383 * ext2fsP.h: Added definition of the ext2_inode_cache structures.
1384
1385 * ext2fs.h: Added pointer to the inode_cache structure.
1386
1387 * block.c (block_iterate_ind, block_iterate_dind,
1388 block_iterate_tind): If there are holes in the indirect,
1389 doubly indirect, or triply indirect blocks, increment the
1390 block count field automatically.
1391
1392Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1393
1394 * Release of E2fsprogs version 1.09
1395
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +00001396Mon Apr 14 20:38:56 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1397
1398 * version.c (ext2fs_parse_version_string): Check the passed in
1399 version string (instead of the hard-coded one).
1400
1401 * alloc_tables.c (ext2fs_allocate_tables): If the last block is
1402 greater filesystem size, clamp it to prevent allocating a
1403 block or inode bitmap beyond the filesystem.
1404
1405 * initialize.c (ext2fs_initialize): Fix bug where the metatdata
1406 overhead calculation was accidentally removed.
1407
1408Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1409
1410 * Release of E2fsprogs version 1.08
1411
Theodore Ts'o521e3681997-04-29 17:48:10 +00001412Thu Apr 10 13:15:15 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1413
1414 * dblist.c (ext2fs_set_dir_block): New function which sets the
1415 block of a dblist entry, given the directory inode and
1416 blockcnt.
1417
1418Sat Apr 5 12:42:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1419
1420 * alloc_tables.c (ext2fs_allocate_tables): Allocate the bitmap and
1421 inode bitmaps at staggered locations across the block
1422 groups, to avoid concentrating the bitmaps on a small
1423 number of disks when using striped RAID arrays.
1424
1425 * initialize.c (ext2fs_initialize): By default, choose the maximum
1426 possible number of blocks per group (based on the size of
1427 the bitmaps in the blocksize).
1428
1429Fri Apr 4 11:28:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1430
1431 * initialize.c (ext2fs_initialize): Add support for
1432 EXT2_COMPAT_SPARSE_SUPER feature.
1433
1434 * closefs.c (ext2fs_bg_has_super): New function to determine
1435 whether or a particular block group should have a
1436 superblock and block group descriptor. Used for the
1437 EXT2_COMPAT_SPARSE_SUPER feature is turned on.
1438 (ext2fs_flush): Check ext2fs_bg_has_super to see whether
1439 or not the superblock should be written out for the block
1440 group.
1441
1442 * ext2fs.h (EXT2_COMPAT_SPARSE_SUPER): Define compatibility flag
1443 for sparse duplicate superblocks.
1444
1445 * version.c (ext2fs_get_library_version): New function which
1446 returns the library version.
1447
1448 * version.c (ext2fs_parse_version_string): New function which
1449 parses a version string and returns a version number,
1450 so application programs can compare version numbers as
1451 integers.
1452
1453Wed Mar 26 00:43:52 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1454
1455 * icount.c (ext2fs_create_icount): Change function so that it also
1456 takes a new argument which contains a "hint" icount
1457 structure. This "hint" icount allows the create function
1458 to set up the sorted list in advance. This reduces
1459 significantly the amount of data moving needed to insert
1460 these inodes into the list later.
1461
1462 * icount.c (ext2fs_icount_validate): New function which validates
1463 that the icount structure's rep invariant.
1464
1465 * icount.c (get_icount_el): Completely revamped implementation
1466 to subsume put_icount_el(). Put_icount_el() used to
1467 use an O(N) implementation to insert in the middle
1468 of the icount list. It now uses a O(ln N) to search
1469 for where the icount should be inserted, and then uses
1470 a memcpy to move the list down (instead of a for loop).
1471
1472 * icount.c (ext2fs_icount_fetch, ext2fs_icount_store,
1473 ext2fs_icount_increment, ext2fs_icount_decrement): Check
1474 to see if the inode is within bounds; if it isn't, return
1475 EINVAL.
1476
1477 * bitops.h (ext2fs_test_generic_bitmap): Fix error message given
1478 when a bad inode number is passed to test_generic_bitmap
1479 to be EXT2FS_TEST_ERROR instead of the wrong
1480 EXT2FS_UNMARK_ERROR.
1481
Theodore Ts'o21c84b71997-04-29 16:15:03 +00001482Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
1483
1484 * Release of E2fsprogs version 1.07
1485
1486Sun Mar 2 16:46:18 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1487
1488 * Makefile.in (ELF_VERSION): Change version to be 2.2
1489
1490Tue Feb 11 14:54:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1491
1492 * alloc.c (ext2fs_get_free_blocks): Change routine to use
1493 ext2fs_fast_test_block_bitmap_range().
1494
1495 * bitops.h (ext2fs_fast_test_block_bitmap_range,
1496 ext2fs_test_block_bitmap_range: New inline functions which
1497 test to see whether a contiguous range of blocks is
1498 available.
1499
1500Thu Feb 6 10:00:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1501
1502 * badblocks.c (ext2fs_badblocks_list_create): Rename sybmols to use
1503 use ext2fs_badblocks_* instead of badblocks_*
1504
1505 * bb_compat.c: New file which translates between old badblocks_*()
1506 names to ext2fs_badblocks_*()
1507
1508 * unlink.c (ext2fs_unlink): New file, moved ext2fs_unlink() from
1509 link.c (since e2fsck doesn't use ext2fs_unlink()).
1510
1511 * rs_bitmap.c (ext2fs_resize_generic_bitmap): New file, contains
1512 bitmap resizing routine moved from bitmaps.c, since e2fsck
1513 doesn't need to use this function.
1514
1515 * lookup.c (ext2fs_lookup): Moved ext2fs_lookup to its own file,
1516 since e2fsck only needs ext2fs_lookup.
1517
1518Mon Feb 3 10:11:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1519
1520 * inode.c (ext2fs_open_inode_scan): Set fs->badblocks if it is not
1521 already set; this is needed so that programs like dump
1522 which use the inode scan functions will deal with
1523 filesystems that have bad blocks in the inode table.
1524
1525Sun Feb 2 00:17:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1526
1527 * ext2fs.h (struct_badblocks_list, struct_badblocks_iterate):
1528 Moved to ext2fsP.h, since it doesn't need to be part of
1529 the public interface.
1530
1531 * dir_iterate.c: Move ext2_dir_iterate out of namei.c.
1532
1533Sat Feb 1 10:14:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1534
1535 * dblist.c (ext2fs_get_num_dirs): New file, which implements a
1536 directory block list abstraction. (Code moved from
1537 e2fsck).
1538
1539 * ext2fs.h, inode.c: Moved definition of ext2_struct_inode_scan to
1540 to inode.c (since no one else should be peeking inside it!)
1541
1542 * valid_blk.c (ext2_inode_has_valid_blocks): New function.
1543
1544 * openfs.c (ext2fs_open): Check the feature set in the ext2
1545 superblock, and refuse to open filesystems if they contain
1546 incompatible features. (Can be overriden with the
1547 EXT2_FLAG_FORCE
1548
1549Sun Jan 12 11:31:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1550
1551 * block.c (ext2fs_block_iterate2): Added new function
1552 ext2fs_block_iterate2 which changes the function
1553 signature of the callback function to include the
1554 referencing block and offset.
1555
1556 * inode.c (ext2fs_inode_scan_goto_blockgroup): Added new function
1557 ext2fs_inode_scan_goto_blockgroup which allows an
1558 application to jump to a particular block group while
1559 doing an inode scan.
1560
1561Wed Jan 1 23:50:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1562
1563 * dirblock.c: Include string.h, since we use memcpy().
1564
1565Tue Dec 3 12:27:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1566
1567 * getsize.c (ext2fs_get_device_size): The ioctl BLKGETSIZE returns
1568 a long not an int; this doesn't matter on i386 machines,
1569 but it does on Alpha's.
1570
1571Fri Nov 29 20:57:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1572
1573 * inode.c (ext2fs_write_inode, ext2fs_read_inode): If the inode
1574 table pointer is NULL, then return an error indicating
1575 that the inode table is missing.
1576 (get_next_blockgroup, get_next_blocks,
1577 ext2fs_get_next_inode): Don't treat a missing inode table
1578 as permanent error. Return MISSING_INODE_TABLE, but as an
1579 advisory error code, much like BAD_BLOCK_IN_INODE_TABLE.
1580
1581 * rw_bitmaps.c (ext2fs_write_block_bitmap,
1582 ext2fs_write_inode_bitmap): If the inode or block bitmap
1583 block is zero, then don't write out the inode or block
1584 bitmap. The idea here is to avoid stomping on the
1585 superblock.
1586 (read_bitmaps): If the inode or block bitmap block is
1587 zero, then fill in that portion of the inode or block
1588 bitmap with all zeros.
1589
1590 * inode.c (ext2fs_get_next_inode): Fix bug in handling of bad
1591 blocks in inode table when the inode table size is
1592 non-standard (and can therefore span blocks).
1593
1594Tue Oct 29 20:13:14 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1595
1596 * alloc.c (ext2fs_new_block): Fix fencepost error in
1597 ext2fs_new_block; make sure we don't try to allocate the
1598 first block beyond the end of the filesystem.
1599
1600Mon Oct 14 11:00:48 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1601
1602 * inode.c (check_for_inode_bad_blocks): New function called by
1603 get_next_blocks() to avoid reading in bad blocks marked in
1604 fs->badblocks. Inodes located in bad blocks are returned
1605 by ext2fs_get_next_inode() returns the error code
1606 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE.
1607
1608 * alloc_tables.c (ext2fs_allocate_tables): New function which
1609 performs the part of mke2fs's job of allocating the
1610 filesystem tables.
1611
1612 * test_io.c (test_close): IO manager which is used for testing
1613 purposes.
1614
1615Sun Oct 13 04:31:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1616
1617 * inode.c (ext2fs_get_next_inode): Separate out the function of
1618 setting up for a new block group to get_next_blockgroup().
1619 Separate out the function of reading in blocks of the
1620 inode table to get_next_blocks().
1621
1622 * ext2fs.h: Add the badblocks list to the ext2_filsys entry
1623
1624 * badblocks.c (badblocks_list_add, badblocks_list_test): Add
1625 blocks to the badblock list in sorted order. This allows
1626 badblocks_list_test to be coded using a binary search for
1627 speed.
1628
1629Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1630
1631 * Release of E2fsprogs version 1.06
1632
Theodore Ts'o5c576471997-04-29 15:29:49 +00001633Mon Oct 7 00:44:17 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1634
1635 * ext2fs.h, block.c, closefs.c, dirblock.c, inode.c, native.c,
1636 open.c: Change EXT2_SWAP to EXT2_FLAG_SWAP for
1637 consistency's sake.
1638
1639 * closefs.c (ext2fs_flush): If the flag EXT2_MASTER_SB_ONLY is
1640 set, then only write out the master superblock.
1641
1642Sun Oct 6 21:45:26 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1643
1644 * block.c (ext2fs_block_iterate): Fixed bug which caused
1645 block_iterate to fail to handle HURD created filesystems;
1646 it tested the inode translator field before the inode was
1647 loaded.
1648
1649Tue Sep 17 14:08:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1650
1651 * initialize.c (ext2fs_initialize): Make sure the description for
1652 the inode bitmap is set correctly.
1653
1654 * bitmaps.c (ext2fs_allocate_generic_bitmap): Fix minor type typo.
1655
1656Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1657
1658 * Release of E2fsprogs version 1.05
1659
Theodore Ts'o1e3472c1997-04-29 14:53:37 +00001660Sat Sep 7 07:36:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1661
1662 * initialize.c: Override the kernel's idea of default
1663 checkinterval from 0 (never) to 180 days.
1664
1665Wed Aug 28 03:20:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1666
1667 * namei.c (ext2fs_namei_follow): New function which follows
1668 symbolic link (if any) at the target.
1669
1670Tue Aug 27 01:48:43 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1671
1672 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Add support
1673 for shortcut function fs->read_inode() and fs->write_inode().
1674 Added inode_cache to reduce CPU time spent in doing
1675 byte swapping.
1676
1677 * swapfs.c (ext2fs_swap_super): Swap the new fields in a V2
1678 superblock.
1679
1680 * namei.c (ext2fs_follow_link): New function.
1681 (ext2fs_namei): Extended to have support for chasing
1682 symbolic links. ext2fs_namei() still returns an inode
1683 which is a symbolic link. Symbolic links are only chased
1684 while resolving the containing directory. To chase
1685 symbolic links of the final result, use
1686 ext2fs_follow_link().
1687
1688Mon Aug 26 23:46:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1689
1690 * ext2_err.et.in: Added new error code EXT2_ET_SYMLINK_LOOP.
1691
1692 * bitops.h (ext2fs_set_bit, ext2fs_celar_bit): Use asm inlines
1693 provided by Pete A. Zaitcev (zaitcev@lab.sun.mcst.ru).
1694
1695Thu Aug 22 00:40:18 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1696
1697 * initialize.c (ext2fs_initialize): On systems where the byte
1698 order is not i386 compatible, set the swap_byte flag.
1699
1700 * inode.c (inocpy_with_swap): Check to see if inode contains a
1701 fast symlink before swapping the inode block fields. This
1702 required adding a new argument to inocpy_with_swap to
1703 determine whether the mode field is in host order or not.
1704
1705Wed Aug 21 00:45:42 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1706
1707 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit): On
1708 the sparc, if EXT2_STD_BITOPS set, use the standard
1709 i386-compatible bitmask operations, instead on the
1710 non-standard native bitmask operators.
1711
1712Fri Aug 9 11:11:35 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1713
1714 * block.c (ext2fs_block_iterate): Cause block iterator to return
1715 the HURD translator block (along with everything else).
1716 If the flag BLOCK_FLAG_DATA_ONLY is passed to the block
1717 iterator, then don't return any meta data blocks
1718 (including the HURD translator).
1719
1720Wed Jul 17 17:13:34 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1721
1722 * gen_uuid.c: New file, which generates DCE-compatible UUIDs.
1723
1724 * uuid.c: New file, containing UUID utility functions.
1725
1726Tue Jul 16 10:19:16 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1727
1728 * ext2fs.h: Add a definition of the "real" ext2 superblock.
1729
1730Fri May 24 14:54:55 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1731
1732 * ext2fs.h: Fix erroneous ino_t type used in block_bitmap type.
1733
1734Sun May 19 15:39:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1735
1736 * openfs.c (ext2fs_open): If the blocksize in the superblock is
1737 zero, return the error EXT2_ET_CORRUPT_SUPERBLOCK, since
1738 that's a basic value that must be correct for the rest of
1739 the library to work.
1740
1741 * ext2_err.et.in (EXT2_ET_CORRUPT_SUPERBLOCK): Added new error
1742 code.
1743
Theodore Ts'o62c06f71997-04-29 14:34:47 +00001744Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1745
1746 * Release of E2fsprogs version 1.04
1747
Theodore Ts'o7f88b041997-04-26 14:48:50 +00001748Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
1749
1750 * Release of E2fsprogs version 1.03
1751
1752Tue Mar 26 12:06:32 1996 <tytso@rsts-11.mit.edu>
1753
1754 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit):
1755 Change the m68k bit numbering for bitmasks to match with
1756 the bit numbering used by all other ext2 implementations.
1757
1758Thu Mar 7 03:37:00 1996 <tytso@rsts-11.mit.edu>
1759
1760 * inode.c (ext2fs_get_next_inode, ext2fs_close_inode_scan,
1761 ext2fs_open_inode_scan): Support dynamically-sized inodes.
1762
1763Wed Mar 6 12:26:29 1996 <tytso@rsts-11.mit.edu>
1764
1765 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Support
1766 dynamically-sized inodes.
1767
1768 * openfs.c (ext2fs_open): Allow dynamic revision filesystem to be
1769 loaded.
1770
1771Tue Mar 5 03:49:37 1996 <tytso@rsts-11.mit.edu>
1772
1773 * initialize.c (ext2fs_initialize): Catch an error condition where
1774 the passed in size is *really* too small.
1775
1776 * alloc.c (ext2fs_new_inode):
1777 * ext2fs.h (EXT2_FIRST_INODE): Add support for dynamic revision to
1778 get first inode.
1779
1780Wed Feb 21 15:56:17 1996 <tytso@rsts-11.mit.edu>
1781
1782 * getsize.c (ext2fs_get_device_size): Open the device read-only
1783 when trying to determine its size.
1784
Theodore Ts'o74becf31997-04-26 14:37:06 +00001785Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
1786
1787 * Release of E2fsprogs version 1.02
1788
1789Sat Dec 9 09:57:50 1995 <tytso@rsts-11.mit.edu>
1790
1791 * rw_bitops.c (ext2fs_write_block_bitmap):
1792 * bitops.c (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
1793 * bitops.h (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
1794 Rename {test,set,clear}_bit to ext2fs_{test,set,clear}_bit,
1795 to avoid conflicts with with kernel include files. Also
1796 rename ADDR and CONST_ADDR to EXT2FS_ADDR and
1797 EXT2FS_CONST_ADDR.
1798
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001799Thu Oct 26 12:09:16 1995 <tytso@rsts-11.mit.edu>
1800
1801 * ext2_err.et: Updated message in EXT2_ET_BASE to say version 0.5c
1802
1803 * swapfs.c (ext2fs_swap_super): Put an #ifdef check around
1804 s_def_resuid and s_def_resgid for backwards compatibility.
1805
1806Fri Oct 20 23:33:31 1995 <tytso@rsts-11.mit.edu>
1807
1808 * bitops.h: Added #ifdef's for Sparc.
1809
1810Wed Sep 6 22:14:46 1995 <tytso@rsts-11.mit.edu>
1811
1812 * getsize.c: #include <sys/ioctl.h> under Linux to pick up ioctl()
1813 declaration
1814
1815 * closefs.c: #include <string.h> to pick up memset() declaration
1816
1817Mon Sep 4 21:45:29 1995 Remy Card <card@bbj>
1818
1819 * Makefile.in: Added support for BSD shared libraries.
1820
1821 * initialize.c (ext2fs_initialize): Correctly set the s_creator_os
1822 flag.
1823
1824Mon Sep 4 09:55:30 1995 <tytso@rsts-11.mit.edu>
1825
1826 * unix_io.c (unix_open): Add a double check; if the passed in name
1827 is NULL, return EXT2_ET_BAD_DEVICE_NAME.
1828
1829 * ext2_err.et (EXT2_ET_BAD_DEVICE_NAME): Added new error code
1830
1831Wed Aug 16 15:44:10 1995 <tytso@rsts-11.mit.edu>
1832
1833 * inode.c (ext2fs_check_directory): Use LINUX_S_ISDIR instead of
1834 S_ISDIR.
1835
1836Tue Aug 15 13:08:36 1995 <tytso@rsts-11.mit.edu>
1837
1838 * getsize.c (ext2fs_get_device_size): Add support for reading the
1839 partition size from a BSD disk label.
1840
1841Thu Aug 10 09:33:26 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1842
1843 * getsize.c (ext2fs_get_device_size): New function that determins
1844 the size of a device. Used by mke2fs and e2fsck.
1845
1846Sat Aug 12 03:09:54 1995 Remy Card <card@bbj>
1847
1848 * Makefile.in (install): Install static libraries in $(ulibdir)
1849 (/usr/lib on Linux) instead of $(libdir) (/lib on Linux).
1850
1851Wed Aug 9 17:04:23 1995 Theodore Y. Ts'o <tytso@dcl>
1852
1853 * bitmaps.c (ext2fs_free_inode_bitmap, ext2fs_free_block_bitmap):
1854 Move these functions to freefs.c.
1855
1856 * closefs.c (ext2fs_flush): If swapping blocks, clear the group
1857 descriptors shadow memory to keep purify quiet. (This
1858 also has the nice benefit that the unused portion of the
1859 shadow descriptors are zeroed out.)
1860
1861 * dirblock.c (ext2fs_write_dir_block): We need to use
1862 dirent->rec_len *before* it's byteswapped to find the
1863 location of the next directory structure!
1864
1865 * alloc.c (ext2fs_new_inode): Fix bug which could potentially
1866 cause ext2fs_new_inode to loop infinitely if we're trying
1867 to allocate an inode in group #0 and there are no free
1868 inodes at all in the system.
1869
1870 * closefs.c: #include <errno.h> if it exists.
1871
1872Sun Aug 6 13:27:50 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1873
1874 * ext2fs.h (BLOCK_FLAG_HOLE): Added new definition for
1875 BLOCK_FLAG_APPEND. Added documentation for the block
1876 interator flags.
1877
1878Sat Aug 5 11:44:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1879
1880 * Makefile.in (DLL_INSTALL_DIR, ELF_INSTALL_DIR): Set the
1881 installation directories correctly.
1882
1883Tue Jul 18 09:27:38 1995 <tytso@rsx-11.mit.edu>
1884
1885 * namei.c (process_dir_block):
1886 * mkdir.c (ext2fs_mkdir):
1887 * expanddir.c (expand_dir_proc): Use ext2fs_{read,write}_dir_block
1888 to read/write the directory block.
1889
1890 * dirblock.c (ext2fs_read_dir_block), ext2fs_write_dir_block): New
1891 file containing functions for reading and writing
1892 directory blocks (byte swapping if necesssary)
1893
1894 * block.c (block_iterate_ind, block_iterate_dind,
1895 block_iterate_tind): Byte swap the block addresses if
1896 EXT2_SWAP_BYTES is set (and swap them back before writing
1897 them out.)
1898
1899 * inode.c (inocpy_with_swap): New function.
1900 (ext2fs_get_next_inode, ext2fs_read_inode, ext2fs_write_inode):
1901 Call inocpy_with_swap if EXT2_SWAP_BYTES if set.
1902
1903 * closefs.c (ext2fs_flush): If EXT2_SWAP_BYTES is set, then swap
1904 the superblock and group descriptors before writing it out.
1905
1906 * openfs.c (ext2fs_open): If the magic number is byte-swapped,
1907 then set the EXT2_SWAP_BYTES and byte-swap the superblock
1908 and group descriptors.
1909
1910 * swapfs.c (ext2fs_swap_super, ext2fs_swap_group_desc): New functions
1911 to desp ext2 filesystem structures.
1912
1913 * bitops.c (set_bit, clear_bit, test_bit): Use modifications
1914 supplied by Pete A. Zaitcev so that the C language
1915 versions of these functions are more portable. They will
1916 now work on both little and big endian systems, and the
1917 assumption that 32-bit integers are used is gone.
1918
1919 * bitops.h (ext2_swab16, ext2_swab32): Added new functions for
1920 doing byte swapping.
1921
1922 * ext2fs.h (EXT2_SWAP_BYTES): Add new flag which indicates that
1923 byte swapping should take place.
1924
1925Sun Jul 16 06:21:43 1995 <tytso@rsx-11.mit.edu>
1926
1927 * Makefile.in, cmp_bitmaps.c (ext2fs_compare_block_bitmap_end,
1928 ext2fs_compare_inode_bitmap_end): Added new file
1929 containing routines to compare bitmaps.
1930
1931 * ext2_err.et (EXT2_ET_NEQ_BLOCK_BITMAP, EXT2_ET_NEQ_INODE_BITMAP):
1932 Added new error codes.
1933
1934Sat Jul 15 04:23:37 1995 <tytso@rsx-11.mit.edu>
1935
1936 * inode.c (ext2fs_get_next_inode): Don't check scan->inode_buffer;
1937 if the magic number is correct, it will be allocated.
1938
1939Fri Jul 14 19:02:59 1995 <tytso@rsx-11.mit.edu>
1940
1941 * block.c (block_iterate_ind, block_iterate_dind,
1942 block_iterate_tind): Don't recompute block_nr each loop;
1943 just increment it! Factor check of BLOCK_FLAG_APPEND out
1944 of the loop. Factor mask of BLOCK_CHANGED into changed
1945 variable out of the loop. (block_iterate_ind, in
1946 particular, gets called a lot, so every little
1947 optimization helps.)
1948
1949Thu Jul 13 08:02:45 1995 <tytso@rsx-11.mit.edu>
1950
1951 * block.c (block_iterate_ind, block_iterate_dind,
1952 block_iterate_tind): Precompute limit of loop to speed up
1953 block_iterate_ind and company.
1954
1955 * bitops.h (ext2fs_fast_mark_block_bitmap,
1956 ext2fs_fast_unmark_block_bitmap, ext2fs_fast_test_block_bitmap,
1957 ext2fs_fast_mark_inode_bitmap, ext2fs_fast_unmark_inode_bitmap,
1958 ext2fs_fast_test_inode_bitmap): Add fast version of these
1959 functions, which don't do range checking.
1960
1961 * bitops.h (ext2fs_get_block_bitmap_start,
1962 ext2fs_get_inode_bitmap_start, ext2fs_get_block_bitmap_end,
1963 ext2fs_get_inode_bitmap_end): Add new accessor functions
1964 which return the start and end points of the bitmaps.
1965
1966Tue Jul 11 18:59:41 1995 <tytso@rsx-11.mit.edu>
1967
1968 * llseek.c (ext2_llseek): If the offset is small enough, use lseek
1969 instead of llseek. The errno if the offset is too large
1970 and lseek is not supported should be EINVAL, not -EINVAL.
1971
1972Thu Jun 15 23:43:02 1995 Remy Card <card@bbj>
1973
1974 * Makefile.in: Added support for ELF shared libraries.
1975 Fixed typos in the compilation rules.
1976 (distclean): Added Makefile.
1977
1978 * llseek.c (llseek): New function, if llseek() does not exist in the
1979 C library.
1980 (ext2_llseek): Changed to call llseek().
1981
1982Mon Jun 12 08:29:07 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1983
1984 * ext2fs.h: Use __u32 to define blk_t, instead of unsigned long.
1985
1986Sun Jun 11 15:02:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1987
1988 * mkdir.c (ext2fs_mkdir): Use LINUX_S_IFDIR instead of S_IFDIR.
1989
1990 * ext2fs.h (LINUX_S_IFDIR): Define a linux specific versions of
1991 the S_*, which are normally defined in <sys/stat.h>. This
1992 allows us to compile e2fsprogs on a non-Linux system,
1993 which may have a different value for S_IFDIR.
1994
1995Sat Jun 10 23:47:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1996
1997 * bitops.c (clear_bit, set_bit): Remove calls to cli() and sti();
1998 this is a user-mode application!
1999
2000Thu Jun 8 13:13:22 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
2001
2002 * llseek.c: Put the include of <linux/unistd.h> inside the #ifdef
2003 __linux__ so that non-linux systems won't see it.
2004
2005 * alloc.c: Include <errno.h> if possible.
2006 * badblocks.c: Ditto.
2007 * bb_inode.c: Ditto.
2008 * bitmaps.c: Ditto.
2009 * block.c: Ditto.
2010 * expanddir.c: Ditto.
2011 * get_pathname.c: Ditto.
2012 * initialize.c: Ditto.
2013 * inode.c: Ditto.
2014 * llseek.c: Ditto.
2015 * mkdir.c: Ditto.
2016 * namei.c: Ditto.
2017 * newdir.c: Ditto.
2018 * openfs.c: Ditto.
2019 * rw_bitmaps.c: Ditto.
2020 * unix_io.c: Ditto.
2021
2022 * Makefile.in: Rewritten to conform to GNU coding standards and
2023 support separate compilation directories.
2024
2025Thu May 11 04:13:12 1995 <tytso@rsx-11.mit.edu>
2026
2027 * initialize.c (ext2fs_initialize): Don't allow more than one
2028 bitmaps's worth of inodes in a group.
2029
Theodore Ts'of3db3561997-04-26 13:34:30 +00002030Sat Mar 11 14:07:11 1995 Theodore Y. Ts'o <tytso@localhost>
2031
2032 * llseek.c (ext2_llseek): Added error checking to the llseek()
2033 compat code to protect against overflow. This only
2034 applies to 1.0 and early 1.1 kernels, which don't support
2035 the llseek() system call.
2036
2037Thu Nov 24 16:29:00 1994 Theodore Y. Ts'o (tytso@rt-11)
2038
2039 * unix_io.c (unix_open): Initialize the read_error and write_error
2040 io_channel pointers to be null.
2041
2042 * bb_inode.c (clear_bad_block_proc): If an illegal block number is
2043 found, clear it but don't try to update the filesystem
2044 accounting information, since that's hopeless anyway.
2045
2046 * block.c (bloblock_iterate_ind, bloblock_iterate_dind,
2047 bloblock_iterate_tind): Check to see if the indirect blocks are
2048 valid before trying to read them.
2049
2050 * ext2_err.et (EXT2_ET_BAD_IND_BLOCK, EX2_ET_BAD_DIND_BLOCK,
2051 EXT2_ET_BAD_TIND_BLOCK): Add new error codes.
2052
2053 * bitops.h (ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
2054 ext2fs_test_block_bitmap, ext2fs_mark_inode_bitmap,
2055 ext2fs_unmark_inode_bitmap, ext2fs_test_inode_bitmap): If an
2056 illegal block or inode number is passed in, return instead
2057 of trying to test, set, or clear the bit.
2058
2059Mon Nov 7 21:32:33 1994 Remy Card <card@bbj>
2060
2061 * Makefile: Added a dummy install target in case shared libraries
2062 are not built.
2063
2064Mon Oct 24 14:11:44 1994 (tytso@rsx-11)
2065
2066 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix calculation of how
2067 the real last block of the bitmap should be calculated.
2068
2069Wed Sep 7 10:05:36 1994 (tytso@rsx-11)
2070
2071 * bitmaps.c (ext2fs_fudge_inode_bitmap_end,
2072 ext2fs_fudge_block_bitmap_end, ext2fs_clear_inode_bitmap,
2073 ext2fs_clear_block_bitmap, ext2fs_free_inode_bitmap,
2074 ext2fs_free_block_bitmap): Add magic number checking for
2075 the inode and block bitmaps.
2076
2077 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix to set the correct
2078 magic number for a block bitmap instead of an inode bitmap.
2079
2080 * inode.c (ext2fs_close_inode_scan, ext2fs_get_next_inode): Add
2081 magic number checking for the inode_scan structure.
2082
2083 * badblocks.c (badblocks_list_free, badblocks_list_add,
2084 badblocks_list_test, badblocks_list_iterate_begin,
2085 badblocks_list_iterate, badblocks_list_iterate_end): Add
2086 magic number checking for the badblocks_list and
2087 badblocks_iterate structures.
2088
2089 * ext2_err.et (EXT2_ET_MAGIC_UNIX_IO_CHANNEL):
2090 * unix_io.c (unix_open, unix_close, unix_set_blksize, unix_read_blk,
2091 unix_write_blk, unix_flush): Add magic number checking
2092 both for io_channel structure and unix_private_data
2093 structure.
2094
2095 * openfs.c (ext2fs_open): Add check for io_manager structure's
2096 magic number.
2097
2098 * rw_bitmaps.c (ext2fs_write_inode_bitmap, ext2fs_write_block_bitmap,
2099 ext2fs_read_inode_bitmap, ext2fs_read_block_bitmap,
2100 ext2fs_read_bitmaps, ext2fs_write_bitmaps):
2101 * read_bb.c (ext2fs_read_bb_inode):
2102 * read_bb_file.c (ext2fs_read_bb_FILE):
2103 * newdir.c (ext2fs_new_dir_block):
2104 * namei.c (ext2fs_dir_iterate, ext2fs_lookup, ext2fs_namei):
2105 * link.c (ext2fs_link, ext2fs_unlink):
2106 * inode.c (ext2fs_open_inode_scan, ext2fs_read_inode,
2107 ext2fs_write_inode, ext2fs_get_blocks,
2108 ext2fs_check_directory):
2109 * get_pathname.c (ext2fs_get_pathname):
2110 * expanddir.c (ext2fs_expand_dir):
2111 * block.c (ext2fs_block_iterate):
2112 * bitmaps.c (ext2fs_allocate_inode_bitmap,
2113 ext2fs_allocate_block_bitmap):
2114 * bb_inode.c (ext2fs_update_bb_inode):
2115 * alloc.c (ext2fs_new_inode,ext2fs_new_block,ext2fs_get_free_blocks):
2116 * check_desc.c (ext2fs_check_desc):
2117 * closefs.c (ext2fs_close, ext2fs_flush):
2118 * freefs.c (ext2fs_free): Add check for ext2_filsys magic number.
2119
2120 * Makefile:
2121 * ext2fs.h:
2122 * openfs.c:
2123 * check_desc.c (ext2fs_check_desc): Move ext2fs_check_desc from
2124 openfs.c into its own file.
2125
2126 * ext2fs.h (EXT2_CHECK_MAGIC): Added macro for checking for
2127 structure magic numbers.
2128
2129 * closefs.c (ext2fs_flush): Folded in Remy Card's changes to clear
2130 the EXT2_VALID_FS flag in the backup superblock blocks, so that if
2131 someone uses the -b option to specify the use of the backup
2132 superblock --- this usually means that the main superblock is
2133 toast. :-)
2134
2135 * ext2fs.h:
2136 * ext2_err.et (EXT2_ET_REV_TOO_HIGH):
2137 * openfs.c (ext2fs_open): Folded in Remy Card's changes to add a
2138 revision level to the superblock.
2139
2140Sun Aug 21 00:50:08 1994 Theodore Y. Ts'o (tytso@rt-11)
2141
2142 * ext2fs.h:
2143 * bitmaps.c:
2144 * bitops.c
2145 * bitops.h:
2146 * openfs.c:
2147 * initialize.c: Completely revamped the inode and block bitmap
2148 structures, so that they can be better chance of being extensible
2149 in a shared library. They are now their own type, instead of
2150 being a char *. Also, the function signatures of
2151 ext2fs_test_block_bitmap, ext2fs_mark_block_bitmap,
2152 ext2fs_unmark_block_bitmap, ext2fs_test_inode_bitmap,
2153 ext2fs_mark_inode_bitmap, and ext2fs_unmark_inode_bitmap were
2154 changed to eliminate the ext2_filsys argument, since it is no
2155 longer necessary.
2156
2157Wed Aug 17 21:46:44 1994 Remy Card (card@bbj)
2158
2159 * unix_io.c (unix_read_blk and unix_write_blk): use the llseek
2160 system call if available.
2161
2162 * llseek.c: new file. This is the stub calling the llseek system
2163 call which allows supports for 2GB+ file systems.
2164
2165 * initialize.c (ext2fs_initialize): Ext2fs_initialize now stores
2166 the creator operating system.
2167
2168Wed Aug 17 10:03:24 1994 Theodore Y. Ts'o (tytso@rt-11)
2169
2170 * initialize.c (ext2fs_initialize): Ext2fs_initialize now sets up
2171 the group descriptor statistics in addition to everything else.
2172 This relieves mke2fs of the responsibility of doing it.
2173
2174 * bitops.c, bitops.h: Add assembly inline functions for the 68000.
2175 Added a new #define, _EXT2_HAVE_ASM_BITOPS_ to control whether or
2176 not the generic C function equivalents should be included or not.
2177
2178 * openfs.c (ext2fs_open): If a superblock is specified, then use
2179 the backup group descriptors that go along with this superblock,
2180 instead of using the primary group descriptors. This allows
2181 e2fsck to recover filesystems where the primary group descriptors
2182 have been trashed.
2183
2184