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