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