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