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