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