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