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