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