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