blob: bd58b998502683c9bd451b226c235c9b747dfb14 [file] [log] [blame]
Theodore Ts'o52783e02002-03-11 15:04:45 -050012002-03-11 Theodore Tso <tytso@mit.edu>
2
3 * ext2_err.et.in (EXT2_ET_DIRHASH_UNSUPP): New error code
4
5 * dirhash.c (ext2fs_dirhash): New function which calculates the
6 hash for a filename in an indexed directory.
7
Theodore Ts'oa8e77242002-03-08 03:12:14 -050082002-03-08 Theodore Tso <tytso@mit.edu>
9
10 * Release of E2fsprogs 1.27
11
Theodore Ts'o304905d2002-03-07 20:55:01 -0500122002-03-07 Theodore Tso <tytso@mit.edu>
13
Theodore Ts'o546a1ff2002-03-07 23:52:56 -050014 * ext2fs.h (ext2fs_inode_io_intern): Add missing function prototype.
15
16 * bmap.c, fileio.c, inode_io.c, tst_badblocks.c,
17 tst_byteswap.c: Fix gcc -Wall complaints
18
Theodore Ts'o304905d2002-03-07 20:55:01 -050019 * Makefile.in (check): Use LD_LIBRARY_PATH to run test programs.
20 (From Philipp Thomas <pthomas@suse.de>)
21
Theodore Ts'o57173d02002-02-26 14:59:39 -0500222002-02-25 Theodore Tso <tytso@mit.edu>
Theodore Ts'odf614db2002-02-25 04:28:45 -050023
24 * ext2_fs.h: Add structure definitions for the directory indexing
25 extension.
26
Theodore Ts'o57173d02002-02-26 14:59:39 -0500272002-02-23 Theodore Tso <tytso@mit.edu>
Theodore Ts'o64e1b272002-02-23 18:50:32 -050028
29 * unix_io.c (unix_open): Fix 2.4 resource limit workaround so that
30 it doesn't break things on mis32, sparc32, and alpha
31 platforms.
32
Theodore Ts'o57173d02002-02-26 14:59:39 -0500332002-02-21 Theodore Tso <tytso@mit.edu>
Theodore Ts'of3e3d312002-02-21 20:48:25 -050034
35 * ismounted.c (is_swap_device): Fix file descriptor/memory leak;
36 we were missing an fclose().
37
Theodore Ts'o57173d02002-02-26 14:59:39 -0500382002-02-20 Theodore Tso <tytso@mit.edu>
Theodore Ts'of12e2852002-02-20 01:06:25 -050039
40 * Makefile.in, inode_io.c, ext2fs.h, ext2_err.et.in: Add new io
41 abstraction interface which exports an ext2 inode.
42
Theodore Ts'of3e3d312002-02-21 20:48:25 -050043 * ext2fs.h, fileio.c (ext2fs_file_flush): Export ext2fs_file_flush
44 as a public interface. Change void * to const void * in
45 ext2fs_file_write's interface.
Theodore Ts'of12e2852002-02-20 01:06:25 -050046
47 * test_io.c (test_close), unix_io.c (unix_close): Remove unneeded
48 conditional; save a few bytes.
49
Theodore Ts'o57173d02002-02-26 14:59:39 -0500502002-02-12 Theodore Tso <tytso@mit.edu>
Theodore Ts'o7d4343d2002-02-12 02:34:44 -050051
52 * Makefile.in (tst_badblocks): Add some extra .o files when
53 linking the debugging program tst_badblocks which are
54 needed if we aren't compiling with inline functions enable.
55
56 * kernel-list.h (__inline__): On non-gcc and non-Watcom compilers,
57 define away __inline__ since it may not be supported.
58
59 * kernel-jbd.h (jbd_debug): For systems that don't do STDC, use a
60 stripped down jbd_debug that doesn't use variadic
61 arguments. This will cause warnings under AIX, but things
62 should still build.
63
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -0500642002-02-03 Theodore Tso <tytso@thunk.org>
65
66 * Release of E2fsprogs 1.26
67
Theodore Ts'o57173d02002-02-26 14:59:39 -0500682002-02-03 Theodore Tso <tytso@mit.edu>
Theodore Ts'o7f961d42002-02-03 01:28:52 -050069
70 * mkdir.c (ext2fs_mkdir): Change to use ext2fs_inode_alloc_stats2
71 so that the number of directories in use is adjusted
72 appropriately.
73
74 * alloc_stats.c (ext2fs_inode_alloc_stats2): Add new function
75 which optionally will modify the number of directories
76 count.
77
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -0500782002-01-03 Theodore Tso <tytso@mit.edu>
Theodore Ts'o8bd0c952002-01-03 03:29:19 -050079
80 * dir_iterate.c (ext2fs_dir_iterate2, ext2fs_process_dir_block):
81 Add support for a new flag, DIRENT_FLAG_INCLUDE_REMOVED,
82 which will return deleted directory entries.
83 ext2fs_dir_iterate2 takes a new callback function which
84 is identical with the one used by
85 ext2fs_dblist_dir_iterate(). If the directory entry is
86 deleted, the callback function will be called with the
87 entry paraemter set to DIRENT_DELETED_FILE.
88
89 * Makefile.in, alloc_stats.c (ext2fs_inode_alloc_stats,
90 ext2fs_block_alloc_stats): New functions which update
91 block/inode allocation statistics in the bitmaps, block
92 group descriptors, and superblock.
93
94 * mkjournal.c (mkjournal_proc), mkdir.c (ext2fs_mkdir),
95 expanddir.c (expand_dir_proc), bb_inode.c
96 (clear_bad_block_proc, set_bad_block_proc,
97 ext2fs_update_bb_inode), alloc.c (ext2fs_alloc_block):
98 Update to use new block/inode allocation statistics.
99
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05001002001-12-24 Theodore Tso <tytso@mit.edu>
Theodore Ts'oa8fd6e32001-12-24 01:40:35 -0500101
Theodore Ts'o07cefe72001-12-24 15:20:22 -0500102 * ismounted.c (is_swap_device): New function used by
103 ext2fs_check_if_mounted and ext2fs_check_mount_point which
104 determines whether or not the specified device is a swap
105 device by using /proc/swaps. More bulletproofing for
106 idiotic/careless system administrators!
107
Theodore Ts'o6a525062001-12-24 09:40:00 -0500108 * ext2fs.h, openfs.c (ext2fs_open), initialize.c
109 (ext2fs_initialize), mkdir.c (ext2fs_mkdir): Add a new
110 field to struct_ext2_filsys, umask. This field is
111 initialize to 022, and affects ext2fs_mkdir in the obvious
112 way. (In the future umask should also affect new file
113 creation routines, but the fileio functions don't
114 currently support this yes.)
115
Theodore Ts'oa8fd6e32001-12-24 01:40:35 -0500116 * ismounted.c (check_mntent_file): Stat all of the entries in
117 /etc/mtab and/or /proc/mounts in order to catch dim-witted
118 system administrators who might have created alias
119 devices.
120
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05001212001-12-23 Theodore Tso <tytso@mit.edu>
Theodore Ts'o19007e52001-12-23 19:33:51 -0500122
123 * Makefile.in, jfs_user.h: Move linux/jbd.h to
124 ext2fs/kernel-jbd.h, to avoid using the system header
125 file version of hbd.h when using diet glibc (since it
126 forcibly adds /usr/include to the beginning of the
127 include search path.)
128
129 * kernel-jbd.h, kernel-list.h, jfs_compat.h: Move files from
130 include/linux directory.
131
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05001322001-12-16 Theodore Tso <tytso@mit.edu>
Theodore Ts'o8cf93332001-12-16 02:23:36 -0500133
Theodore Ts'o4ea7bd02001-12-16 23:23:37 -0500134 * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap),
135 ext_attr.c (ext2fs_read_ext_attr, ext2fs_write_ext_attr),
136 fileio.c (ext2fs_file_write): Fix gcc -Wall nits
137
Theodore Ts'o8cf93332001-12-16 02:23:36 -0500138 * Makefile.in, jfs_user.h: linux/jfs.h has been renamed to
139 linux/jbd.h
140
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05001412001-12-03 Theodore Tso <tytso@mit.edu>
Theodore Ts'obd278802001-12-03 05:47:32 +0100142
143 * unix_io.c (unix_open): Make sure the ulimit workaround works
144 regardless of the version of glibc which is used to
145 compild e2fsprogs.
146
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05001472001-11-26 Theodore Tso <tytso@mit.edu>
Theodore Ts'o8880e752001-11-26 21:05:36 -0500148
149 * unix_io.c (unix_open): Work around a bug in 2.4.10+ kernels by
150 trying to unset the filesize limit if at all possible,
151 if a block device is getting opened. (The filesize limit
152 shouldn't be applied against writes to a block device, but
153 starting in 2.4.10, the kernel is doing this.)
154
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05001552001-11-05 Theodore Tso <tytso@mit.edu>
Theodore Ts'ob3f5b4c2001-11-05 19:22:02 -0500156
Theodore Ts'o5bc28df2001-11-09 17:34:54 -0500157 * mkjournal.c (ext2fs_add_journal_inode): When creating a .journal
158 file on adding a journal to an already-mounted filesystem,
159 try to clear the ext2 file attributes on an already
160 existing .journal file so that we don't fail if on a
161 partially added journal to the filesystem.
162
Theodore Ts'ob3f5b4c2001-11-05 19:22:02 -0500163 * ext2_fs.h: Define a new ext2 file attribute, EXT2_NOTAIL_FL,
164 which signals that a particular inode should not have the
165 last bits of data (the "tail") be merged with another
166 file. This is necessary to keep LILO happy.
167
Theodore Ts'ofbf91112001-09-20 10:47:47 -04001682001-09-20 Theodore Tso <tytso@thunk.org>
169
170 * Release of E2fsprogs 1.25
171
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05001722001-09-16 Theodore Tso <tytso@mit.edu>
Theodore Ts'o7746cad2001-09-17 00:02:21 -0400173
174 * ext2_ext_attr.h: Remove unneeded #include of <linux/config.h>
175 which was breaking the build on the Hurd. (Addresses
176 Debian bug #112414).
177
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05001782001-09-13 Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o2038b632001-09-14 07:44:25 -0400179
180 * ismounted.c (check_mntent_file): We now validate the entry in
181 /etc/mtab to make sure the filesystem is really mounted,
182 since some broken distributions (read: Slackware) have
183 buggy boot scripts that don't initialize /etc/mtab before
184 checking non-root filesystems. (Slackware also doesn't
185 check the root filesystem separately, and reboot if the
186 root filesystem had changes applied to it, which is
187 dangerous and broken.)
188
Theodore Ts'ofb707752001-09-04 15:00:37 -04001892001-09-02 Theodore Tso <tytso@thunk.org>
190
191 * Release of E2fsprogs 1.24a
192
Theodore Ts'o109624a2001-08-31 00:59:55 -04001932001-08-30 Theodore Tso <tytso@thunk.org>
194
195 * Release of E2fsprogs 1.24
196
Theodore Ts'oeddeb562001-08-30 17:24:02 -04001972001-08-30 Theodore Tso <tytso@valinux.com>
198
199 * getsize.c (ext2fs_get_device_size): Back out BLKGETSIZE64
200 changes, since the ioctl number has been reused by another
201 unofficial patch.
202
Theodore Ts'o943ed872001-08-27 12:29:22 -04002032001-08-15 Theodore Tso <tytso@valinux.com>
204
205 * Release of E2fsprogs 1.23
206
Theodore Ts'o89a6ebd2001-08-05 20:31:09 -04002072001-08-05 Theodore Tso <tytso@valinux.com>
208
209 * alloc.c (ext2fs_new_inode, ext2fs_new_block): Use the fast
210 version of the bitmap test routines to speed up these
211 routines. (At some point I may want to make these
212 routines use the find_first_bit functions, but that will
213 add a lot of complexity since it means that these
214 functions will have to break the bitmap abstraction
215 boundary. It's not clear it's worth it.)
216
217 * mkjournal.c (mkjournal_proc): Remember the last block allocated
218 to speed up ext2fs_new_block().
219
Theodore Ts'o37517212001-07-29 12:01:09 -04002202001-07-29 Theodore Tso <tytso@valinux.com>
221
222 * finddev.c (scan_dir): Fix memory leak; we weren't calling
223 closedir() when exiting the function in all cases.
224
Theodore Ts'of35e6442001-07-27 15:35:21 -04002252001-07-27 Theodore Tso <tytso@valinux.com>
226
Theodore Ts'o4e40f6c2001-07-27 23:33:40 -0400227 * mkjournal.c (ext2fs_create_journal_superblock): Set the first
228 block usable in the journal for external journals to be 2
229 or 3, depending on the blocksize, so that the existing
230 kernel code does the right thing.
231
Theodore Ts'o343fa652001-07-27 22:15:06 -0400232 * getsize.c (ext2fs_get_device_size): Add support for the
233 BLKGETSIZE64 ioctl. (Ioctl defined by unofficial patches
234 from Ben LaHaise, but it's likely this interface won't
235 change.)
236
Theodore Ts'of35e6442001-07-27 15:35:21 -0400237 * mkjournal.c (ext2fs_add_journal_device): Use the correct block
238 when writing the journal superblock, too. (Oops! Needed
239 to make 1k filesystems with external journal to work.)
240
Theodore Ts'o36131b32001-07-26 23:44:39 -04002412001-07-26 Theodore Tso <tytso@valinux.com>
242
243 * mkjournal.c (ext2fs_add_journal_device): Use the correct block
244 to find the journal superblock if the blocksize is 1024.
245
Theodore Ts'oadee8d72001-07-23 00:17:49 -04002462001-07-21 Theodore Tso <tytso@valinux.com>
247
248 * ext2_err.et.in (EXT2_ET_LOAD_EXT_JOURNAL): Add new error code
249
Theodore Ts'o6ae296e2001-07-20 12:33:37 -04002502001-07-20 Theodore Tso <tytso@valinux.com>
251
Theodore Ts'o241f7d22001-07-20 14:17:19 -0400252 * ext_attr.c (ext2fs_write_ext_attr): When writing the extended
253 attribute block, set the filesystem changed bit.
254
Theodore Ts'o6ae296e2001-07-20 12:33:37 -0400255 * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set):
256 Comment out these functions since we're not using them.
257
Theodore Ts'o3c6b8972001-07-10 14:27:58 -04002582001-07-10 Theodore Tso <tytso@valinux.com>
259
260 * closefs.c (write_primary_superblock): After writing changes to
261 the primary superblock, update the original superblock
262 copy so we don't have to re-write those changes in the
263 future.
264 (ext2fs_flush): Clear the superblock dirty flag after
265 we've flushed out changes to disk.
266
Theodore Ts'of41e7e62001-07-07 22:14:23 -04002672001-07-07 Theodore Tso <tytso@valinux.com>
268
269 * bitops.h (ext2fs_find_first_bit_set): Use %esi instead of %ebx
270 to avoid register conflicts when compiling in PIC mode.
271
Theodore Ts'oac493822001-07-04 14:04:58 -04002722001-07-04 Theodore Tso <tytso@valinux.com>
273
274 * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set):
275 Add new functions (C and in i386 assembler) which quickly
276 find bits set in a bitmask.
277
Theodore Ts'o67960132001-06-23 00:16:37 -04002782001-06-23 Theodore Tso <tytso@valinux.com>
279
Theodore Ts'o342d8472001-07-02 11:54:09 -0400280 * Makefile.in, ext_attr.c, ext2_attr.c, ext2fs.h: Add new files
281 ext2_ext_attr.h and ext_attr.c for extended attributes
282 support.
283
Theodore Ts'o67960132001-06-23 00:16:37 -0400284 * Release of E2fsprogs 1.22
285
Theodore Ts'o89a1fa82001-06-22 20:40:51 -04002862001-06-22 Theodore Tso <tytso@valinux.com>
287
Theodore Ts'ob23520d2001-06-22 21:52:14 -0400288 * mkjournal.c (ext2fs_add_journal_inode): Move close of file
289 descriptor so that adding a journal to a mounted
290 filesystem doesn't die. (Fixes a bug accidentally
291 introduced in e2fsprogs 1.21.)
292
Theodore Ts'o78332622001-06-22 21:20:47 -0400293 * mkjournal.c (ext2fs_add_journal_inode): Only use fchflags if
294 HAVE_CHFLAGS and UF_NODUMP are defined, since the Hurd has
295 fchflags without defining UF_NODUMP. (Addresses Debian
296 bug #101361)
297
Theodore Ts'od90f3492001-06-22 21:01:17 -0400298 * flushb.c: Use platform independent method of defining the
299 BLKFLSBUF and FDFLUSH ioctl's. Also include sys/mount.h
300 since on newer glibc's BLKFLSBUF is defined there.
301
Theodore Ts'o16645f82001-06-22 20:54:11 -0400302 * bitops.h: The C language versions of ext2fs_swab16/32 need to be
303 included if EXT2FS_ENABLE_SWAPFS is defined, since we need
304 to support byte swapping even if we don't support the
305 conversion functions. (Fixes Debian bug #101686).
306
Theodore Ts'o89a1fa82001-06-22 20:40:51 -0400307 * dirblock.c (ext2fs_read_dir_block): Remove use of dir_entry_2
308 since the byte-swapping code all assumes the
309 ext2_dir_entry structure. (It's a question of whether or
310 not name_len should be byte-swapped or not, and whether
311 it's a 16 bit or 8 bit field.)
312
Theodore Ts'o997b8202001-06-15 18:33:43 +00003132001-06-15 Theodore Tso <tytso@valinux.com>
314
Theodore Ts'of4f75ba2001-06-16 01:14:28 +0000315 * Release of E2fsprogs 1.21
316
3172001-06-15 Theodore Tso <tytso@valinux.com>
318
Theodore Ts'od1e66b72001-06-15 22:44:32 +0000319 * Makefile.in: Fix bug in installation of ext2_types.h. It is a
320 file which is generated and is therefore found in the
321 build directory, not source directory.
322
Theodore Ts'o997b8202001-06-15 18:33:43 +0000323 * ismounted.c (check_mntent_file): Use a test file in / to check
324 to see if the root filesystem is mounted read-only. This
325 protects against the case where /etc might not be on /, as
326 well as the case where /etc/mtab doesn't exist. (Both are
327 should-never happen scenarios, but you never know...)
328
Theodore Ts'o6bd13482001-06-14 07:00:55 +00003292001-06-14 Theodore Tso <tytso@valinux.com>
330
331 * ismounted.c (ext2fs_check_if_mounted): Fix grammer in comment.
332 Remove unneeded #pragma argsused, since the arguments are
333 always used.
334
Theodore Ts'o30ae14c2001-06-13 22:38:56 +00003352001-06-13 Theodore Tso <tytso@valinux.com>
336
Theodore Ts'o65794882001-06-14 00:24:42 +0000337 * ext2_types.h.in: If linux/types.h has been defined, then don't
338 try to redefine the typedefs.
339
Theodore Ts'o364a3732001-06-13 23:46:39 +0000340 * Makefile.in (HFILES): Add ext2_types.h to the list of files
341 which should be installed.
342
Theodore Ts'o66a46142001-06-13 23:26:19 +0000343 * ismounted.c (check_mntent_file): Work around GNU hurd brain
Theodore Ts'o83d5abf2001-06-13 23:31:27 +0000344 damage. Addresses Debian bug #100304.
Theodore Ts'o66a46142001-06-13 23:26:19 +0000345
Theodore Ts'o30ae14c2001-06-13 22:38:56 +0000346 * Makefile.in: Limit some .o files from being included into the
347 library if --disable-debugfs, --disable-swapfs,
348 --disable-imager, or --disable-resizer are used.
349
Theodore Ts'ocbbf0312001-06-13 00:12:04 +00003502001-06-12 Theodore Tso <tytso@valinux.com>
351
352 * inode.c, tst_iscan.c: Stop using the compatibility badblocks
353 function, and use the ext2fs_badblocks_* functions
354 instead.
355
Theodore Ts'o5df55d72001-06-11 07:00:04 +00003562001-06-11 Theodore Tso <tytso@valinux.com>
357
Theodore Ts'o3034f622001-06-11 15:17:45 +0000358 * Makefile.in, gen_bitmap.c, bitops.h: Move inline functions
359 ext2fs_mark_generic_bitmap and
360 ext2fs_unmark_generic_bitmap to gen_bitmap.c as normal
361 functions. (This saves space and doesn't significantly
362 change the speed of e2fsck on a P-III.)
363
Theodore Ts'o5df55d72001-06-11 07:00:04 +0000364 * ext2fs.h, bitops.h, block.c, bmap.c, closefs.c, dirblock.c,
365 inode.c, native.c, openfs.c, rw_bitmaps.c, swapfs.c: Only
366 include the byte-swapping logic if ENABLE_SWAPFS is turned
367 on or if we're on a big-endian machine.
368
369 * initialize.c (ext2fs_initialize):Use WORDS_BIGENDIAN directly to
370 set EXT2_FLAG_SWAP_BYTES, instead of using
371 ext2fs_native_flag.
372
373 * native.c (ext2fs_native_flag): Use WORDS_BIGENDIAN provided by
374 autoconf to determine whether or not return
375 EXT2_FLAG_SWAP_BYTES.
376
Theodore Ts'o349a4842001-06-11 00:49:29 +00003772001-06-10 Theodore Tso <tytso@valinux.com>
378
379 * Makefile.in: Remove the dependence on the libe2p library.
380
381 * mkjournal.c (ext2fs_add_journal_inode): Replace use of fsetflags
382 with direct usage of the ioctl/fchflags so that we don't
383 have to depend on the libe2p library.
384
Theodore Ts'o30e50b72001-06-08 09:43:40 +00003852001-06-08 Theodore Tso <tytso@valinux.com>
386
387 * ext2_types.h.in: Use unsigned ints in favor of unsigned longs
388 when trying to find a 32-bit wide type.
389
390 * icount.c (insert_icount_el): Fix the code used to estimate the
391 size of the new icount array to be more intelligent, to
392 avoid reallocating the array too many times. Thanks to
393 Enrique Perez-Terron for pointing this out.
394
Theodore Ts'of36d14f2001-06-02 04:13:16 +00003952001-06-02 Theodore Tso <tytso@valinux.com>
396
397 * valid_blk.c (ext2fs_inode_has_valid_blocks): Only check i_blocks
398 for a symlink to determine whether it is a fast symlink.
399
Theodore Ts'o797f5ef2001-06-01 23:49:46 +00004002001-06-01 Theodore Tso <tytso@valinux.com>
401
402 * Makefile.in, dosio.c, ext2_fs.h, ext2_types.h.in, ext2fs.h:
Theodore Ts'o36a23e12001-06-02 00:54:10 +0000403 Move include/asm/types.h.in to lib/ext2fs/ext2_types.h.in.
Theodore Ts'o797f5ef2001-06-01 23:49:46 +0000404
Theodore Ts'od5f858d2001-05-25 17:14:23 +00004052001-05-25 Theodore Tso <tytso@valinux.com>
406
Theodore Ts'obb185862001-05-25 17:35:00 +0000407 * Release of E2fsprogs 1.20
408
4092001-05-25 Theodore Tso <tytso@valinux.com>
410
Theodore Ts'od5f858d2001-05-25 17:14:23 +0000411 * ismounted.c: More cleanups for ismounted.c, some from Andreas,
412 some to clean up Andreas's patches. Use strncpy instead
413 of strcpy to save the root's mountpoint. Clean up #ifdef
414 structure. Remove uneeded variable in testing/debug driver.
415
Theodore Ts'occ860172001-05-25 16:32:53 +00004162001-05-24 Andreas Dilger <adilger@turbolinux.com>
417
418 * ismounted.c: Add check for root device which doesn't depend on
419 /etc/fstab or /proc/mounts to be correct. Don't call
420 endmntent() before we are done with mnt struct.
421
Theodore Ts'o4ed8ebe2001-05-23 18:30:10 +00004222001-05-23 Theodore Tso <tytso@valinux.com>
423
424 * ext2_err.et.in (EXT2_ET_JOURNAL_UNSUPP_VERSION): Added new error
425 code.
426
Theodore Ts'ob10820c2001-05-21 05:23:31 +00004272001-05-21 Theodore Tso <tytso@valinux.com>
428
429 * ext2_fs.h: Change assignment of EXT2_FEATURE_COMPAT_DIR_INDEX to
430 make room for pre-existing usage of
431 EXT2_FEATURE_COMPAT_EXT_ATTR. Add flag EXT2_INDEX_FL with
432 the same codepoint as EXT2_BTREE_FL.
433
Theodore Ts'o7c2d2562001-05-21 02:54:21 +00004342001-05-20 Theodore Tso <tytso@valinux.com>
435
436 * ext2fs.h: #include <> instead of "" for ext2fs and et header
437 files, since they will be installed in /usr/include
438
Theodore Ts'o7a34cb02001-05-14 04:28:35 +00004392001-05-14 Theodore Tso <tytso@valinux.com>
440
Theodore Ts'o9f8046f2001-05-14 11:35:52 +0000441 * alloc.c, alloc_tables.c, badblocks.c, bb_compat.c, bb_inode.c,
442 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
443 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
444 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
445 expanddir.c, ext2_fs.h, fileio.c, finddev.c, flushb.c,
446 freefs.c, get_pathname.c, getsize.c, icount.c, imager.c,
447 initialize.c, inline.c, inode.c, irel_ma.c, ismounted.c,
448 link.c, lookup.c, mkdir.c, mkjournal.c, namei.c, native.c,
449 newdir.c, nt_io.c, openfs.c, read_bb.c, read_bb_file.c,
450 rs_bitmap.c, rw_bitmaps.c, swapfs.c, test_io.c,
451 tst_badblocks.c, tst_byteswap.c, tst_getsize.c,
452 tst_iscan.c, unix_io.c, unlink.c, valid_blk.c, version.c,
453 write_bb_file.c, ext2_fs.h: Moved file from include/linux.
454 Adjust all files in this directroy to include this file.
455
Theodore Ts'o7a34cb02001-05-14 04:28:35 +0000456 * mkjournal.c (ext2fs_create_journal_superblock): Remove redundant
457 code.
458
Theodore Ts'o0f679452001-05-05 16:42:24 +00004592001-05-05 Theodore Tso <tytso@valinux.com>
460
461 * fileio.c (ext2fs_file_read): Factored out common code and
462 cleaned up function. Fixed a bug where if there was an
463 error reading from the disk, the number of bytes read
464 wasn't reliably set. (Fixes Debian bug #79163)
465 (ext2fs_file_write): Factored out common code and made
466 function more efficient; if writing a full block, don't
467 bother to do a read-modify-write cycle.
468
Theodore Ts'o1cca4d62001-05-05 05:12:14 +00004692001-05-04 Theodore Tso <tytso@valinux.com>
470
471 * dirblock.c (ext2fs_read_dir_block): Check for an directory
472 record length which isn't a multiple four, and treat that
473 as an invalid. Scan the directory and return an error
474 (EXT2_ET_DIR_CORRUPTED) if the directory records are
475 corrupted.
476 (ext2fs_write_dir_block): If while byte-swapping the
477 directory block, if there's an error, abort and return
478 EXT2_ET_DIR_CORRUPTED.
479
Theodore Ts'oa78926e2001-05-03 04:02:29 +00004802001-05-02 Theodore Tso <tytso@valinux.com>
481
482 * ext2fs.h (EXT2_FLAG_IMAGE_FILE): Add new flag, and add
483 image_header field in the ext2_filsys structure
484
485 * block.c (block_iterate_ind, block_iterate_dind, block_iterate_tind):
486 * inode.c (ext2fs_read_inode):
487 * rw_bitmaps.c (read_bitmaps):
488 * openfs.c (ext2fs_open): Add support for EXT2_FLAG_IMAGE_FILE
489
490 * imager.c (ext2fs_image_bitmap_read): Fix bug in imager to make
491 sure the full bitmap is saved.
492
Theodore Ts'of955cc12001-05-01 19:04:28 +00004932001-05-01 Theodore Tso <tytso@valinux.com>
494
Theodore Ts'oa78926e2001-05-03 04:02:29 +0000495 * e2image.h (struct ext2_image_hdr): Add space for the device name
496 in the image header.
497
Theodore Ts'of955cc12001-05-01 19:04:28 +0000498 * dir_iterate.c (ext2fs_process_dir_block): Add a double-check to
499 make sure the rec_len is a multiple of 4, to prevent
500 bus-errors on architectures which care about mis-aligned
501 pointer references.
502
Theodore Ts'o954a6832001-04-26 01:42:37 +00005032001-04-25 Theodore Tso <tytso@valinux.com>
504
505 * getsize.c (ext2fs_get_device_size): Use an unsigned long to
506 query the device sizes using the BLKGETSIZE ioctl.
507
Theodore Ts'o03603942001-04-17 00:53:25 +00005082001-04-16 Theodore Tso <tytso@valinux.com>
509
Theodore Ts'o52db0b42001-04-17 02:22:05 +0000510 * ismounted.c (check_mntent): Check /proc/mounts on Linux systems
511 before checking /etc/mtab. The EXT2_MF_READONLY flag is
512 now set from the /etc/mtab options field for all
513 filesystems, not just the root filesystem. Add debugging
514 code to make it easier to test ext2fs_check_if_mounted().
515
Theodore Ts'o03603942001-04-17 00:53:25 +0000516 * mkjournal.c (ext2fs_create_journal_superblock): Add safety
517 check; return an error if there's an attempt to create a
518 journal less than 1024 filesystem blocks.
519
520 * ext2_err.et.in, mkjournal.c: Change EXT2_JOURNAL_NOT_BLOCK and
521 EXT2_NO_JOURNAL_SB to be EXT2_ET_*.
522
Theodore Ts'o9ec53cf2001-02-20 16:28:40 +00005232001-02-20 Theodore Tso <tytso@valinux.com>
524
525 * bitops.h (ext2fs_swab16, ext2fs_swab32): Add i386 assembly
526 inline functions.
527
528 * tst_byteswap.c: New function to test the byteswap functions.
529 Add to regression test suite.
530
Theodore Ts'oc5423c52001-02-08 05:45:17 +00005312001-02-08 Theodore Tso <tytso@valinux.com>
532
533 * e2image.h (struct ext2_image_hdr): Fix type for fs_hostname
534
Theodore Ts'od23042a2001-02-08 03:37:16 +00005352001-02-07 Theodore Tso <tytso@valinux.com>
536
537 * mkjournal.c (ext2fs_create_journal_superblock): Fix the setting
538 of s_first for external devices to always be 1, since
539 jsb->s_first is always relative to the start of the
540 journal superblock. Use htonl(1) when setting s_nr_users.
541
Theodore Ts'o02088862001-01-18 01:44:19 +00005422001-01-17 Theodore Ts'o <tytso@valinux.com>
543
544 * mkjournal.c (ext2fs_add_journal_device): Fix bug where the
545 device number of the filesystem (instead of the journal)
546 was being dropped into s_journal_dev.
547
Theodore Ts'oa1128472001-01-16 06:56:14 +00005482001-01-15 Theodore Ts'o <tytso@valinux.com>
549
550 * initialize.c (ext2fs_initialize): Add support for initializing
551 the ext2 superblock for external journal devices. This
552 basically means we don't bother to allocate any block
553 group descriptors.
554
555 * openfs.c (ext2fs_open): Only open external journal devices if
556 the new flag EXT2_FLAG_JOURNAL_DEV_OK is passed to
557 ext2fs_open. When opening such devices, don't try to read
558 the block group descriptors, since they're not there.
559
560 * ext2_err.et.in (EXT2_NO_JOURNAL_SB): Add new error code
561
562 * mkjournal.c: Export a new function,
563 ext2fs_create_journal_superblock(), which allocates and
564 returns a buffer containing a journal superblock. This is
565 needed by mke2fs to create an external journal. Rewrote
566 ext2fs_add_journal_device() so that it no longer creates
567 the external journal, but rather adds a filesystem to an
568 existing external journal. It handles all of the UUID
569 manipulation.
570
571 * ext2fs.h: List the EXT3_FEATURE_JOURNAL_DEV as a flag supported
572 by the library. Define the EXT2_FLAG_JOURNAL_DEV_OK.
573 Changed function prototype for ext2fs_add_journal_device().
574
Theodore Ts'o80779942001-01-14 18:03:43 +00005752001-01-14 Theodore Ts'o <tytso@valinux.com>
576
577 * closefs.c (ext2fs_flush): Don't write out anything beyond the
578 primary superblock if EXT2_INCOMPAT_JOURNAL_DEV is
579 listed.
580
Theodore Ts'ob94bd812001-01-12 17:26:05 +00005812001-01-12 Theodore Ts'o <tytso@valinux.com>
582
583 * imager.c: Fix gcc -Wall complaints and a series of bugs where
584 retval wasn't set correctly. (Thanks to Andreas Dilger
585 for pointing this out.)
586
Theodore Ts'o4d0f3e12001-01-11 15:48:50 +00005872001-01-11 <tytso@snap.thunk.org>
588
589 * flushb.c (ext2fs_sync_device): New function which centralizes
590 all of the places which might try to use the BLKFLSBUF
591 or FDFLUSH ioctls (and usually failing to define them
592 since the system header files don't usually do this for
593 us, and we're trying to avoid usage of kernel include
594 files now).
595
Theodore Ts'o31dbecd2001-01-11 04:54:39 +00005962001-01-10 <tytso@snap.thunk.org>
597
598 * alloc.c, bb_inode.c, bitmaps.c, bitops.h, block.c, bmap.c,
599 bmove.c, brel.h, cmp_bitmaps.c, dblist.c, dblist_dir.c,
600 dir_iterate.c, expanddir.c, ext2fs.h, ext2fsP.h, fileio.c,
601 finddev.c, get_pathname.c, icount.c, inode.c, irel.h,
602 irel_ma.c, ismounted.c, link.c, lookup.c, mkdir.c,
603 mkjournal.c, namei.c, newdir.c, read_bb_file.c, test_io.c,
604 tst_iscan.c, unix_io.c, unlink.c: Change use of ino_t to
605 ext2_ino_t, to protect applications that attempt to
606 compile -D_FILE_OFFSET_BITS=64, since this inexplicably
607 changes ino_t(!?). So we use ext2_ino_t to avoid an
608 unexpected ABI change.
609
Theodore Ts'ocdaf1fa2001-01-05 22:23:22 +00006102001-01-05 <tytso@snap.thunk.org>
611
Theodore Ts'oe446d712001-01-05 22:27:06 +0000612 * dirblock.c (ext2fs_read_dir_block): Fix a potential case where
613 we may overrun allocated memory in case of a corrupted
614 filesystem (or an e2fsck test case :-) when byte-swapping
615 the directory block.
616
Theodore Ts'ocdaf1fa2001-01-05 22:23:22 +0000617 * ext2fs.h: Indent the #warning to fix gcc -Wall complaint.
618
619 * mkjournal.c (ext2fs_add_journal_device): Fix various gcc -Wall
620 complaints including a missing return 0 at the end of
621 ext2fs_add_journal_device.
622
Theodore Ts'o43ec8732001-01-03 14:56:46 +00006232001-01-03 <tytso@snap.thunk.org>
624
Theodore Ts'o4becab62001-01-03 19:22:42 +0000625 * Makefile.in: Link in libe2p when creating libext2fs as a shared
626 library, since mkjournal.c now references fsetflags().
627
628 * mkjournal.c (ext2fs_add_journal_inode): Folded in Andreas
629 Dilger's changes (with fixups) to allow on-line creation
630 of a journal file.
631
Theodore Ts'o43ec8732001-01-03 14:56:46 +0000632 * ext2fs.h, closefs.c (ext2fs_flush): Add new flag,
633 EXT2_FLAG_SUPER_ONLY, which the close routines to only
634 update the superblock, and not the group descriptors.
635
6362000-12-30 Andreas Dilger <adilger@turbolinux.com>
637
638 * ismounted.c: add ext2fs_check_mount_point() function, which will
639 optionally return the mount point of a device if mounted
640
Theodore Ts'o31a17b32001-01-03 13:04:12 +00006412000-12-14 Andreas Dilger <adilger@turbolinux.com>
642
643 * mkjournal.c: rename ext2fs_add_journal_fs() to the more descriptive
644 ext2fs_add_journal_inode()
645
Theodore Ts'oe5b38a52001-01-01 16:17:12 +00006462001-01-01 <tytso@snap.thunk.org>
647
648 * ext2fs.h: Remove definition of ext2fs_sb. Note: this may break
649 source (but not binary) compatibility of some users of the
650 ext2 library. They should just simply do a global search
651 and replace of struct ext2fs_sb with struct
652 ext2_super_block, and use their own private copy of
653 ext2_fs.h if they aren't already.
654
655 * closefs.c, initialize.c, link.c, newdir.c, openfs.c, swapfs.c:
656 Replace use of ext2fs_sb with ext2_super_block.
657
Theodore Ts'o2fe1efe2000-12-31 13:39:17 +00006582000-12-31 <tytso@snap.thunk.org>
659
660 * ext2fs.h: Cleaned up header file by removing definitions of
661 feature flags that might not have been defined in older
662 ext2 header files. Now that we're using our own
663 include/linux/ext2fs.h header file, this can never happen.
664
665 * jfs_dat.h: Removed old header file which is no longer needed.
666
Theodore Ts'o7dcfa6e2000-12-13 17:50:14 +00006672000-12-13 Theodore Ts'o <tytso@valinux.com>
668
Theodore Ts'oa917d1c2000-12-13 18:36:23 +0000669 * closefs.c (ext2fs_update_dynamic_rev): New function suggested
Theodore Ts'o3fe973b2000-12-13 17:55:49 +0000670 by Andreas Dilger to update the filesystem revision to
671 EXT2_DYNAMIC_REV.
672
Theodore Ts'o7dcfa6e2000-12-13 17:50:14 +0000673 * swapfs.c (ext2fs_swap_super): Add byte swapping for the journal
674 fields.
675
Theodore Ts'o58618732000-12-09 05:47:45 +00006762000-12-09 <tytso@snap.thunk.org>
677
Theodore Ts'o31a17b32001-01-03 13:04:12 +0000678 * ext2fs.h, mkjournal.c (ext2fs_add_journal_inode,
Theodore Ts'o4e246702000-12-09 14:39:16 +0000679 ext2fs_add_journal_device): Add a new argument to the APIs
680 of these function, which is a flags word. This is used to
681 allow the creation of a V1 superblock for those folks who
682 are using ext3 0.3b in production. Note, the user-land
683 interface for getting at this flag won't be documented, as
684 the V1 superblock is deprecated.
685
Theodore Ts'o58618732000-12-09 05:47:45 +0000686 * mkjournal.c (init_journal_superblock): Sync Stephen's changes
687 which creates a V2 superblock instead of a V1 superblock.
688
Theodore Ts'of20d0d52000-12-05 03:53:41 +00006892000-11-21 <tytso@snap.thunk.org>
690
691 * test_io.c (test_write_blk, test_write_byte): Fix typos pointed
692 out by Andreas Dilger.
693
Theodore Ts'o72ed1262000-11-12 19:32:20 +00006942000-11-05 <tytso@snap.thunk.org>
695
696 * imager.c (ext2fs_image_{inode,super,bitmap}_{read,write},
697 ext2_fs.h, Makefile.in: New file that has routines that
698 save ext2fs metadata to a file.
699
700 * ext2_err.et.in (EXT2_ET_MAGIC_E2IMAGE): New error code assigned.
701
702 * e2image.h: New file which defines the file format for the ext2
703 image file. (Saved copy of ext2 metadata to a file as a
704 saving throw against worst-case damage.)
705
Theodore Ts'o6a7f4552000-11-12 19:07:06 +00007062000-11-01 <tytso@snap.thunk.org>
707
708 * inode.c (ext2fs_flush_icache): Add new function
709 ext2fs_flush_icache() which flushes the internal inode
710 cache. Applications which modify the inode table blocks
711 directly must call this function.
712
Theodore Ts'oc180ac82000-10-26 20:24:43 +00007132000-10-26 <tytso@snap.thunk.org>
714
Theodore Ts'o17ee8b12000-10-26 20:45:58 +0000715 * mkjournal.c: Add #include of netinet/in.h, since Solaris
716 requires it for ntohl().
717
Theodore Ts'oc180ac82000-10-26 20:24:43 +0000718 * ext2_io.h (io_channel_write_byte): Add new interface to allow
719 callers to write specific byte ranges. This is an
720 optional interface, which not all IO channels may
721 implement.
722
723 * unix_io.c (unix_write_byte):
724 * test_io.c (test_write_byte): Add implementation of the
725 write_byte function.
726
727 * closefs.c (write_primary_superblock, ext2fs_flush): Add a new
728 function which writes the primary superblock. If the IO
729 channel supports writing raw bytes directly, only fields
730 which were modified are written to the disk. This makes
731 it safe(r) to use utilities like tune2fs on a mounted
732 filesystem.
733
734 * freefs.c (ext2fs_free): Free the original superblock if it is
735 available.
736
737 * openfs.c (ext2fs_open): Store a copy of the original superblock
738 when opening it.
739
740 * ext2fs.h: Add a field to store the original superblock in the
741 ext2 context structure.
742
Theodore Ts'o43819662000-10-25 02:06:09 +00007432000-10-24 <tytso@snap.thunk.org>
744
745 * llseek.c: Add #ifdef's for IA64 (it's a 64-bit platform, so we
746 don't need to use llseek).
747
Theodore Ts'od3cd93c2000-10-24 18:33:16 +00007482000-10-24 <tytso@valinux.com>
749
750 * Makefile.in, ext2fs.h, jfs_dat.h, mkjournal.c: Add functions for
751 creating an ext3 journal on a filesystem.
752
7532000-08-21 <tytso@valinux.com>
754
755 * ext2_err.et.in (EXT2_JOURNAL_NOT_BLOCK): Add new error code.
756
Theodore Ts'oadfc8c62000-10-18 19:22:24 +00007572000-08-22 <tytso@valinux.com>
758
759 * unix_io.c: Make massive changes to support a multiple block
760 writethrough cacheing.
761
762 * ext2_io.h: Added flags field to the io_channel structure.
763
Theodore Ts'ode23aa12000-08-19 17:00:47 +00007642000-08-19 <tytso@valinux.com>
765
766 * finddev.c, ext2fs.h, Makefile.in: Add new file, finddev.c, which
767 provides the function ext2fs_find_block_device(). This
768 function returns the pathname to a block device, given its
769 device number.
770
Theodore Ts'of9e67062000-07-13 23:25:54 +00007712000-07-13 <tytso@valinux.com>
772
773 * Release of E2fsprogs 1.19
774
Theodore Ts'oab146762000-07-07 04:37:35 +00007752000-07-07 Theodore Ts'o <tytso@valinux.com>
776
777 * ext2fs.h (EXT2_LIB_FEATURE_INCOMPAT_SUPP): Add
778 EXT3_FEATURE_INCOMPAT_RECOVER (aka needs_recovery) to the
779 list of filesystem flags supported by the library.
780
Theodore Ts'o57dca852000-07-04 19:20:25 +00007812000-07-04 Theodore Ts'o <tytso@valinux.com>
782
Theodore Ts'o8f13d8c2000-07-04 19:41:29 +0000783 * ext2fs.h: Update to include latest journalling additions to the
784 superblock.
785
Theodore Ts'o57dca852000-07-04 19:20:25 +0000786 * dll/jump.funcs: Add new jumptable entries for
787 ext2fs_write_bb_FILE, ext2fs_read_bb_FILE2, and
788 ext2fs_badblocks_equal.
789
790 * tst_badblocks.c: Update test program to test
791 ext2fs_read_bb_FILE2 and ext2fs_write_FILE.
792
793 * write_bb_file.c (ext2fs_write_bb_FILE): New function which
794 writes out bad blocks list to a file.
795
796 * read_bb_file.c (ext2fs_read_bb_FILE2): Add new function which
797 changes the callback function to take two additional
798 arguments; a private blind pointer supplied by the caller,
799 and pointer to a char * containing a pointer to the
800 invalid string.
801
802 * badblocks.c (ext2fs_badblocks_equal): Add new function which
803 returns true if two badblocks list are equal.
804
805 * Makefile.in: Remove explicit link of -lc in the shared library.
806 (It shouldn't be necessary, and is harmful in some cases).
807
Theodore Ts'oabf7d382000-06-10 19:27:17 +00008082000-06-10 Theodore Ts'o <tytso@valinux.com>
809
810 * getsize.c (main): Add debugging code under #ifdef DEBUG
811
Theodore Ts'o2e8d40d2000-05-27 15:15:40 +00008122000-05-27 Theodore Ts'o <tytso@valinux.com>
813
814 * mkdir.c (ext2fs_mkdir): Read the parent directory's inode
815 earlier, so that if there's an error reading it, we can
816 more cleanly back out of the operation.
817
Theodore Ts'of0f4acb2000-05-25 23:22:11 +00008182000-05-25 <tytso@snap.thunk.org>
819
Theodore Ts'odc5f68c2000-05-25 23:31:54 +0000820 * getsize.c (ext2fs_get_device_size): Use open64() instead of
Theodore Ts'o7fd86d32000-05-25 23:42:22 +0000821 open() if it exists. Under linux, manually define the
822 ioctl for BLKGETSIZE if it isn't already defined and it's
823 safe to do so.
Theodore Ts'odc5f68c2000-05-25 23:31:54 +0000824
825 * unix_io.c (unix_open): Use open64() instead of open() if it
826 exists.
827
828 * llseek.c: Simplify header includes of unistd.h. If lseek64 is
829 available (and prototypes are defined) use it in
830 preference to llseek.
831
Theodore Ts'of0f4acb2000-05-25 23:22:11 +0000832 * Makefile: Add hack dependency rule so that parallel makes work
833 correctly.
834
Theodore Ts'ofa7ef712000-05-19 02:11:41 +00008352000-05-18 Theodore Ts'o <tytso@valinux.com>
836
837 * ext2fs.h: Add appropriate ifdef's to support C++ compilation.
838
Theodore Ts'oe589f672000-04-03 13:45:40 +00008392000-04-03 Theodore Ts'o <tytso@valinux.com>
840
Theodore Ts'o06af47f2000-04-03 13:51:00 +0000841 * block.c: Readibility tweak in conditionals involving
842 ctx->fs->flags.
843
Theodore Ts'oe589f672000-04-03 13:45:40 +0000844 * ext2fs.h: Use AUTOCONF SIZEOF_* macros if available to determine
845 how to define __s64 and __u64. Turn off "compression is
846 experimental" warning if the cpp macro
847 I_KNOW_THAT_COMPRESSION_IS_EXPERIMENTAL is defined.
848
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +00008492000-02-11 <tytso@snap.thunk.org>
850
Theodore Ts'o5a63dd22000-02-11 15:44:08 +0000851 * ext2fs.h: Define EXT2FS_COMPRESSED_BLKADDR and HOLE_BLKADDR.
852 Conditionally include Compression as a supported type if
853 ENABLE_COMPRESSION (via --enable-compression) is turned on.
854
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +0000855 * swapfs.c (ext2fs_swap_super): Swap the compression usage bitmap.
856
Theodore Ts'o28ffafb2000-02-08 19:14:02 +00008572000-02-08 <tytso@snap.thunk.org>
858
859 * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap,
860 ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
861 ext2fs_mark_inode_bitmap, ext2fs_unmark_inode_bitmap):
862 Change to return the previous state of the bit that is
863 being marked or unmarked. For speed optimization.
864
Theodore Ts'o80e808f2000-02-02 16:19:59 +00008652000-02-02 Theodore Ts'o <tytso@valinux.com>
866
867 * getsize.c, ismounted.c: Remove unneeded include of linux/fs.h
868
869 * swapfs.c: Remove #ifdef HAVE_EXT2_INODE_VERSION since it's not
870 needed any more; we know it will always be i_generation.
871 Add support for swapping the high bits of the uid and gid.
872
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +00008731999-11-19 <tytso@valinux.com>
874
Theodore Ts'odab278a1999-11-19 18:49:27 +0000875 * mkdir.c (ext2fs_mkdir): Only update the parent's inode link
876 counts if the link was successful. Patch suggested by
877 jeremy@goop.org.
878
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +0000879 * Makefile.in (distclean): Remove TAGS and Makefile.in.old from
880 the source directory.
881
Theodore Ts'ocd086361999-11-10 16:00:39 +00008821999-11-10 <tytso@valinux.com>
883
884 * Release of E2fsprogs 1.18
885
Theodore Ts'o9b9fe8a1999-11-08 22:05:04 +00008861999-11-08 <tytso@valinux.com>
887
888 * Makefile.in (tst_badblocks): Add freefs.o to the object list,
889 since ext2fs_badblocks_list_free was moved to freefs.c.
890
891 * tst_badblocks.c: Use the newer badblocks API names. Add
892 duplicate blocks to the test inputs to test dealing with
893 adding blocks which are already in the badblocks list.
894
895 * badblocks.c (ext2fs_badblocks_list_add): If appending to the end
896 of the list, use a shortcut O(1) operations instead of an
897 O(n) operation. (Idea suggested by David Beattie.)
898
899 * freefs.c (ext2fs_free): Use ext2fs_badblocks_list_free() instead
900 of badblocks_list_free(), to save a procedure call.
901
Theodore Ts'o416c93d1999-10-26 04:49:54 +00009021999-10-26 <tytso@valinux.com>
903
Theodore Ts'o28e11941999-10-26 18:17:20 +0000904 * Release of E2fsprogs 1.17
905
9061999-10-26 <tytso@valinux.com>
907
Theodore Ts'o416c93d1999-10-26 04:49:54 +0000908 * ext2fs.h: Add kludge to deal with the fact that egcs cpp doesn't
909 seem to handle ~0UL the same way as they used to.
910
Theodore Ts'o601002b1999-10-26 02:06:39 +00009111999-10-25 <tytso@valinux.com>
912
Theodore Ts'ofe70fd31999-10-26 02:34:47 +0000913 * nt_io.c (_OpenNtName): Open the device using
914 FILE_SYNCHRONOUS_IO_NONALERT instead of
915 FILE_SYNCHRONOUS_IO_ALERT
916 (nt_open): At the end of the device open routine, unlock
917 the drive but do not dismount it.
918
Theodore Ts'o601002b1999-10-26 02:06:39 +0000919 * initialize.c (CREATOR_OS): Use __GNU__ instead of __gnu__ to
920 detect the Hurd OS.
921
Theodore Ts'oe6198e51999-10-23 00:58:54 +00009221999-10-22 <tytso@valinux.com>
923
Theodore Ts'o614fdfd1999-10-23 03:19:51 +0000924 * Release of E2fsprogs 1.16
925
9261999-10-22 <tytso@valinux.com>
927
Theodore Ts'oe6198e51999-10-23 00:58:54 +0000928 * mkdir.c (ext2fs_mkdir): Pass EXT2_FT_DIR flag to ext2fs_link().
929
930 * link.c (ext2fs_link): This call now uses the low three bits of
931 the flags parameter to pass the directory filetype
932 information; it will set the directory entry FILETYPE
933 information if the filesystem supports it.
934
935 * newdir.c (ext2fs_new_dir_block): If the FILETYPE superblock
936 option is set, then create the '.' and '..' entries with
937 the filetype set to EXT2_FT_DIR.
938
Theodore Ts'oaa4115a1999-10-21 19:33:18 +00009391999-09-24 <tytso@valinux.com>
940
941 * nt_io.c: New file which supports I/O under Windows NT.
942
Theodore Ts'o3a5f8ea1999-09-14 20:21:26 +00009431999-09-07 <tytso@valinux.com>
944
945 * ext2fs.h: Add new fields for journalling and define new
946 feature bits used by newer filesystems: IMAGIC_INODES,
947 HAS_JOURNAL, RECOVER.
948
949 * expanddir.c (ext2fs_expand_dir, expand_dir_proc): Change where
950 we update the inode block count and size files so that the
951 block count field is updated correctly when we create an
952 indirect block.
953
9541999-07-18 Theodore Ts'o <tytso@valinux.com>
Theodore Ts'o657cb971999-07-30 23:19:10 +0000955
956 * Release of E2fsprogs 1.15
957
Theodore Ts'oe72a9ba1999-06-25 15:40:18 +00009581999-06-23 <tytso@valinux.com>
959
960 * swapfs.c (ext2fs_swap_inode): Add compatibility for Linux 2.3
961 kernels that use i_generation instead of i_version. Patch
962 supplied by Jon Bright <sircus@sircus.demon.co.uk>.
963
9641999-06-21 <tytso@valinux.com>
Theodore Ts'o813bbb21999-06-22 03:17:45 +0000965
966 * dir_iterate.c (ext2fs_process_dir_block): Check for corrupted
967 directory entry before calling the callback function.
968 This should prevent some core dumps of insufficiently
969 paranoid callback functions.
970
Theodore Ts'oa4bf69d1999-05-29 21:53:30 +00009711999-05-29 <tytso@rsts-11.mit.edu>
972
973 * ext2fs.h: Add feature definition for AFS IMAGIC inodes.
974
975 * fileio.c (ext2fs_file_open): Remove obsolete comment stating
976 that we don't handle writing yet (we do). Fixed bug where
977 we weren't allocating a big enough buffer for ext2_bmap.
978
Theodore Ts'of0687a51999-05-29 21:48:03 +00009791999-05-03 <tytso@rsts-11.mit.edu>
980
981 * openfs.c (ext2fs_open): Check to make sure that the number of
982 blocks per group is not zero --- if so, it must be a bad
983 superblock!
984
Theodore Ts'o9e51eca1999-01-09 16:32:31 +00009851999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
986
987 * Release of E2fsprogs 1.14
988
Theodore Ts'o665f7101999-01-08 13:33:39 +00009891999-01-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
990
991 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Check to see if
992 the inode number is zero; if it's zero, return
993 EXT2_ET_BAD_INODE_NUM.
994
Theodore Ts'o7a469521999-01-04 08:50:59 +00009951998-12-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
996
997 * initialize.c (ext2fs_initialize): Use EXT2_FIRST_INODE instead
998 of EXT2_FIRST_INO to ensure compatibility with Linux 1.2
999 header files.
1000
Theodore Ts'o73f17cf1999-01-04 07:35:45 +00001001Mon Jan 4 02:32:09 1999 Theodore Y. Ts'o <tytso@mit.edu>
1002
1003 * llseek.c (ext2fs_llseek): Change ext2fs_llseek() in the
1004 non-Linux case to use EINVAL by default, unless it isn't
1005 defined, in which case we use EXT2_ET_INVALID_ARGUMENT
1006 instead.
1007
Theodore Ts'o556ad131998-12-19 08:10:58 +000010081998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu>
1009
1010 * Release of E2fsprogs 1.13
1011
Theodore Ts'o5a679c81998-12-03 16:40:38 +000010121998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
1013
1014 * Makefile.in: Updated dependencies.
1015
Theodore Ts'o8d7e83b1998-09-23 00:27:26 +000010161998-09-22 Theodore Ts'o <tytso@rsts-11.mit.edu>
1017
1018 * initialize.c (ext2fs_initialize): Make sure that we allocate
1019 enough inodes so that we can make a valid filesystem.
1020
Theodore Ts'o2eb374c1998-09-03 01:22:57 +000010211998-09-02 Theodore Ts'o <tytso@rsts-11.mit.edu>
1022
1023 * rw_bitmaps.c: Fixed signed/unsigned warnings.
1024
1025 * fileio.c (ext2fs_file_set_size): Remove unneeded extern from the
1026 function declaration.
1027
1028 * dblist.c (make_dblist): Add safety check in case the dblist
1029 pointer passed in is null (in which case, assign it to
1030 fs->dblist). Fixed some signed/unsigned warnings.
1031
1032 * bmap.c: Make addr_per_block be of type blk_t to avoid
1033 signed/unsigned warnings.
1034
1035 * namei.c (ext2fs_follow_link): Remove uneeded extern from the
1036 function declaration.
1037
1038 * get_pathname.c (get_pathname_proc): Use return value from
1039 ext2fs_get_mem, instead of checking if &gp->name is
1040 NULL.
1041
1042 * dir_iterate.c (ext2fs_process_dir_block):
1043 * dblist_dir.c (ext2fs_dblist_dir_iterate): Remove uneeded extern
1044 from the function declaration.
1045
1046 * block.c (ext2fs_block_iterate2): If the read_inode call fails,
1047 return the error directly instead of jumping to the
1048 cleanup routine, since we don't need to do any cleanup.
1049
1050 * alloc_table.c (ext2fs_allocate_group_table): Make this
1051 function take a dgrp_t for its group argument.
1052
1053 * ext2fs.h: Make dgrp_t an __u32 type, and make
1054 fs->desc_group_count be of type dgrp_t.
1055
Theodore Ts'of75c28d1998-08-01 04:18:06 +000010561998-07-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
1057
1058 * badblocks.c (ext2fs_badblocks_list_add): Use a bigger increment
1059 than 10 blocks when we need to expand the size of the
1060 badblocks list.
1061
Theodore Ts'o4a5fa191998-07-09 05:42:45 +000010621998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
1063
1064 * Release of E2fsprogs 1.12
1065
Theodore Ts'o30c42611998-06-30 05:33:11 +000010661998-06-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
1067
1068 * closefs.c (ext2fs_flush): Update the s_block_group_nr field as
1069 appropriate for all of the block group copies, so that
1070 it's clear where the beginning of the filesystem is on the
1071 disk. (For when the partition table gets scrod.)
1072
1073 * ext2fs.h: Change the name of the feature from
1074 EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE to
1075 EXT2_FEATURE_INCOMPAT_FILESIZE (to match with the kernel).
1076
Theodore Ts'o818180c1998-06-27 05:11:14 +000010771998-06-18 Theodore Ts'o <tytso@rsts-11.mit.edu>
1078
1079 * inode.c (get_next_blockgroup): Fix bug where if
1080 get_next_blockgroup() is called early because of a missing
1081 inode table in a block group, the current_inode counter
1082 wasn't incremented correctly.
1083
Theodore Ts'o4faba5b1998-06-16 05:23:41 +000010841998-06-16 Theodore Ts'o <tytso@rsts-11.mit.edu>
1085
1086 * read_bb.c (ext2fs_read_bb_inode): Make function more robust
1087 against a completely trashed bad block inode.
1088
Theodore Ts'o03673db1998-06-10 20:39:43 +000010891998-06-10 Theodore Ts'o <tytso@rsts-11.mit.edu>
1090
1091 * alloc_tables.c (ext2fs_allocate_group_table): Fix bug so that if
1092 the stride length hits a bad value, we retry the block
1093 allocation starting at the beginning of the block group.
1094
1095 * ext2fs.h, bb_inode.c, block.c, bmove.c, dir_iterate.c,
1096 expanddir.c, ext2fsP.h, read_bb.c: Change blkcnt_t to be
1097 e2_blkcnt_t to avoid collision with LFS API.
1098
Theodore Ts'o353952d1998-05-01 05:32:18 +000010991998-05-01 Theodore Ts'o <tytso@rsts-11.mit.edu>
1100
1101 * initialize.c (ext2fs_initialize): Initialize s_inodes_count in a
1102 way that avoids overflows on disk sizes greater than 4GB.
1103
Theodore Ts'o4c77fe51998-04-30 17:35:59 +000011041998-04-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
1105
1106 * ext2fs.h: Define EXT2_QSORT_TYPE appropriately for the
1107 return type for comparison functions for qsort.
1108
1109 * dblist.c (dir_block_cmp): Use EXT2_QSORT_TYPE in function
1110 declaration.
1111
Theodore Ts'o76f875d1998-04-27 01:41:13 +000011121998-04-26 Theodore Ts'o <tytso@rsts-11.mit.edu>
1113
1114 * ext2fs.h, bitops.h: Add support for the Watcom C compiler to do
1115 inline functions.
1116
1117 * ext2fs.h, dosio.c: Use asm/types.h instead of linux/types.h to
1118 evade a potential problem with glibc's header files trying
1119 to spike out linux/types.h.
1120
1121 * ext2fs.h (ext2fs_resize_mem): Change the function prototype to
1122 include the old size of the memory, which is needed for
1123 some braindamaged memory allocation systems that don't
1124 support realloc().
1125
1126 * badblocks.c (ext2fs_badblocks_list_add):
1127 bb_inode.c (clear_bad_block_proc):
1128 dblist.c (ext2fs_add_dir_block):
1129 icount.c (insert_icount_el):
1130 irel_ma.c (ima_put):
1131 rs_bitmap.c (ext2fs_resize_generic_bitmap): Update functions to
1132 pass the old size of the memory to be resized to
1133 ext2fs_resize_mem().
1134
Theodore Ts'o469bec81998-04-01 02:46:43 +000011351998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
1136
1137 * Makefile.in: Change to use new installation directory variables
1138 convention. Fix uninstall rules to take $(DESTDIR) into
1139 account.
1140
Theodore Ts'o4a31c481998-03-30 01:27:25 +000011411998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu>
1142
1143 * ext2fs.h: If __STRICT_ANSI__ is defined and we're on a platform
1144 with 32 bit longs, then we need to manually define __s64
1145 and __u64, since the current kernel header files don't
1146 define these if __STRICT_ANSI__ is defined. This is a
1147 problem if we are compiling with full GCC warnings, since
1148 we do need 64 bit support.
1149
1150 * Makefile.in (OBJS): Remove bmove.o from files to be built,
1151 since we're not using ext2fs_move_blocks() and there
1152 is some question as to its usefulness in its current
1153 form.
1154
1155 * bmap.c (block_bmap): Remove unused function.
1156
1157 * bmove.c (process_block): Fix -Wall warning.
1158
Theodore Ts'o36a43d61998-03-24 16:17:51 +000011591998-03-23 Theodore Ts'o <tytso@rsts-11.mit.edu>
1160
1161 * block.c (ext2fs_block_iterate3): Make the ref_offset field
1162 contain the offset into the inode.i_blocks array when
1163 ref_block is zero. Since we haven't done a formal
1164 release of e2fsprogs since block_iterate2 was first
1165 introduced, I removed block_iterate2, and renamed
1166 block_iterate3 to be block_iterate2.
1167
1168 * bb_inode.c, bmove.c, dblist_dir.c, dir_iterate.c,
1169 expanddir.c, ext2fs.h, ext2fsP.h, read_bb.c: Change
1170 use of block_iterate and block_iterate2 to
1171 block_iterate2 with the new prototype for the
1172 interator function. (using blkcnt_t forr blockcount)
1173
Theodore Ts'o674a4ee1998-03-23 02:06:52 +000011741998-03-21 Theodore Ts'o <tytso@rsts-11.mit.edu>
1175
1176 * ext2fs.h: Add new superblock fields (s_algorithm_usage_bitmap,
1177 s_prealloc_blocks, s_prealloc_dir_blocks). Added
1178 conditional defines of new features COMPAT_DIR_PREALLOC,
1179 RO_COMPAT_LARGE_FILE RO_COMPAT_BTREE_DIR,
1180 INCOMPAT_COMPRESSION, INCOMPAT_DIRNAME_SIZE. Changed
1181 the library to declare that we support COMPAT_DIR_PREALLOC,
1182 INCOMPAT_DIRNAME_SIZE, RO_COMPAT_LARGE_FILE.
1183
1184 * fileio.c: Rename function ext2fs_file_llseek to be
1185 ext2fs_file_lseek, which is more accurate.
1186
1187 * block.c: Add new function ext2fs_block_iterate3 which calls
1188 the iterator function with the blockcount argument of
1189 type blkcnt_t. This version of the function is
1190 allowed to handle large files; the other fucntions are
1191 not.
1192
1193 * ext2fs.h: Add new type blkcnt_t
1194
1195 * ext2_err.et.in: Add error code EXT2_ET_FILE_TOO_BIG
1196
1197 * block.c (ext2fs_block_iterate2): Fix bug where the block count
1198 field wasn't getting correctly incremented for sparse
1199 files when the indirect or doubly-indirect block
1200 specified in the inode was zero.
1201
1202Sun Mar 8 22:42:47 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1203
1204 * unlink.c (unlink_proc):
1205 * lookup.c (lookup_proc):
1206 * link.c (link_proc):
1207 * get_pathname.c (get_pathname_proc):
1208 * dir_iterate.c (ext2fs_process_dir_block): Mask off high 8 bits
1209 from dirent->name_len, so it can be used for other
1210 purposes.
1211
1212 * ext2fs.h: Add definition of EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE,
1213 and indicate that we have support for this incompatible
1214 option.
1215
Theodore Ts'oc7752561998-02-24 04:25:52 +00001216Mon Feb 23 08:46:33 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1217
1218 * ext2_err.et.in: Added new error code, EXT2_ET_CANCEL_REQUESTED.
1219
Theodore Ts'o79b05db1998-02-21 05:01:19 +00001220Fri Feb 20 23:58:01 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1221
1222 * dblist.c (ext2fs_get_num_dirs): Improve the estimation of the
1223 number of directories when the block group information is
1224 unreliable.
1225
Theodore Ts'oc4e749a1998-02-20 05:33:14 +000012261998-02-20 Theodore Y. Ts'o <tytso@edt.mit.edu>
1227
Theodore Ts'o218a4861998-02-21 01:41:39 +00001228 * inode.c (ext2fs_get_next_inode): Always do the check to see if the
1229 inode table is missing so that we catch the case where the
1230 first block group is missing.
1231
Theodore Ts'oc4e749a1998-02-20 05:33:14 +00001232 * getsize.c, ismounted.c, unix_io.c: #include errno.h since it's
1233 needed.
1234
Theodore Ts'o9abd2ce1998-02-16 22:00:37 +00001235Mon Feb 16 16:16:00 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1236
1237 * ext2_io.h, ext2fs.h: Protect against being included multiple times.
1238
1239 * bmove.c: #include ext2fsP.h instead of "ext2fs/ext2fs.h"
1240
1241 * test_io.c (test_flush): Add a debugging printf when the flush
1242 method is called.
1243
1244 * rw_bitmaps.c (ext2fs_read_bitmaps): If the bitmaps are already
1245 read in, return right away.
1246
Theodore Ts'o5953b9d1998-02-01 13:23:02 +00001247Sun Feb 1 08:20:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1248
1249 * bitops.h: Don't try to do i386 inline asm functions if the
1250 compiler isn't GCC.
1251
1252 * ext2fs.h: If EXT2_FLAT_INCLUDES is defined, #include e2_types.h,
1253 instead of linux/types.h, and e2_bitops.h instead of
1254 ext2fs/bitops.h.
1255
1256 * icount.c, version.c: Don't #include <et/com_err.h>, as it isn't
1257 necessary.
1258
Theodore Ts'ob5abe6f1998-01-19 14:47:53 +00001259Sat Jan 17 13:13:31 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1260
1261 * inode.c (ext2fs_open_inode_scan): Initialize the group variables
1262 so that we don't need to call get_next_blockgroup() the
1263 first time around. Saves a bit of time, and prevents us
1264 from needing to assign -1 to current_group (which is an
1265 unsigned value).
1266
1267 * icount.c (insert_icount_el): Cast the estimated number of inodes
1268 from a float to an ino_t.
1269
1270 * alloc.c, alloc_tables.c, badlbocks.c, bb_compat.c, bb_inode.c,
1271 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
1272 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
1273 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
1274 expanddir.c, ext2fs.h, fileio.c, freefs.c,
1275 get_pathname.c, getsize.c, icount.c, initialize.c,
1276 inline.c, inode.c, irel_ma.c, ismounted.c, link.c,
1277 lookup.c, mkdir.c, namei.c, native.c, newdir.c,
1278 openfs.c, read_bb.c, read_bb_file.c, rs_bitmap.c,
1279 rw_bitmaps.c, swapfs.c, test_io.c, tst_badblocks.c,
1280 tst_getsize.c, tst_iscan.c, unix_io.c, unlink.c,
1281 valid_blk.c, version.c: If EXT2_FLAT_INCLUDES is
1282 defined, then assume all of the
1283 ext2-specific header files are in a flat directory.
1284
1285 * block.c, bmove.c, dirblock.c, fileio.c: Explicitly cast
1286 all assignments from void * to be compatible with C++.
1287
1288Tue Jan 6 11:28:15 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1289
1290 * closefs.c (ext2fs_flush): Add a call to io_channel_flush() to
1291 make sure the contents of the disk are flushed to disk.
1292
1293Mon Dec 29 14:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1294
1295 * dblist.c (ext2fs_add_dir_block): Change new to be new_entry to
1296 avoid C++ namespace clash.
1297
1298 * bitmaps.c (ext2fs_copy_bitmap): Change new to be new_map to
1299 avoid C++ namespace clash.
1300
1301 * ext2fs.h, bb_inode.c, block.c, bmove.c, brel.h, brel_ma.c,
1302 irel.h, irel_ma.c, dblist.c, dblist_dir.c, dir_iterate.c,
1303 ext2fsP.h, expanddir.c, get_pathname.c, inode.c, link.c,
1304 unlink.c: Change private to be priv_data (to avoid C++
1305 namespace clash)
1306
Theodore Ts'o5be8dc21997-12-01 18:24:10 +00001307Fri Nov 28 09:26:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1308
1309 * dblist.c (ext2fs_get_num_dirs): Make ext2fs_get_num_dirs more
1310 paranoid about validating the directory counts from the
1311 block group information.
1312
1313 * all files: Don't include stdlib.h anymore; include it in
1314 ext2_fs.h, since that file requires stdlib.h
1315
Theodore Ts'o89270b51997-11-24 11:44:25 +00001316Thu Nov 20 16:07:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1317
1318 * expanddir.c (ext2fs_expand_dir): Check to make sure the block
1319 bitmap is loaded, and return an error if it is not.
1320 (expand_dir_proc): Only use ext2fs_write_dir_block when
1321 writing a directory block, not when writing out a fresh
1322 indirect block.
1323
Theodore Ts'od36d8351997-11-12 03:48:07 +00001324Tue Nov 11 22:46:45 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1325
1326 * Makefile.in, tst_getsize.c: Added new file which is used to test
1327 the ext2fs_get_device_size function.
1328
1329 * ext2_err.et.in (EXT2_ET_UNIMPLEMENTED): Added new error code.
1330
Theodore Ts'o79a90bd1997-11-03 19:16:55 +00001331Sun Nov 2 20:36:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1332
1333 * ext2fs.h: Make ext2fs_get_mem take an unsigned argument.
1334
1335 * fileio.c (ext2fs_file_get_size, ext2fs_file_set_size,
1336 ext2fs_file_get_fs): New functions added.
1337
1338
1339Fri Oct 31 12:16:52 1997 <tytso@EDT.MIT.EDU>
1340
1341 * bitops.c (ext2fs_warn_bitmap, ext2fs_warn_bitmap2): Don't call
1342 com_err if OMIT_COM_ERR is defined.
1343
Theodore Ts'o1f0b6c11997-10-31 06:07:47 +00001344Thu Oct 30 11:33:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1345
1346 * Rename new error codes to _ET_ in them for consistency.
1347
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001348Sat Oct 25 00:06:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1349
Theodore Ts'o7b4e4531997-10-26 03:41:24 +00001350 * [all files, basically]: Added definition of ext2fs_get_mem,
1351 ext2fs_free_mem, and ext2fs_resize_mem in ext2fs.h, and
1352 changed all library routines to use these wrapper functions.
1353
Theodore Ts'o78d8f901997-10-26 01:53:39 +00001354 * dblist.c, mkdir.c: use EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND
1355 instead of the system error messages.
1356
1357 * ext2_err.et.in: Added new error messages EXT2_DIR_EXISTS and
1358 EXT2_DB_NOT_FOUND
1359
Theodore Ts'o30fab291997-10-25 22:37:42 +00001360 * ext2fs.h: Added function declarations and constants for bmap.c
1361 and fileio.c.
1362
1363 * ext2_err.et.in: Added new error messages EXT2_FILE_RO and
1364 EXT2_ET_MAGIC_EXT2_FILE
1365
1366 * Makefile.in: Added files bmap.c and fileio.c, and temporarily
1367 commented out brel_ma.c and irel_ma.c
1368
1369 * bmap.c: New file which maps a file's logical block number to its
1370 physical block number.
1371
1372 * fileio.c: New file which implements simple file reading and
1373 writing primitives.
1374
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001375 * alloc.c (ext2fs_alloc_block): New function which allocates a
Theodore Ts'o30fab291997-10-25 22:37:42 +00001376 block, zeros it, and updates the filesystem accounting
1377 records appropriately.
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001378
1379Wed Oct 22 16:47:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1380
1381 * ext2_err.et.in: Added new error codes: EXT2_NO_MEMORY,
1382 EXT2_INVALID_ARGUMENT, EXT2_BLOCK_ALLOC_FAIL,
1383 EXT2_INODE_ALLOC_FAIL, EXT2_NOT_DIRECTORY
1384
1385 * Change various library files to use these functions instead of
1386 EINVAL, ENOENT, etc.
1387
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +00001388Mon Oct 20 19:32:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1389
1390 * llseek.c: Check HAVE_LLSEEK_PROTOTYPE to see whether or not we
1391 need to declare llseek().
1392
Theodore Ts'o1d2ff461997-10-19 23:00:21 +00001393Sun Oct 19 18:56:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1394
Theodore Ts'od40259f1997-10-20 00:44:26 +00001395 * Rename io.h to be ext2_io.h (avoid namespace collisions)
1396
Theodore Ts'o1d2ff461997-10-19 23:00:21 +00001397 * Add #ifdef's for HAVE_SYS_STAT_H and HAVE_SYS_TYPES_H
1398
Theodore Ts'od163b091997-10-03 17:42:28 +00001399Fri Oct 3 13:35:59 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1400
1401 * llseek.c (ext2fs_llseek): Fix type error for ext2fs_llseek()
1402
1403 * icount.c (ext2fs_icount_validate):
1404 * bmove.c (process_block): Fix lint error in type for fprintf().
1405
1406Mon Sep 15 11:45:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1407
1408 * inode.c (ext2fs_check_directory): Add support for the callback
1409 to return the error code EXT2_ET_CALLBACK_NOTHANDLED.
1410
Theodore Ts'offf876b1997-09-13 00:32:29 +00001411Thu Sep 4 12:28:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1412
1413 * bitmaps.c (ext2fs_set_bitmap_padding): New function which sets the
1414 padding of the bitmap to be all one's.
1415
Theodore Ts'obc75f2a1997-09-04 00:43:10 +00001416Wed Sep 3 14:27:30 1997 Theodore Y. Ts'o <tytso@edt.mit.edu>
1417
1418 * llseek.c: Added missing semicolon to glibc fixup declaration of
1419 llseek().
1420
1421 * bmove.c: Add #include of errno.h
1422
Theodore Ts'oe9affb71997-08-24 02:57:55 +00001423Sat Aug 23 22:47:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1424
1425 * Makefile.in (ELF_SO_VERSION): Bump version to be 2.4 since we've
1426 added a new field to the io_channel (app_data).
1427
1428 * io.h: Add a new element to the io_channel structure, app_data.
1429
1430 * initialize.c, openfs.c: Set io->app_data to point at the
1431 filesystem handle.
1432
Theodore Ts'o1c27cac1997-08-14 17:20:42 +00001433Thu Aug 14 08:14:17 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1434
1435 * io.h: Change the prototype of ext2fs_llseek() to use int's
1436 instead of unsigned int's.
1437
1438 * llseek.c: Change to allow PIC and !HAVE_LLSEEK. Add a prototype
1439 to make life easer for GNU Libc 2.
1440
1441 * rw_bitmaps.c: On the PowerPC, the big-endian variant of the ext2
1442 filesystem has its bitmaps stored as 32-bit words with bit
1443 0 as the LSB of each word. Thus a bitmap with only bit 0
1444 set would be, as a string of bytes, 00 00 00 01 00 ... To
1445 cope with this, we byte-reverse each word of a bitmap if
1446 we have a big-endian filesystem, that is, if we are *not*
1447 byte-swapping other word-sized numbers.
1448
Theodore Ts'o3cb6c501997-08-11 20:29:22 +00001449Mon Aug 11 03:30:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1450
1451 * dosio.c: New file to do DOS/BIOS disk accesses.
1452
1453 * namei.c (open_namei): Make pathlen be of type size_t.
1454
1455 * llseek.c: Always #include stdlib.h since it's need to define
1456 size_t.
1457
1458 * io.h: Use errcode_t for magic numbers.
1459
1460 * icount.c (get_icount_el): Use size_t where appropriate
1461
1462 * dupfs.c (ext2fs_dup_handle):
1463 * dblist.c (dir_block_cmp): Use size_t where appropriate.
1464
1465 * read_bb.c (ext2fs_read_bb_inode):
1466 * cmp_bitmaps.c (ext2fs_compare_inode_bitmap): Use blk_t, ino_t
1467 and size_t where appropriate.
1468
1469 * closefs.c (ext2fs_flush): Use dgrp_t instead of int where
1470 appropriate.
1471
1472 * openfs.c (ext2fs_open):
1473 * check_desc.c (ext2fs_check_desc): Use blk_t instead of int where
1474 appropriate.
1475
1476 * rw_bitmaps.c (read_bitmaps):
1477 * irel_ma.c:
1478 * inode.c (ext2fs_write_inode):
1479 * initialize.c (ext2fs_initialize):
1480 * brel_ma.c: Fix to make be 16-bit safe.
1481
1482 * link.c (ext2fs_link):
1483 * unlink.c (ext2fs_unlink):
1484 * lookup.c (lookup_proc):
1485 * ismounted.c (ext2fs_check_if_mounted):
1486 * block.c (xlate_func): Add #pragma argsused for Turbo C.
1487
Theodore Ts'o4cbe8af1997-08-10 23:07:40 +00001488Sun Aug 10 10:05:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1489
1490 * block.c (ext2fs_block_iterate2): Use retval which is a errcode_t
1491 type.
1492
1493 * bitmaps.c (make_bitmap): Use size_t instead of int where
1494 appropriate.
1495
1496 * bb_inode.c (set_bad_block_proc): Add #pragma argsused for Turbo C.
1497
1498 * alloc.c (ext2fs_new_inode): Use ino_t instead of int for the
1499 group number.
1500
1501 * get_pathname.c: Use ino_t instead of int where appropriate.
1502
1503 * ext2fs.h: Make the magic structure element be errcode_t instead
1504 of int.
1505
1506 * alloc.c alloc_tables.c badblocks.c bb_compat.c bb_inode.c
1507 bitmaps.c block.c bmove.c brel_ma.c check_desc.c closefs.c
1508 cmp_bitmaps.c dblist.c dblist_dir.c dir_iterate.c
1509 dirblock.c dupfs.c expanddir.c freefs.c get_pathname.c
1510 icount.c initialize.c inline.c inode.c irel_ma.c link.c
1511 llseek.c lookup.c mkdir.c namei.c newdir.c read_bb.c
1512 read_bb_file.c rs_bitmap.c rw_bitmaps.c swapfs.c
1513 test_io.c tst_badblocks.c tst_iscan.c unix_io.c unlink.c
1514 valid_blk.c version.c: Add an #ifdef for HAVE_UNISTD_H
1515
Theodore Ts'o024996c1997-06-17 05:38:35 +00001516Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1517
Theodore Ts'oa1230b11997-07-02 02:41:59 +00001518 * unix_io.c (unix_read_blk): If ext2fs_llseek() fails, but errno
1519 is zero, then return EXT2_IO_LLSEEK_FAILED.
1520
1521 * ext2_err.et.in: Add a new error code, EXT2_IO_LLSEEK_FAILED.
1522
Theodore Ts'o024996c1997-06-17 05:38:35 +00001523 * Release of E2fsprogs 1.11
1524
Theodore Ts'o549860c1997-06-17 03:55:00 +00001525Mon Jun 16 23:53:06 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1526
1527 * dblist.c (ext2fs_dblist_count): Added new function which returns
1528 the number of directory blocks in dblist.
1529
Theodore Ts'o36f21431997-06-14 07:25:40 +00001530Sat Jun 14 01:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1531
1532 * unix_io.c (unix_flush): Make the io_channel flush function do a
1533 fsync to flush the kernel buffers to disk.
1534
Theodore Ts'o9941fb71997-06-11 22:27:41 +00001535Wed Jun 11 18:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1536
1537 * inode.c (ext2fs_inode_scan_goto_blockgroup): Fix bug; the
1538 current inode number wasn't being set by the
1539 goto_blockgroup function.
1540
Theodore Ts'o1e1da291997-06-09 14:51:29 +00001541Mon Jun 9 10:45:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1542
1543 * bmove.c (ext2fs_move_blocks): New function which takes a bitmap
1544 of blocks which need to be moved, and moves those blocks
1545 to another location in the filesystem.
1546
1547 * rs_bitmap.c (ext2fs_resize_generic_bitmap): When expanding a
1548 bitmap, make sure all of the new parts of the bitmap are
1549 zero.
1550
1551Sun Jun 8 16:24:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1552
1553 * bitmaps.c (ext2fs_copy_bitmap): Fix bug; the destination bitmap
1554 wasn't being returned to the caller.
1555
1556 * alloc_tables.c (ext2fs_allocate_group_table): Add new function
1557 ext2fs_allocate_group_table() which sets the group tables
1558 for a particular block group. The relevant code was
1559 factored out of ext2fs_allocate_tables().
1560
1561 * dblist.c (make_dblist): Adjust the initial size of the directory
Theodore Ts'o024996c1997-06-17 05:38:35 +00001562 block list to be a bit more realistic (ten plus twice the
Theodore Ts'o1e1da291997-06-09 14:51:29 +00001563 number of directories in the filesystem).
1564
Theodore Ts'of635d7f1997-05-09 02:50:16 +00001565Thu May 8 22:19:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1566
1567 * badblocks.c (ext2fs_badblocks_list_test): Fix bug where
1568 ext2fs_badblocks_list_test would test the list (and exceed
1569 array boundaries) if there were no bad blocks on the bad
1570 blocks list. (Showed up when user tried: mke2fs -c -b 4096).
1571
Theodore Ts'oa29f4d31997-04-29 21:26:48 +00001572Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1573
1574 * Release of E2fsprogs version 1.10
1575
1576Thu Apr 24 10:13:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1577
1578 * alloc_tables.c (ext2fs_allocate_tables): Correctly place the
1579 inode and block bitmaps based on the RAID 0 stride
1580 parameter (which is passed by mke2fs).
1581
1582 * ext2fs.h: Add "stride" parameter to ext2_filsys, to be used by
1583 mke2fs to communicate the stride length to
1584 ext2fs_allocate_tables()
1585
1586Wed Apr 23 21:50:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1587
1588 * initialize.c (ext2fs_initialize): Fix to compile under Linux 1.2
1589 systems. (We can't assume that the new filesystem types
1590 are supported.)
1591
1592Wed Apr 23 18:40:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1593
1594 * alloc_tables.c (ext2fs_allocate_tables): Make sure that we
1595 allocate the inode and block bitmaps inside block group at
1596 all times.
1597
1598Mon Apr 21 00:06:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1599
1600 * alloc.c (ext2fs_new_block): Fix bug where if goal==0 and the
1601 filesystem has no free blocks, ext2fs_new_block would loop
1602 forever.
1603
1604 * dupfs.c (ext2fs_dup_handle): Duplicate an ext2 filesystem handle
1605
1606 * freefs.c (ext2fs_free_inode_cache): Decrement refcount and only
1607 free if refcount goes to zero.
1608
1609 * inode.c (create_icache): Initialize refcount to 1.
1610
1611 * ext2fsP.h: Added refcount to ext2_inode_cache
1612
1613 * dblist.c (ext2fs_copy_dblist): New function to copy a directory
1614 block list.
1615
1616 * badblocks.c (ext2fs_badblocks_copy): New function to copy a
1617 badblocks structure.
1618
1619Sun Apr 20 23:19:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1620
1621 * bitmaps.c (ext2fs_copy_bitmap): New function to copy a bitmap.
1622
1623 * unix_io.c, test_io.c (unix_open, test_open): Initialize the
1624 refcount to 1.
1625 (unix_close, test_close): Decrement the refcount and only
1626 close the io_channel if the refcount goes to 0.
1627
1628 * io.h: Add refcount to the io_channel structure. Add new macro
1629 interface io_channel_bumpcount() to bump the refcount.
1630
1631Thu Apr 17 20:25:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1632
1633 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Use the inode
1634 cache in the filesystem handle, instead of the inode cache
1635 in a static variable.
1636
1637 * freefs.c: Added static function to free the inode cache (called by
1638 ext2fs_free).
1639
1640 * ext2fsP.h: Added definition of the ext2_inode_cache structures.
1641
1642 * ext2fs.h: Added pointer to the inode_cache structure.
1643
1644 * block.c (block_iterate_ind, block_iterate_dind,
1645 block_iterate_tind): If there are holes in the indirect,
1646 doubly indirect, or triply indirect blocks, increment the
1647 block count field automatically.
1648
1649Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1650
1651 * Release of E2fsprogs version 1.09
1652
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +00001653Mon Apr 14 20:38:56 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1654
1655 * version.c (ext2fs_parse_version_string): Check the passed in
1656 version string (instead of the hard-coded one).
1657
1658 * alloc_tables.c (ext2fs_allocate_tables): If the last block is
1659 greater filesystem size, clamp it to prevent allocating a
1660 block or inode bitmap beyond the filesystem.
1661
1662 * initialize.c (ext2fs_initialize): Fix bug where the metatdata
1663 overhead calculation was accidentally removed.
1664
1665Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1666
1667 * Release of E2fsprogs version 1.08
1668
Theodore Ts'o521e3681997-04-29 17:48:10 +00001669Thu Apr 10 13:15:15 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1670
1671 * dblist.c (ext2fs_set_dir_block): New function which sets the
1672 block of a dblist entry, given the directory inode and
1673 blockcnt.
1674
1675Sat Apr 5 12:42:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1676
1677 * alloc_tables.c (ext2fs_allocate_tables): Allocate the bitmap and
1678 inode bitmaps at staggered locations across the block
1679 groups, to avoid concentrating the bitmaps on a small
1680 number of disks when using striped RAID arrays.
1681
1682 * initialize.c (ext2fs_initialize): By default, choose the maximum
1683 possible number of blocks per group (based on the size of
1684 the bitmaps in the blocksize).
1685
1686Fri Apr 4 11:28:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1687
1688 * initialize.c (ext2fs_initialize): Add support for
1689 EXT2_COMPAT_SPARSE_SUPER feature.
1690
1691 * closefs.c (ext2fs_bg_has_super): New function to determine
1692 whether or a particular block group should have a
1693 superblock and block group descriptor. Used for the
1694 EXT2_COMPAT_SPARSE_SUPER feature is turned on.
1695 (ext2fs_flush): Check ext2fs_bg_has_super to see whether
1696 or not the superblock should be written out for the block
1697 group.
1698
1699 * ext2fs.h (EXT2_COMPAT_SPARSE_SUPER): Define compatibility flag
1700 for sparse duplicate superblocks.
1701
1702 * version.c (ext2fs_get_library_version): New function which
1703 returns the library version.
1704
1705 * version.c (ext2fs_parse_version_string): New function which
1706 parses a version string and returns a version number,
1707 so application programs can compare version numbers as
1708 integers.
1709
1710Wed Mar 26 00:43:52 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1711
1712 * icount.c (ext2fs_create_icount): Change function so that it also
1713 takes a new argument which contains a "hint" icount
1714 structure. This "hint" icount allows the create function
1715 to set up the sorted list in advance. This reduces
1716 significantly the amount of data moving needed to insert
1717 these inodes into the list later.
1718
1719 * icount.c (ext2fs_icount_validate): New function which validates
1720 that the icount structure's rep invariant.
1721
1722 * icount.c (get_icount_el): Completely revamped implementation
1723 to subsume put_icount_el(). Put_icount_el() used to
1724 use an O(N) implementation to insert in the middle
1725 of the icount list. It now uses a O(ln N) to search
1726 for where the icount should be inserted, and then uses
1727 a memcpy to move the list down (instead of a for loop).
1728
1729 * icount.c (ext2fs_icount_fetch, ext2fs_icount_store,
1730 ext2fs_icount_increment, ext2fs_icount_decrement): Check
1731 to see if the inode is within bounds; if it isn't, return
1732 EINVAL.
1733
1734 * bitops.h (ext2fs_test_generic_bitmap): Fix error message given
1735 when a bad inode number is passed to test_generic_bitmap
1736 to be EXT2FS_TEST_ERROR instead of the wrong
1737 EXT2FS_UNMARK_ERROR.
1738
Theodore Ts'o21c84b71997-04-29 16:15:03 +00001739Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
1740
1741 * Release of E2fsprogs version 1.07
1742
1743Sun Mar 2 16:46:18 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1744
1745 * Makefile.in (ELF_VERSION): Change version to be 2.2
1746
1747Tue Feb 11 14:54:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1748
1749 * alloc.c (ext2fs_get_free_blocks): Change routine to use
1750 ext2fs_fast_test_block_bitmap_range().
1751
1752 * bitops.h (ext2fs_fast_test_block_bitmap_range,
1753 ext2fs_test_block_bitmap_range: New inline functions which
1754 test to see whether a contiguous range of blocks is
1755 available.
1756
1757Thu Feb 6 10:00:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1758
1759 * badblocks.c (ext2fs_badblocks_list_create): Rename sybmols to use
1760 use ext2fs_badblocks_* instead of badblocks_*
1761
1762 * bb_compat.c: New file which translates between old badblocks_*()
1763 names to ext2fs_badblocks_*()
1764
1765 * unlink.c (ext2fs_unlink): New file, moved ext2fs_unlink() from
1766 link.c (since e2fsck doesn't use ext2fs_unlink()).
1767
1768 * rs_bitmap.c (ext2fs_resize_generic_bitmap): New file, contains
1769 bitmap resizing routine moved from bitmaps.c, since e2fsck
1770 doesn't need to use this function.
1771
1772 * lookup.c (ext2fs_lookup): Moved ext2fs_lookup to its own file,
1773 since e2fsck only needs ext2fs_lookup.
1774
1775Mon Feb 3 10:11:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1776
1777 * inode.c (ext2fs_open_inode_scan): Set fs->badblocks if it is not
1778 already set; this is needed so that programs like dump
1779 which use the inode scan functions will deal with
1780 filesystems that have bad blocks in the inode table.
1781
1782Sun Feb 2 00:17:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1783
1784 * ext2fs.h (struct_badblocks_list, struct_badblocks_iterate):
1785 Moved to ext2fsP.h, since it doesn't need to be part of
1786 the public interface.
1787
1788 * dir_iterate.c: Move ext2_dir_iterate out of namei.c.
1789
1790Sat Feb 1 10:14:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1791
1792 * dblist.c (ext2fs_get_num_dirs): New file, which implements a
1793 directory block list abstraction. (Code moved from
1794 e2fsck).
1795
1796 * ext2fs.h, inode.c: Moved definition of ext2_struct_inode_scan to
1797 to inode.c (since no one else should be peeking inside it!)
1798
1799 * valid_blk.c (ext2_inode_has_valid_blocks): New function.
1800
1801 * openfs.c (ext2fs_open): Check the feature set in the ext2
1802 superblock, and refuse to open filesystems if they contain
1803 incompatible features. (Can be overriden with the
1804 EXT2_FLAG_FORCE
1805
1806Sun Jan 12 11:31:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1807
1808 * block.c (ext2fs_block_iterate2): Added new function
1809 ext2fs_block_iterate2 which changes the function
1810 signature of the callback function to include the
1811 referencing block and offset.
1812
1813 * inode.c (ext2fs_inode_scan_goto_blockgroup): Added new function
1814 ext2fs_inode_scan_goto_blockgroup which allows an
1815 application to jump to a particular block group while
1816 doing an inode scan.
1817
1818Wed Jan 1 23:50:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1819
1820 * dirblock.c: Include string.h, since we use memcpy().
1821
1822Tue Dec 3 12:27:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1823
1824 * getsize.c (ext2fs_get_device_size): The ioctl BLKGETSIZE returns
1825 a long not an int; this doesn't matter on i386 machines,
1826 but it does on Alpha's.
1827
1828Fri Nov 29 20:57:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1829
1830 * inode.c (ext2fs_write_inode, ext2fs_read_inode): If the inode
1831 table pointer is NULL, then return an error indicating
1832 that the inode table is missing.
1833 (get_next_blockgroup, get_next_blocks,
1834 ext2fs_get_next_inode): Don't treat a missing inode table
1835 as permanent error. Return MISSING_INODE_TABLE, but as an
1836 advisory error code, much like BAD_BLOCK_IN_INODE_TABLE.
1837
1838 * rw_bitmaps.c (ext2fs_write_block_bitmap,
1839 ext2fs_write_inode_bitmap): If the inode or block bitmap
1840 block is zero, then don't write out the inode or block
1841 bitmap. The idea here is to avoid stomping on the
1842 superblock.
1843 (read_bitmaps): If the inode or block bitmap block is
1844 zero, then fill in that portion of the inode or block
1845 bitmap with all zeros.
1846
1847 * inode.c (ext2fs_get_next_inode): Fix bug in handling of bad
1848 blocks in inode table when the inode table size is
1849 non-standard (and can therefore span blocks).
1850
1851Tue Oct 29 20:13:14 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1852
1853 * alloc.c (ext2fs_new_block): Fix fencepost error in
1854 ext2fs_new_block; make sure we don't try to allocate the
1855 first block beyond the end of the filesystem.
1856
1857Mon Oct 14 11:00:48 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1858
1859 * inode.c (check_for_inode_bad_blocks): New function called by
1860 get_next_blocks() to avoid reading in bad blocks marked in
1861 fs->badblocks. Inodes located in bad blocks are returned
1862 by ext2fs_get_next_inode() returns the error code
1863 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE.
1864
1865 * alloc_tables.c (ext2fs_allocate_tables): New function which
1866 performs the part of mke2fs's job of allocating the
1867 filesystem tables.
1868
1869 * test_io.c (test_close): IO manager which is used for testing
1870 purposes.
1871
1872Sun Oct 13 04:31:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1873
1874 * inode.c (ext2fs_get_next_inode): Separate out the function of
1875 setting up for a new block group to get_next_blockgroup().
1876 Separate out the function of reading in blocks of the
1877 inode table to get_next_blocks().
1878
1879 * ext2fs.h: Add the badblocks list to the ext2_filsys entry
1880
1881 * badblocks.c (badblocks_list_add, badblocks_list_test): Add
1882 blocks to the badblock list in sorted order. This allows
1883 badblocks_list_test to be coded using a binary search for
1884 speed.
1885
1886Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1887
1888 * Release of E2fsprogs version 1.06
1889
Theodore Ts'o5c576471997-04-29 15:29:49 +00001890Mon Oct 7 00:44:17 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1891
1892 * ext2fs.h, block.c, closefs.c, dirblock.c, inode.c, native.c,
1893 open.c: Change EXT2_SWAP to EXT2_FLAG_SWAP for
1894 consistency's sake.
1895
1896 * closefs.c (ext2fs_flush): If the flag EXT2_MASTER_SB_ONLY is
1897 set, then only write out the master superblock.
1898
1899Sun Oct 6 21:45:26 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1900
1901 * block.c (ext2fs_block_iterate): Fixed bug which caused
1902 block_iterate to fail to handle HURD created filesystems;
1903 it tested the inode translator field before the inode was
1904 loaded.
1905
1906Tue Sep 17 14:08:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1907
1908 * initialize.c (ext2fs_initialize): Make sure the description for
1909 the inode bitmap is set correctly.
1910
1911 * bitmaps.c (ext2fs_allocate_generic_bitmap): Fix minor type typo.
1912
1913Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1914
1915 * Release of E2fsprogs version 1.05
1916
Theodore Ts'o1e3472c1997-04-29 14:53:37 +00001917Sat Sep 7 07:36:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1918
1919 * initialize.c: Override the kernel's idea of default
1920 checkinterval from 0 (never) to 180 days.
1921
1922Wed Aug 28 03:20:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1923
1924 * namei.c (ext2fs_namei_follow): New function which follows
1925 symbolic link (if any) at the target.
1926
1927Tue Aug 27 01:48:43 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1928
1929 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Add support
1930 for shortcut function fs->read_inode() and fs->write_inode().
1931 Added inode_cache to reduce CPU time spent in doing
1932 byte swapping.
1933
1934 * swapfs.c (ext2fs_swap_super): Swap the new fields in a V2
1935 superblock.
1936
1937 * namei.c (ext2fs_follow_link): New function.
1938 (ext2fs_namei): Extended to have support for chasing
1939 symbolic links. ext2fs_namei() still returns an inode
1940 which is a symbolic link. Symbolic links are only chased
1941 while resolving the containing directory. To chase
1942 symbolic links of the final result, use
1943 ext2fs_follow_link().
1944
1945Mon Aug 26 23:46:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1946
1947 * ext2_err.et.in: Added new error code EXT2_ET_SYMLINK_LOOP.
1948
1949 * bitops.h (ext2fs_set_bit, ext2fs_celar_bit): Use asm inlines
1950 provided by Pete A. Zaitcev (zaitcev@lab.sun.mcst.ru).
1951
1952Thu Aug 22 00:40:18 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1953
1954 * initialize.c (ext2fs_initialize): On systems where the byte
1955 order is not i386 compatible, set the swap_byte flag.
1956
1957 * inode.c (inocpy_with_swap): Check to see if inode contains a
1958 fast symlink before swapping the inode block fields. This
1959 required adding a new argument to inocpy_with_swap to
1960 determine whether the mode field is in host order or not.
1961
1962Wed Aug 21 00:45:42 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1963
1964 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit): On
1965 the sparc, if EXT2_STD_BITOPS set, use the standard
1966 i386-compatible bitmask operations, instead on the
1967 non-standard native bitmask operators.
1968
1969Fri Aug 9 11:11:35 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1970
1971 * block.c (ext2fs_block_iterate): Cause block iterator to return
1972 the HURD translator block (along with everything else).
1973 If the flag BLOCK_FLAG_DATA_ONLY is passed to the block
1974 iterator, then don't return any meta data blocks
1975 (including the HURD translator).
1976
1977Wed Jul 17 17:13:34 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1978
1979 * gen_uuid.c: New file, which generates DCE-compatible UUIDs.
1980
1981 * uuid.c: New file, containing UUID utility functions.
1982
1983Tue Jul 16 10:19:16 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1984
1985 * ext2fs.h: Add a definition of the "real" ext2 superblock.
1986
1987Fri May 24 14:54:55 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1988
1989 * ext2fs.h: Fix erroneous ino_t type used in block_bitmap type.
1990
1991Sun May 19 15:39:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1992
1993 * openfs.c (ext2fs_open): If the blocksize in the superblock is
1994 zero, return the error EXT2_ET_CORRUPT_SUPERBLOCK, since
1995 that's a basic value that must be correct for the rest of
1996 the library to work.
1997
1998 * ext2_err.et.in (EXT2_ET_CORRUPT_SUPERBLOCK): Added new error
1999 code.
2000
Theodore Ts'o62c06f71997-04-29 14:34:47 +00002001Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2002
2003 * Release of E2fsprogs version 1.04
2004
Theodore Ts'o7f88b041997-04-26 14:48:50 +00002005Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
2006
2007 * Release of E2fsprogs version 1.03
2008
2009Tue Mar 26 12:06:32 1996 <tytso@rsts-11.mit.edu>
2010
2011 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit):
2012 Change the m68k bit numbering for bitmasks to match with
2013 the bit numbering used by all other ext2 implementations.
2014
2015Thu Mar 7 03:37:00 1996 <tytso@rsts-11.mit.edu>
2016
2017 * inode.c (ext2fs_get_next_inode, ext2fs_close_inode_scan,
2018 ext2fs_open_inode_scan): Support dynamically-sized inodes.
2019
2020Wed Mar 6 12:26:29 1996 <tytso@rsts-11.mit.edu>
2021
2022 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Support
2023 dynamically-sized inodes.
2024
2025 * openfs.c (ext2fs_open): Allow dynamic revision filesystem to be
2026 loaded.
2027
2028Tue Mar 5 03:49:37 1996 <tytso@rsts-11.mit.edu>
2029
2030 * initialize.c (ext2fs_initialize): Catch an error condition where
2031 the passed in size is *really* too small.
2032
2033 * alloc.c (ext2fs_new_inode):
2034 * ext2fs.h (EXT2_FIRST_INODE): Add support for dynamic revision to
2035 get first inode.
2036
2037Wed Feb 21 15:56:17 1996 <tytso@rsts-11.mit.edu>
2038
2039 * getsize.c (ext2fs_get_device_size): Open the device read-only
2040 when trying to determine its size.
2041
Theodore Ts'o74becf31997-04-26 14:37:06 +00002042Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
2043
2044 * Release of E2fsprogs version 1.02
2045
2046Sat Dec 9 09:57:50 1995 <tytso@rsts-11.mit.edu>
2047
2048 * rw_bitops.c (ext2fs_write_block_bitmap):
2049 * bitops.c (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
2050 * bitops.h (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
2051 Rename {test,set,clear}_bit to ext2fs_{test,set,clear}_bit,
2052 to avoid conflicts with with kernel include files. Also
2053 rename ADDR and CONST_ADDR to EXT2FS_ADDR and
2054 EXT2FS_CONST_ADDR.
2055
Theodore Ts'o50e1e101997-04-26 13:58:21 +00002056Thu Oct 26 12:09:16 1995 <tytso@rsts-11.mit.edu>
2057
2058 * ext2_err.et: Updated message in EXT2_ET_BASE to say version 0.5c
2059
2060 * swapfs.c (ext2fs_swap_super): Put an #ifdef check around
2061 s_def_resuid and s_def_resgid for backwards compatibility.
2062
2063Fri Oct 20 23:33:31 1995 <tytso@rsts-11.mit.edu>
2064
2065 * bitops.h: Added #ifdef's for Sparc.
2066
2067Wed Sep 6 22:14:46 1995 <tytso@rsts-11.mit.edu>
2068
2069 * getsize.c: #include <sys/ioctl.h> under Linux to pick up ioctl()
2070 declaration
2071
2072 * closefs.c: #include <string.h> to pick up memset() declaration
2073
2074Mon Sep 4 21:45:29 1995 Remy Card <card@bbj>
2075
2076 * Makefile.in: Added support for BSD shared libraries.
2077
2078 * initialize.c (ext2fs_initialize): Correctly set the s_creator_os
2079 flag.
2080
2081Mon Sep 4 09:55:30 1995 <tytso@rsts-11.mit.edu>
2082
2083 * unix_io.c (unix_open): Add a double check; if the passed in name
2084 is NULL, return EXT2_ET_BAD_DEVICE_NAME.
2085
2086 * ext2_err.et (EXT2_ET_BAD_DEVICE_NAME): Added new error code
2087
2088Wed Aug 16 15:44:10 1995 <tytso@rsts-11.mit.edu>
2089
2090 * inode.c (ext2fs_check_directory): Use LINUX_S_ISDIR instead of
2091 S_ISDIR.
2092
2093Tue Aug 15 13:08:36 1995 <tytso@rsts-11.mit.edu>
2094
2095 * getsize.c (ext2fs_get_device_size): Add support for reading the
2096 partition size from a BSD disk label.
2097
2098Thu Aug 10 09:33:26 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2099
2100 * getsize.c (ext2fs_get_device_size): New function that determins
2101 the size of a device. Used by mke2fs and e2fsck.
2102
2103Sat Aug 12 03:09:54 1995 Remy Card <card@bbj>
2104
2105 * Makefile.in (install): Install static libraries in $(ulibdir)
2106 (/usr/lib on Linux) instead of $(libdir) (/lib on Linux).
2107
2108Wed Aug 9 17:04:23 1995 Theodore Y. Ts'o <tytso@dcl>
2109
2110 * bitmaps.c (ext2fs_free_inode_bitmap, ext2fs_free_block_bitmap):
2111 Move these functions to freefs.c.
2112
2113 * closefs.c (ext2fs_flush): If swapping blocks, clear the group
2114 descriptors shadow memory to keep purify quiet. (This
2115 also has the nice benefit that the unused portion of the
2116 shadow descriptors are zeroed out.)
2117
2118 * dirblock.c (ext2fs_write_dir_block): We need to use
2119 dirent->rec_len *before* it's byteswapped to find the
2120 location of the next directory structure!
2121
2122 * alloc.c (ext2fs_new_inode): Fix bug which could potentially
2123 cause ext2fs_new_inode to loop infinitely if we're trying
2124 to allocate an inode in group #0 and there are no free
2125 inodes at all in the system.
2126
2127 * closefs.c: #include <errno.h> if it exists.
2128
2129Sun Aug 6 13:27:50 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2130
2131 * ext2fs.h (BLOCK_FLAG_HOLE): Added new definition for
2132 BLOCK_FLAG_APPEND. Added documentation for the block
2133 interator flags.
2134
2135Sat Aug 5 11:44:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2136
2137 * Makefile.in (DLL_INSTALL_DIR, ELF_INSTALL_DIR): Set the
2138 installation directories correctly.
2139
2140Tue Jul 18 09:27:38 1995 <tytso@rsx-11.mit.edu>
2141
2142 * namei.c (process_dir_block):
2143 * mkdir.c (ext2fs_mkdir):
2144 * expanddir.c (expand_dir_proc): Use ext2fs_{read,write}_dir_block
2145 to read/write the directory block.
2146
2147 * dirblock.c (ext2fs_read_dir_block), ext2fs_write_dir_block): New
2148 file containing functions for reading and writing
2149 directory blocks (byte swapping if necesssary)
2150
2151 * block.c (block_iterate_ind, block_iterate_dind,
2152 block_iterate_tind): Byte swap the block addresses if
2153 EXT2_SWAP_BYTES is set (and swap them back before writing
2154 them out.)
2155
2156 * inode.c (inocpy_with_swap): New function.
2157 (ext2fs_get_next_inode, ext2fs_read_inode, ext2fs_write_inode):
2158 Call inocpy_with_swap if EXT2_SWAP_BYTES if set.
2159
2160 * closefs.c (ext2fs_flush): If EXT2_SWAP_BYTES is set, then swap
2161 the superblock and group descriptors before writing it out.
2162
2163 * openfs.c (ext2fs_open): If the magic number is byte-swapped,
2164 then set the EXT2_SWAP_BYTES and byte-swap the superblock
2165 and group descriptors.
2166
2167 * swapfs.c (ext2fs_swap_super, ext2fs_swap_group_desc): New functions
2168 to desp ext2 filesystem structures.
2169
2170 * bitops.c (set_bit, clear_bit, test_bit): Use modifications
2171 supplied by Pete A. Zaitcev so that the C language
2172 versions of these functions are more portable. They will
2173 now work on both little and big endian systems, and the
2174 assumption that 32-bit integers are used is gone.
2175
2176 * bitops.h (ext2_swab16, ext2_swab32): Added new functions for
2177 doing byte swapping.
2178
2179 * ext2fs.h (EXT2_SWAP_BYTES): Add new flag which indicates that
2180 byte swapping should take place.
2181
2182Sun Jul 16 06:21:43 1995 <tytso@rsx-11.mit.edu>
2183
2184 * Makefile.in, cmp_bitmaps.c (ext2fs_compare_block_bitmap_end,
2185 ext2fs_compare_inode_bitmap_end): Added new file
2186 containing routines to compare bitmaps.
2187
2188 * ext2_err.et (EXT2_ET_NEQ_BLOCK_BITMAP, EXT2_ET_NEQ_INODE_BITMAP):
2189 Added new error codes.
2190
2191Sat Jul 15 04:23:37 1995 <tytso@rsx-11.mit.edu>
2192
2193 * inode.c (ext2fs_get_next_inode): Don't check scan->inode_buffer;
2194 if the magic number is correct, it will be allocated.
2195
2196Fri Jul 14 19:02:59 1995 <tytso@rsx-11.mit.edu>
2197
2198 * block.c (block_iterate_ind, block_iterate_dind,
2199 block_iterate_tind): Don't recompute block_nr each loop;
2200 just increment it! Factor check of BLOCK_FLAG_APPEND out
2201 of the loop. Factor mask of BLOCK_CHANGED into changed
2202 variable out of the loop. (block_iterate_ind, in
2203 particular, gets called a lot, so every little
2204 optimization helps.)
2205
2206Thu Jul 13 08:02:45 1995 <tytso@rsx-11.mit.edu>
2207
2208 * block.c (block_iterate_ind, block_iterate_dind,
2209 block_iterate_tind): Precompute limit of loop to speed up
2210 block_iterate_ind and company.
2211
2212 * bitops.h (ext2fs_fast_mark_block_bitmap,
2213 ext2fs_fast_unmark_block_bitmap, ext2fs_fast_test_block_bitmap,
2214 ext2fs_fast_mark_inode_bitmap, ext2fs_fast_unmark_inode_bitmap,
2215 ext2fs_fast_test_inode_bitmap): Add fast version of these
2216 functions, which don't do range checking.
2217
2218 * bitops.h (ext2fs_get_block_bitmap_start,
2219 ext2fs_get_inode_bitmap_start, ext2fs_get_block_bitmap_end,
2220 ext2fs_get_inode_bitmap_end): Add new accessor functions
2221 which return the start and end points of the bitmaps.
2222
2223Tue Jul 11 18:59:41 1995 <tytso@rsx-11.mit.edu>
2224
2225 * llseek.c (ext2_llseek): If the offset is small enough, use lseek
2226 instead of llseek. The errno if the offset is too large
2227 and lseek is not supported should be EINVAL, not -EINVAL.
2228
2229Thu Jun 15 23:43:02 1995 Remy Card <card@bbj>
2230
2231 * Makefile.in: Added support for ELF shared libraries.
2232 Fixed typos in the compilation rules.
2233 (distclean): Added Makefile.
2234
2235 * llseek.c (llseek): New function, if llseek() does not exist in the
2236 C library.
2237 (ext2_llseek): Changed to call llseek().
2238
2239Mon Jun 12 08:29:07 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2240
2241 * ext2fs.h: Use __u32 to define blk_t, instead of unsigned long.
2242
2243Sun Jun 11 15:02:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2244
2245 * mkdir.c (ext2fs_mkdir): Use LINUX_S_IFDIR instead of S_IFDIR.
2246
2247 * ext2fs.h (LINUX_S_IFDIR): Define a linux specific versions of
2248 the S_*, which are normally defined in <sys/stat.h>. This
2249 allows us to compile e2fsprogs on a non-Linux system,
2250 which may have a different value for S_IFDIR.
2251
2252Sat Jun 10 23:47:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2253
2254 * bitops.c (clear_bit, set_bit): Remove calls to cli() and sti();
2255 this is a user-mode application!
2256
2257Thu Jun 8 13:13:22 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
2258
2259 * llseek.c: Put the include of <linux/unistd.h> inside the #ifdef
2260 __linux__ so that non-linux systems won't see it.
2261
2262 * alloc.c: Include <errno.h> if possible.
2263 * badblocks.c: Ditto.
2264 * bb_inode.c: Ditto.
2265 * bitmaps.c: Ditto.
2266 * block.c: Ditto.
2267 * expanddir.c: Ditto.
2268 * get_pathname.c: Ditto.
2269 * initialize.c: Ditto.
2270 * inode.c: Ditto.
2271 * llseek.c: Ditto.
2272 * mkdir.c: Ditto.
2273 * namei.c: Ditto.
2274 * newdir.c: Ditto.
2275 * openfs.c: Ditto.
2276 * rw_bitmaps.c: Ditto.
2277 * unix_io.c: Ditto.
2278
2279 * Makefile.in: Rewritten to conform to GNU coding standards and
2280 support separate compilation directories.
2281
2282Thu May 11 04:13:12 1995 <tytso@rsx-11.mit.edu>
2283
2284 * initialize.c (ext2fs_initialize): Don't allow more than one
2285 bitmaps's worth of inodes in a group.
2286
Theodore Ts'of3db3561997-04-26 13:34:30 +00002287Sat Mar 11 14:07:11 1995 Theodore Y. Ts'o <tytso@localhost>
2288
2289 * llseek.c (ext2_llseek): Added error checking to the llseek()
2290 compat code to protect against overflow. This only
2291 applies to 1.0 and early 1.1 kernels, which don't support
2292 the llseek() system call.
2293
2294Thu Nov 24 16:29:00 1994 Theodore Y. Ts'o (tytso@rt-11)
2295
2296 * unix_io.c (unix_open): Initialize the read_error and write_error
2297 io_channel pointers to be null.
2298
2299 * bb_inode.c (clear_bad_block_proc): If an illegal block number is
2300 found, clear it but don't try to update the filesystem
2301 accounting information, since that's hopeless anyway.
2302
2303 * block.c (bloblock_iterate_ind, bloblock_iterate_dind,
2304 bloblock_iterate_tind): Check to see if the indirect blocks are
2305 valid before trying to read them.
2306
2307 * ext2_err.et (EXT2_ET_BAD_IND_BLOCK, EX2_ET_BAD_DIND_BLOCK,
2308 EXT2_ET_BAD_TIND_BLOCK): Add new error codes.
2309
2310 * bitops.h (ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
2311 ext2fs_test_block_bitmap, ext2fs_mark_inode_bitmap,
2312 ext2fs_unmark_inode_bitmap, ext2fs_test_inode_bitmap): If an
2313 illegal block or inode number is passed in, return instead
2314 of trying to test, set, or clear the bit.
2315
2316Mon Nov 7 21:32:33 1994 Remy Card <card@bbj>
2317
2318 * Makefile: Added a dummy install target in case shared libraries
2319 are not built.
2320
2321Mon Oct 24 14:11:44 1994 (tytso@rsx-11)
2322
2323 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix calculation of how
2324 the real last block of the bitmap should be calculated.
2325
2326Wed Sep 7 10:05:36 1994 (tytso@rsx-11)
2327
2328 * bitmaps.c (ext2fs_fudge_inode_bitmap_end,
2329 ext2fs_fudge_block_bitmap_end, ext2fs_clear_inode_bitmap,
2330 ext2fs_clear_block_bitmap, ext2fs_free_inode_bitmap,
2331 ext2fs_free_block_bitmap): Add magic number checking for
2332 the inode and block bitmaps.
2333
2334 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix to set the correct
2335 magic number for a block bitmap instead of an inode bitmap.
2336
2337 * inode.c (ext2fs_close_inode_scan, ext2fs_get_next_inode): Add
2338 magic number checking for the inode_scan structure.
2339
2340 * badblocks.c (badblocks_list_free, badblocks_list_add,
2341 badblocks_list_test, badblocks_list_iterate_begin,
2342 badblocks_list_iterate, badblocks_list_iterate_end): Add
2343 magic number checking for the badblocks_list and
2344 badblocks_iterate structures.
2345
2346 * ext2_err.et (EXT2_ET_MAGIC_UNIX_IO_CHANNEL):
2347 * unix_io.c (unix_open, unix_close, unix_set_blksize, unix_read_blk,
2348 unix_write_blk, unix_flush): Add magic number checking
2349 both for io_channel structure and unix_private_data
2350 structure.
2351
2352 * openfs.c (ext2fs_open): Add check for io_manager structure's
2353 magic number.
2354
2355 * rw_bitmaps.c (ext2fs_write_inode_bitmap, ext2fs_write_block_bitmap,
2356 ext2fs_read_inode_bitmap, ext2fs_read_block_bitmap,
2357 ext2fs_read_bitmaps, ext2fs_write_bitmaps):
2358 * read_bb.c (ext2fs_read_bb_inode):
2359 * read_bb_file.c (ext2fs_read_bb_FILE):
2360 * newdir.c (ext2fs_new_dir_block):
2361 * namei.c (ext2fs_dir_iterate, ext2fs_lookup, ext2fs_namei):
2362 * link.c (ext2fs_link, ext2fs_unlink):
2363 * inode.c (ext2fs_open_inode_scan, ext2fs_read_inode,
2364 ext2fs_write_inode, ext2fs_get_blocks,
2365 ext2fs_check_directory):
2366 * get_pathname.c (ext2fs_get_pathname):
2367 * expanddir.c (ext2fs_expand_dir):
2368 * block.c (ext2fs_block_iterate):
2369 * bitmaps.c (ext2fs_allocate_inode_bitmap,
2370 ext2fs_allocate_block_bitmap):
2371 * bb_inode.c (ext2fs_update_bb_inode):
2372 * alloc.c (ext2fs_new_inode,ext2fs_new_block,ext2fs_get_free_blocks):
2373 * check_desc.c (ext2fs_check_desc):
2374 * closefs.c (ext2fs_close, ext2fs_flush):
2375 * freefs.c (ext2fs_free): Add check for ext2_filsys magic number.
2376
2377 * Makefile:
2378 * ext2fs.h:
2379 * openfs.c:
2380 * check_desc.c (ext2fs_check_desc): Move ext2fs_check_desc from
2381 openfs.c into its own file.
2382
2383 * ext2fs.h (EXT2_CHECK_MAGIC): Added macro for checking for
2384 structure magic numbers.
2385
2386 * closefs.c (ext2fs_flush): Folded in Remy Card's changes to clear
2387 the EXT2_VALID_FS flag in the backup superblock blocks, so that if
2388 someone uses the -b option to specify the use of the backup
2389 superblock --- this usually means that the main superblock is
2390 toast. :-)
2391
2392 * ext2fs.h:
2393 * ext2_err.et (EXT2_ET_REV_TOO_HIGH):
2394 * openfs.c (ext2fs_open): Folded in Remy Card's changes to add a
2395 revision level to the superblock.
2396
2397Sun Aug 21 00:50:08 1994 Theodore Y. Ts'o (tytso@rt-11)
2398
2399 * ext2fs.h:
2400 * bitmaps.c:
2401 * bitops.c
2402 * bitops.h:
2403 * openfs.c:
2404 * initialize.c: Completely revamped the inode and block bitmap
2405 structures, so that they can be better chance of being extensible
2406 in a shared library. They are now their own type, instead of
2407 being a char *. Also, the function signatures of
2408 ext2fs_test_block_bitmap, ext2fs_mark_block_bitmap,
2409 ext2fs_unmark_block_bitmap, ext2fs_test_inode_bitmap,
2410 ext2fs_mark_inode_bitmap, and ext2fs_unmark_inode_bitmap were
2411 changed to eliminate the ext2_filsys argument, since it is no
2412 longer necessary.
2413
2414Wed Aug 17 21:46:44 1994 Remy Card (card@bbj)
2415
2416 * unix_io.c (unix_read_blk and unix_write_blk): use the llseek
2417 system call if available.
2418
2419 * llseek.c: new file. This is the stub calling the llseek system
2420 call which allows supports for 2GB+ file systems.
2421
2422 * initialize.c (ext2fs_initialize): Ext2fs_initialize now stores
2423 the creator operating system.
2424
2425Wed Aug 17 10:03:24 1994 Theodore Y. Ts'o (tytso@rt-11)
2426
2427 * initialize.c (ext2fs_initialize): Ext2fs_initialize now sets up
2428 the group descriptor statistics in addition to everything else.
2429 This relieves mke2fs of the responsibility of doing it.
2430
2431 * bitops.c, bitops.h: Add assembly inline functions for the 68000.
2432 Added a new #define, _EXT2_HAVE_ASM_BITOPS_ to control whether or
2433 not the generic C function equivalents should be included or not.
2434
2435 * openfs.c (ext2fs_open): If a superblock is specified, then use
2436 the backup group descriptors that go along with this superblock,
2437 instead of using the primary group descriptors. This allows
2438 e2fsck to recover filesystems where the primary group descriptors
2439 have been trashed.
2440
2441