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