blob: 1eff91012dfe1651ba7e0e48acc3d60fd5eb6edc [file] [log] [blame]
Theodore Ts'o2cb403b2002-06-28 08:10:29 -040012002-06-28 Theodore Ts'o <tytso@mit.edu>
2
3 * bitops.h: Add #define's for ext2fs_{l,b}e{32,16}_to_cpu and
4 ext2fs_cpu_to_{l,b}e{32,16}
5
Theodore Ts'o5818d672002-06-27 21:19:45 -040062002-06-27 Theodore Ts'o <tytso@mit.edu>
7
8 * ismounted.c (check_mntent): In AIX 4.3, MOUNTED isn't defined.
9 Add appropriate fallbacks in this case.
10
Theodore Ts'o503f9e72002-06-26 16:52:10 -0400112002-06-26 Theodore Ts'o <tytso@mit.edu>
12
13 * dirhash.c (ext2fs_dirhash): Change function signature to support
14 a hash seed, and to return the minor hash (for 64-bit hash
15 support). Add support for the half MD4, half MD4 with
16 seed, and half MD4 with seed and 64 bits.
17
Theodore Ts'o88372d52002-06-15 18:58:39 -0400182002-06-15 Theodore Ts'o <tytso@mit.edu>
19
20 * ext2_fs.h (EXT2_DIRSYNC_FL): Add new file.
21
Andreas Dilger7da78ff2002-06-09 17:38:50 -0600222002-06-09 Andreas Dilger <adilger@clusterfs.com>
23
Andreas Dilgerb21bf262002-06-10 11:05:56 -060024 * ext2_fs.h: Add macros for maximum block/inode counts:
25 EXT2_INODES_PER_BLOCK, EXT2_MAX_BLOCKS_PER_GROUP,
26 and EXT2_MAX_INODES_PER_GROUP.
27
28 * openfs.c (ext2fs_open): Check that the number of blocks in a group
29 is less than 2^16, otherwise we need an INCOMPAT flag (not
30 in existence yet, if ever) to open such a filesystem.
31
32 * initialize.c (ext2fs_initialize): Limit the number of blocks and
33 inodes in a group to less than 2^16.
34
352002-06-09 Andreas Dilger <adilger@clusterfs.com>
36
Andreas Dilger7da78ff2002-06-09 17:38:50 -060037 * ext2_fs.h: Further minor cleanups of the header. Consolidate
38 some checks for __KERNEL__ into one place.
39
Andreas Dilger0fbd1a82002-05-23 00:32:34 -0600402002-05-22 Andreas Dilger <adilger@clusterfs.com>
41
42 * ext2_fs.h: Remove macros accessing u.ext2_sb field and use
43 the EXT2_SB() macro instead. Remove kernel function
44 prototypes also. This matches the 2.5 kernel, and
45 is also cleaner for other reasons. Whitespace cleanup.
46
Theodore Ts'o0d634672002-05-22 00:22:38 -0400472002-05-21 Theodore Ts'o <tytso@mit.edu>
48
49 * ext2_ext_attr.h: Update to V2 version of the Bestbits format.
50
Theodore Ts'o31e29a12002-05-17 10:53:07 -0400512002-05-16 Andreas Dilger <adilger@clusterfs.com>
52
53 * ext2_fs.h: Change limits to support filesystems with 8k blocks.
54
55 * initialize.c (ext2fs_initialize): Remove assumption that
56 blocksizes are always <= 4k.
57
582002-05-11 Theodore Ts'o <tytso@mit.edu>
Theodore Ts'ob38cd282002-05-11 22:13:20 -040059
60 * bmap.c (ext2fs_bmap): Fix bug which caused ext2fs_bmap to fail
61 silently if inode pointer is NULL (and ext2fs_bmap is
62 expected to read the inode itself).
63
Theodore Ts'o31e29a12002-05-17 10:53:07 -0400642002-04-27 Theodore Ts'o <tytso@mit.edu>
Theodore Ts'of0efd292002-04-27 17:07:52 -040065
66 * ismounted.c (check_mntent_file, is_swap_device): Verify that the
67 file we are checking is a block device file before looking
68 at st_rdev, since it's not valid for normal files.
69 (is_swap_device): Move so that it is outside the
70 HAVE_MNTENT_H, so that it is always built.
71
Theodore Ts'o52783e02002-03-11 15:04:45 -0500722002-03-11 Theodore Tso <tytso@mit.edu>
73
Theodore Ts'of9190c82002-03-12 01:05:06 -050074 * dirblock.c (ext2fs_read_dir_block2, ext2fs_write_dir_block): New
75 functions which take an extra flags argument. The flag
76 EXT2_DIRBLOCK_V2_STRUCT will reverse when the name_len
77 field is byte swampped on big-endian machines, since in
78 the V2 structure, name_len is a char field which is
79 doesn't need to be byte swapped --- except if an
80 old-style kernel had byte-swapped the name_len field
81 as part of the V1 structure.
82
Theodore Ts'o52783e02002-03-11 15:04:45 -050083 * ext2_err.et.in (EXT2_ET_DIRHASH_UNSUPP): New error code
84
85 * dirhash.c (ext2fs_dirhash): New function which calculates the
86 hash for a filename in an indexed directory.
87
Theodore Ts'oa8e77242002-03-08 03:12:14 -0500882002-03-08 Theodore Tso <tytso@mit.edu>
89
90 * Release of E2fsprogs 1.27
91
Theodore Ts'o304905d2002-03-07 20:55:01 -0500922002-03-07 Theodore Tso <tytso@mit.edu>
93
Theodore Ts'o546a1ff2002-03-07 23:52:56 -050094 * ext2fs.h (ext2fs_inode_io_intern): Add missing function prototype.
95
96 * bmap.c, fileio.c, inode_io.c, tst_badblocks.c,
97 tst_byteswap.c: Fix gcc -Wall complaints
98
Theodore Ts'o304905d2002-03-07 20:55:01 -050099 * Makefile.in (check): Use LD_LIBRARY_PATH to run test programs.
100 (From Philipp Thomas <pthomas@suse.de>)
101
Theodore Ts'o57173d02002-02-26 14:59:39 -05001022002-02-25 Theodore Tso <tytso@mit.edu>
Theodore Ts'odf614db2002-02-25 04:28:45 -0500103
104 * ext2_fs.h: Add structure definitions for the directory indexing
105 extension.
106
Theodore Ts'o57173d02002-02-26 14:59:39 -05001072002-02-23 Theodore Tso <tytso@mit.edu>
Theodore Ts'o64e1b272002-02-23 18:50:32 -0500108
109 * unix_io.c (unix_open): Fix 2.4 resource limit workaround so that
110 it doesn't break things on mis32, sparc32, and alpha
111 platforms.
112
Theodore Ts'o57173d02002-02-26 14:59:39 -05001132002-02-21 Theodore Tso <tytso@mit.edu>
Theodore Ts'of3e3d312002-02-21 20:48:25 -0500114
115 * ismounted.c (is_swap_device): Fix file descriptor/memory leak;
116 we were missing an fclose().
117
Theodore Ts'o57173d02002-02-26 14:59:39 -05001182002-02-20 Theodore Tso <tytso@mit.edu>
Theodore Ts'of12e2852002-02-20 01:06:25 -0500119
120 * Makefile.in, inode_io.c, ext2fs.h, ext2_err.et.in: Add new io
121 abstraction interface which exports an ext2 inode.
122
Theodore Ts'of3e3d312002-02-21 20:48:25 -0500123 * ext2fs.h, fileio.c (ext2fs_file_flush): Export ext2fs_file_flush
124 as a public interface. Change void * to const void * in
125 ext2fs_file_write's interface.
Theodore Ts'of12e2852002-02-20 01:06:25 -0500126
127 * test_io.c (test_close), unix_io.c (unix_close): Remove unneeded
128 conditional; save a few bytes.
129
Theodore Ts'o57173d02002-02-26 14:59:39 -05001302002-02-12 Theodore Tso <tytso@mit.edu>
Theodore Ts'o7d4343d2002-02-12 02:34:44 -0500131
132 * Makefile.in (tst_badblocks): Add some extra .o files when
133 linking the debugging program tst_badblocks which are
134 needed if we aren't compiling with inline functions enable.
135
136 * kernel-list.h (__inline__): On non-gcc and non-Watcom compilers,
137 define away __inline__ since it may not be supported.
138
139 * kernel-jbd.h (jbd_debug): For systems that don't do STDC, use a
140 stripped down jbd_debug that doesn't use variadic
141 arguments. This will cause warnings under AIX, but things
142 should still build.
143
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05001442002-02-03 Theodore Tso <tytso@thunk.org>
145
146 * Release of E2fsprogs 1.26
147
Theodore Ts'o57173d02002-02-26 14:59:39 -05001482002-02-03 Theodore Tso <tytso@mit.edu>
Theodore Ts'o7f961d42002-02-03 01:28:52 -0500149
150 * mkdir.c (ext2fs_mkdir): Change to use ext2fs_inode_alloc_stats2
151 so that the number of directories in use is adjusted
152 appropriately.
153
154 * alloc_stats.c (ext2fs_inode_alloc_stats2): Add new function
155 which optionally will modify the number of directories
156 count.
157
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05001582002-01-03 Theodore Tso <tytso@mit.edu>
Theodore Ts'o8bd0c952002-01-03 03:29:19 -0500159
160 * dir_iterate.c (ext2fs_dir_iterate2, ext2fs_process_dir_block):
161 Add support for a new flag, DIRENT_FLAG_INCLUDE_REMOVED,
162 which will return deleted directory entries.
163 ext2fs_dir_iterate2 takes a new callback function which
164 is identical with the one used by
165 ext2fs_dblist_dir_iterate(). If the directory entry is
166 deleted, the callback function will be called with the
167 entry paraemter set to DIRENT_DELETED_FILE.
168
169 * Makefile.in, alloc_stats.c (ext2fs_inode_alloc_stats,
170 ext2fs_block_alloc_stats): New functions which update
171 block/inode allocation statistics in the bitmaps, block
172 group descriptors, and superblock.
173
174 * mkjournal.c (mkjournal_proc), mkdir.c (ext2fs_mkdir),
175 expanddir.c (expand_dir_proc), bb_inode.c
176 (clear_bad_block_proc, set_bad_block_proc,
177 ext2fs_update_bb_inode), alloc.c (ext2fs_alloc_block):
178 Update to use new block/inode allocation statistics.
179
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05001802001-12-24 Theodore Tso <tytso@mit.edu>
Theodore Ts'oa8fd6e32001-12-24 01:40:35 -0500181
Theodore Ts'o07cefe72001-12-24 15:20:22 -0500182 * ismounted.c (is_swap_device): New function used by
183 ext2fs_check_if_mounted and ext2fs_check_mount_point which
184 determines whether or not the specified device is a swap
185 device by using /proc/swaps. More bulletproofing for
186 idiotic/careless system administrators!
187
Theodore Ts'o6a525062001-12-24 09:40:00 -0500188 * ext2fs.h, openfs.c (ext2fs_open), initialize.c
189 (ext2fs_initialize), mkdir.c (ext2fs_mkdir): Add a new
190 field to struct_ext2_filsys, umask. This field is
191 initialize to 022, and affects ext2fs_mkdir in the obvious
192 way. (In the future umask should also affect new file
193 creation routines, but the fileio functions don't
194 currently support this yes.)
195
Theodore Ts'oa8fd6e32001-12-24 01:40:35 -0500196 * ismounted.c (check_mntent_file): Stat all of the entries in
197 /etc/mtab and/or /proc/mounts in order to catch dim-witted
198 system administrators who might have created alias
199 devices.
200
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05002012001-12-23 Theodore Tso <tytso@mit.edu>
Theodore Ts'o19007e52001-12-23 19:33:51 -0500202
203 * Makefile.in, jfs_user.h: Move linux/jbd.h to
204 ext2fs/kernel-jbd.h, to avoid using the system header
205 file version of hbd.h when using diet glibc (since it
206 forcibly adds /usr/include to the beginning of the
207 include search path.)
208
209 * kernel-jbd.h, kernel-list.h, jfs_compat.h: Move files from
210 include/linux directory.
211
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05002122001-12-16 Theodore Tso <tytso@mit.edu>
Theodore Ts'o8cf93332001-12-16 02:23:36 -0500213
Theodore Ts'o4ea7bd02001-12-16 23:23:37 -0500214 * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap),
215 ext_attr.c (ext2fs_read_ext_attr, ext2fs_write_ext_attr),
216 fileio.c (ext2fs_file_write): Fix gcc -Wall nits
217
Theodore Ts'o8cf93332001-12-16 02:23:36 -0500218 * Makefile.in, jfs_user.h: linux/jfs.h has been renamed to
219 linux/jbd.h
220
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05002212001-12-03 Theodore Tso <tytso@mit.edu>
Theodore Ts'obd278802001-12-03 05:47:32 +0100222
223 * unix_io.c (unix_open): Make sure the ulimit workaround works
224 regardless of the version of glibc which is used to
225 compild e2fsprogs.
226
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05002272001-11-26 Theodore Tso <tytso@mit.edu>
Theodore Ts'o8880e752001-11-26 21:05:36 -0500228
229 * unix_io.c (unix_open): Work around a bug in 2.4.10+ kernels by
230 trying to unset the filesize limit if at all possible,
231 if a block device is getting opened. (The filesize limit
232 shouldn't be applied against writes to a block device, but
233 starting in 2.4.10, the kernel is doing this.)
234
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05002352001-11-05 Theodore Tso <tytso@mit.edu>
Theodore Ts'ob3f5b4c2001-11-05 19:22:02 -0500236
Theodore Ts'o5bc28df2001-11-09 17:34:54 -0500237 * mkjournal.c (ext2fs_add_journal_inode): When creating a .journal
238 file on adding a journal to an already-mounted filesystem,
239 try to clear the ext2 file attributes on an already
240 existing .journal file so that we don't fail if on a
241 partially added journal to the filesystem.
242
Theodore Ts'ob3f5b4c2001-11-05 19:22:02 -0500243 * ext2_fs.h: Define a new ext2 file attribute, EXT2_NOTAIL_FL,
244 which signals that a particular inode should not have the
245 last bits of data (the "tail") be merged with another
246 file. This is necessary to keep LILO happy.
247
Theodore Ts'ofbf91112001-09-20 10:47:47 -04002482001-09-20 Theodore Tso <tytso@thunk.org>
249
250 * Release of E2fsprogs 1.25
251
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05002522001-09-16 Theodore Tso <tytso@mit.edu>
Theodore Ts'o7746cad2001-09-17 00:02:21 -0400253
254 * ext2_ext_attr.h: Remove unneeded #include of <linux/config.h>
255 which was breaking the build on the Hurd. (Addresses
256 Debian bug #112414).
257
Theodore Ts'oa5f3f5c2002-02-03 01:00:22 -05002582001-09-13 Theodore Ts'o <tytso@mit.edu>
Theodore Ts'o2038b632001-09-14 07:44:25 -0400259
260 * ismounted.c (check_mntent_file): We now validate the entry in
261 /etc/mtab to make sure the filesystem is really mounted,
262 since some broken distributions (read: Slackware) have
263 buggy boot scripts that don't initialize /etc/mtab before
264 checking non-root filesystems. (Slackware also doesn't
265 check the root filesystem separately, and reboot if the
266 root filesystem had changes applied to it, which is
267 dangerous and broken.)
268
Theodore Ts'ofb707752001-09-04 15:00:37 -04002692001-09-02 Theodore Tso <tytso@thunk.org>
270
271 * Release of E2fsprogs 1.24a
272
Theodore Ts'o109624a2001-08-31 00:59:55 -04002732001-08-30 Theodore Tso <tytso@thunk.org>
274
275 * Release of E2fsprogs 1.24
276
Theodore Ts'oeddeb562001-08-30 17:24:02 -04002772001-08-30 Theodore Tso <tytso@valinux.com>
278
279 * getsize.c (ext2fs_get_device_size): Back out BLKGETSIZE64
280 changes, since the ioctl number has been reused by another
281 unofficial patch.
282
Theodore Ts'o943ed872001-08-27 12:29:22 -04002832001-08-15 Theodore Tso <tytso@valinux.com>
284
285 * Release of E2fsprogs 1.23
286
Theodore Ts'o89a6ebd2001-08-05 20:31:09 -04002872001-08-05 Theodore Tso <tytso@valinux.com>
288
289 * alloc.c (ext2fs_new_inode, ext2fs_new_block): Use the fast
290 version of the bitmap test routines to speed up these
291 routines. (At some point I may want to make these
292 routines use the find_first_bit functions, but that will
293 add a lot of complexity since it means that these
294 functions will have to break the bitmap abstraction
295 boundary. It's not clear it's worth it.)
296
297 * mkjournal.c (mkjournal_proc): Remember the last block allocated
298 to speed up ext2fs_new_block().
299
Theodore Ts'o37517212001-07-29 12:01:09 -04003002001-07-29 Theodore Tso <tytso@valinux.com>
301
302 * finddev.c (scan_dir): Fix memory leak; we weren't calling
303 closedir() when exiting the function in all cases.
304
Theodore Ts'of35e6442001-07-27 15:35:21 -04003052001-07-27 Theodore Tso <tytso@valinux.com>
306
Theodore Ts'o4e40f6c2001-07-27 23:33:40 -0400307 * mkjournal.c (ext2fs_create_journal_superblock): Set the first
308 block usable in the journal for external journals to be 2
309 or 3, depending on the blocksize, so that the existing
310 kernel code does the right thing.
311
Theodore Ts'o343fa652001-07-27 22:15:06 -0400312 * getsize.c (ext2fs_get_device_size): Add support for the
313 BLKGETSIZE64 ioctl. (Ioctl defined by unofficial patches
314 from Ben LaHaise, but it's likely this interface won't
315 change.)
316
Theodore Ts'of35e6442001-07-27 15:35:21 -0400317 * mkjournal.c (ext2fs_add_journal_device): Use the correct block
318 when writing the journal superblock, too. (Oops! Needed
319 to make 1k filesystems with external journal to work.)
320
Theodore Ts'o36131b32001-07-26 23:44:39 -04003212001-07-26 Theodore Tso <tytso@valinux.com>
322
323 * mkjournal.c (ext2fs_add_journal_device): Use the correct block
324 to find the journal superblock if the blocksize is 1024.
325
Theodore Ts'oadee8d72001-07-23 00:17:49 -04003262001-07-21 Theodore Tso <tytso@valinux.com>
327
328 * ext2_err.et.in (EXT2_ET_LOAD_EXT_JOURNAL): Add new error code
329
Theodore Ts'o6ae296e2001-07-20 12:33:37 -04003302001-07-20 Theodore Tso <tytso@valinux.com>
331
Theodore Ts'o241f7d22001-07-20 14:17:19 -0400332 * ext_attr.c (ext2fs_write_ext_attr): When writing the extended
333 attribute block, set the filesystem changed bit.
334
Theodore Ts'o6ae296e2001-07-20 12:33:37 -0400335 * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set):
336 Comment out these functions since we're not using them.
337
Theodore Ts'o3c6b8972001-07-10 14:27:58 -04003382001-07-10 Theodore Tso <tytso@valinux.com>
339
340 * closefs.c (write_primary_superblock): After writing changes to
341 the primary superblock, update the original superblock
342 copy so we don't have to re-write those changes in the
343 future.
344 (ext2fs_flush): Clear the superblock dirty flag after
345 we've flushed out changes to disk.
346
Theodore Ts'of41e7e62001-07-07 22:14:23 -04003472001-07-07 Theodore Tso <tytso@valinux.com>
348
349 * bitops.h (ext2fs_find_first_bit_set): Use %esi instead of %ebx
350 to avoid register conflicts when compiling in PIC mode.
351
Theodore Ts'oac493822001-07-04 14:04:58 -04003522001-07-04 Theodore Tso <tytso@valinux.com>
353
354 * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set):
355 Add new functions (C and in i386 assembler) which quickly
356 find bits set in a bitmask.
357
Theodore Ts'o67960132001-06-23 00:16:37 -04003582001-06-23 Theodore Tso <tytso@valinux.com>
359
Theodore Ts'o342d8472001-07-02 11:54:09 -0400360 * Makefile.in, ext_attr.c, ext2_attr.c, ext2fs.h: Add new files
361 ext2_ext_attr.h and ext_attr.c for extended attributes
362 support.
363
Theodore Ts'o67960132001-06-23 00:16:37 -0400364 * Release of E2fsprogs 1.22
365
Theodore Ts'o89a1fa82001-06-22 20:40:51 -04003662001-06-22 Theodore Tso <tytso@valinux.com>
367
Theodore Ts'ob23520d2001-06-22 21:52:14 -0400368 * mkjournal.c (ext2fs_add_journal_inode): Move close of file
369 descriptor so that adding a journal to a mounted
370 filesystem doesn't die. (Fixes a bug accidentally
371 introduced in e2fsprogs 1.21.)
372
Theodore Ts'o78332622001-06-22 21:20:47 -0400373 * mkjournal.c (ext2fs_add_journal_inode): Only use fchflags if
374 HAVE_CHFLAGS and UF_NODUMP are defined, since the Hurd has
375 fchflags without defining UF_NODUMP. (Addresses Debian
376 bug #101361)
377
Theodore Ts'od90f3492001-06-22 21:01:17 -0400378 * flushb.c: Use platform independent method of defining the
379 BLKFLSBUF and FDFLUSH ioctl's. Also include sys/mount.h
380 since on newer glibc's BLKFLSBUF is defined there.
381
Theodore Ts'o16645f82001-06-22 20:54:11 -0400382 * bitops.h: The C language versions of ext2fs_swab16/32 need to be
383 included if EXT2FS_ENABLE_SWAPFS is defined, since we need
384 to support byte swapping even if we don't support the
385 conversion functions. (Fixes Debian bug #101686).
386
Theodore Ts'o89a1fa82001-06-22 20:40:51 -0400387 * dirblock.c (ext2fs_read_dir_block): Remove use of dir_entry_2
388 since the byte-swapping code all assumes the
389 ext2_dir_entry structure. (It's a question of whether or
390 not name_len should be byte-swapped or not, and whether
391 it's a 16 bit or 8 bit field.)
392
Theodore Ts'o997b8202001-06-15 18:33:43 +00003932001-06-15 Theodore Tso <tytso@valinux.com>
394
Theodore Ts'of4f75ba2001-06-16 01:14:28 +0000395 * Release of E2fsprogs 1.21
396
3972001-06-15 Theodore Tso <tytso@valinux.com>
398
Theodore Ts'od1e66b72001-06-15 22:44:32 +0000399 * Makefile.in: Fix bug in installation of ext2_types.h. It is a
400 file which is generated and is therefore found in the
401 build directory, not source directory.
402
Theodore Ts'o997b8202001-06-15 18:33:43 +0000403 * ismounted.c (check_mntent_file): Use a test file in / to check
404 to see if the root filesystem is mounted read-only. This
405 protects against the case where /etc might not be on /, as
406 well as the case where /etc/mtab doesn't exist. (Both are
407 should-never happen scenarios, but you never know...)
408
Theodore Ts'o6bd13482001-06-14 07:00:55 +00004092001-06-14 Theodore Tso <tytso@valinux.com>
410
411 * ismounted.c (ext2fs_check_if_mounted): Fix grammer in comment.
412 Remove unneeded #pragma argsused, since the arguments are
413 always used.
414
Theodore Ts'o30ae14c2001-06-13 22:38:56 +00004152001-06-13 Theodore Tso <tytso@valinux.com>
416
Theodore Ts'o65794882001-06-14 00:24:42 +0000417 * ext2_types.h.in: If linux/types.h has been defined, then don't
418 try to redefine the typedefs.
419
Theodore Ts'o364a3732001-06-13 23:46:39 +0000420 * Makefile.in (HFILES): Add ext2_types.h to the list of files
421 which should be installed.
422
Theodore Ts'o66a46142001-06-13 23:26:19 +0000423 * ismounted.c (check_mntent_file): Work around GNU hurd brain
Theodore Ts'o83d5abf2001-06-13 23:31:27 +0000424 damage. Addresses Debian bug #100304.
Theodore Ts'o66a46142001-06-13 23:26:19 +0000425
Theodore Ts'o30ae14c2001-06-13 22:38:56 +0000426 * Makefile.in: Limit some .o files from being included into the
427 library if --disable-debugfs, --disable-swapfs,
428 --disable-imager, or --disable-resizer are used.
429
Theodore Ts'ocbbf0312001-06-13 00:12:04 +00004302001-06-12 Theodore Tso <tytso@valinux.com>
431
432 * inode.c, tst_iscan.c: Stop using the compatibility badblocks
433 function, and use the ext2fs_badblocks_* functions
434 instead.
435
Theodore Ts'o5df55d72001-06-11 07:00:04 +00004362001-06-11 Theodore Tso <tytso@valinux.com>
437
Theodore Ts'o3034f622001-06-11 15:17:45 +0000438 * Makefile.in, gen_bitmap.c, bitops.h: Move inline functions
439 ext2fs_mark_generic_bitmap and
440 ext2fs_unmark_generic_bitmap to gen_bitmap.c as normal
441 functions. (This saves space and doesn't significantly
442 change the speed of e2fsck on a P-III.)
443
Theodore Ts'o5df55d72001-06-11 07:00:04 +0000444 * ext2fs.h, bitops.h, block.c, bmap.c, closefs.c, dirblock.c,
445 inode.c, native.c, openfs.c, rw_bitmaps.c, swapfs.c: Only
446 include the byte-swapping logic if ENABLE_SWAPFS is turned
447 on or if we're on a big-endian machine.
448
449 * initialize.c (ext2fs_initialize):Use WORDS_BIGENDIAN directly to
450 set EXT2_FLAG_SWAP_BYTES, instead of using
451 ext2fs_native_flag.
452
453 * native.c (ext2fs_native_flag): Use WORDS_BIGENDIAN provided by
454 autoconf to determine whether or not return
455 EXT2_FLAG_SWAP_BYTES.
456
Theodore Ts'o349a4842001-06-11 00:49:29 +00004572001-06-10 Theodore Tso <tytso@valinux.com>
458
459 * Makefile.in: Remove the dependence on the libe2p library.
460
461 * mkjournal.c (ext2fs_add_journal_inode): Replace use of fsetflags
462 with direct usage of the ioctl/fchflags so that we don't
463 have to depend on the libe2p library.
464
Theodore Ts'o30e50b72001-06-08 09:43:40 +00004652001-06-08 Theodore Tso <tytso@valinux.com>
466
467 * ext2_types.h.in: Use unsigned ints in favor of unsigned longs
468 when trying to find a 32-bit wide type.
469
470 * icount.c (insert_icount_el): Fix the code used to estimate the
471 size of the new icount array to be more intelligent, to
472 avoid reallocating the array too many times. Thanks to
473 Enrique Perez-Terron for pointing this out.
474
Theodore Ts'of36d14f2001-06-02 04:13:16 +00004752001-06-02 Theodore Tso <tytso@valinux.com>
476
477 * valid_blk.c (ext2fs_inode_has_valid_blocks): Only check i_blocks
478 for a symlink to determine whether it is a fast symlink.
479
Theodore Ts'o797f5ef2001-06-01 23:49:46 +00004802001-06-01 Theodore Tso <tytso@valinux.com>
481
482 * Makefile.in, dosio.c, ext2_fs.h, ext2_types.h.in, ext2fs.h:
Theodore Ts'o36a23e12001-06-02 00:54:10 +0000483 Move include/asm/types.h.in to lib/ext2fs/ext2_types.h.in.
Theodore Ts'o797f5ef2001-06-01 23:49:46 +0000484
Theodore Ts'od5f858d2001-05-25 17:14:23 +00004852001-05-25 Theodore Tso <tytso@valinux.com>
486
Theodore Ts'obb185862001-05-25 17:35:00 +0000487 * Release of E2fsprogs 1.20
488
4892001-05-25 Theodore Tso <tytso@valinux.com>
490
Theodore Ts'od5f858d2001-05-25 17:14:23 +0000491 * ismounted.c: More cleanups for ismounted.c, some from Andreas,
492 some to clean up Andreas's patches. Use strncpy instead
493 of strcpy to save the root's mountpoint. Clean up #ifdef
494 structure. Remove uneeded variable in testing/debug driver.
495
Theodore Ts'occ860172001-05-25 16:32:53 +00004962001-05-24 Andreas Dilger <adilger@turbolinux.com>
497
498 * ismounted.c: Add check for root device which doesn't depend on
499 /etc/fstab or /proc/mounts to be correct. Don't call
500 endmntent() before we are done with mnt struct.
501
Theodore Ts'o4ed8ebe2001-05-23 18:30:10 +00005022001-05-23 Theodore Tso <tytso@valinux.com>
503
504 * ext2_err.et.in (EXT2_ET_JOURNAL_UNSUPP_VERSION): Added new error
505 code.
506
Theodore Ts'ob10820c2001-05-21 05:23:31 +00005072001-05-21 Theodore Tso <tytso@valinux.com>
508
509 * ext2_fs.h: Change assignment of EXT2_FEATURE_COMPAT_DIR_INDEX to
510 make room for pre-existing usage of
511 EXT2_FEATURE_COMPAT_EXT_ATTR. Add flag EXT2_INDEX_FL with
512 the same codepoint as EXT2_BTREE_FL.
513
Theodore Ts'o7c2d2562001-05-21 02:54:21 +00005142001-05-20 Theodore Tso <tytso@valinux.com>
515
516 * ext2fs.h: #include <> instead of "" for ext2fs and et header
517 files, since they will be installed in /usr/include
518
Theodore Ts'o7a34cb02001-05-14 04:28:35 +00005192001-05-14 Theodore Tso <tytso@valinux.com>
520
Theodore Ts'o9f8046f2001-05-14 11:35:52 +0000521 * alloc.c, alloc_tables.c, badblocks.c, bb_compat.c, bb_inode.c,
522 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
523 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
524 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
525 expanddir.c, ext2_fs.h, fileio.c, finddev.c, flushb.c,
526 freefs.c, get_pathname.c, getsize.c, icount.c, imager.c,
527 initialize.c, inline.c, inode.c, irel_ma.c, ismounted.c,
528 link.c, lookup.c, mkdir.c, mkjournal.c, namei.c, native.c,
529 newdir.c, nt_io.c, openfs.c, read_bb.c, read_bb_file.c,
530 rs_bitmap.c, rw_bitmaps.c, swapfs.c, test_io.c,
531 tst_badblocks.c, tst_byteswap.c, tst_getsize.c,
532 tst_iscan.c, unix_io.c, unlink.c, valid_blk.c, version.c,
533 write_bb_file.c, ext2_fs.h: Moved file from include/linux.
534 Adjust all files in this directroy to include this file.
535
Theodore Ts'o7a34cb02001-05-14 04:28:35 +0000536 * mkjournal.c (ext2fs_create_journal_superblock): Remove redundant
537 code.
538
Theodore Ts'o0f679452001-05-05 16:42:24 +00005392001-05-05 Theodore Tso <tytso@valinux.com>
540
541 * fileio.c (ext2fs_file_read): Factored out common code and
542 cleaned up function. Fixed a bug where if there was an
543 error reading from the disk, the number of bytes read
544 wasn't reliably set. (Fixes Debian bug #79163)
545 (ext2fs_file_write): Factored out common code and made
546 function more efficient; if writing a full block, don't
547 bother to do a read-modify-write cycle.
548
Theodore Ts'o1cca4d62001-05-05 05:12:14 +00005492001-05-04 Theodore Tso <tytso@valinux.com>
550
551 * dirblock.c (ext2fs_read_dir_block): Check for an directory
552 record length which isn't a multiple four, and treat that
553 as an invalid. Scan the directory and return an error
554 (EXT2_ET_DIR_CORRUPTED) if the directory records are
555 corrupted.
556 (ext2fs_write_dir_block): If while byte-swapping the
557 directory block, if there's an error, abort and return
558 EXT2_ET_DIR_CORRUPTED.
559
Theodore Ts'oa78926e2001-05-03 04:02:29 +00005602001-05-02 Theodore Tso <tytso@valinux.com>
561
562 * ext2fs.h (EXT2_FLAG_IMAGE_FILE): Add new flag, and add
563 image_header field in the ext2_filsys structure
564
565 * block.c (block_iterate_ind, block_iterate_dind, block_iterate_tind):
566 * inode.c (ext2fs_read_inode):
567 * rw_bitmaps.c (read_bitmaps):
568 * openfs.c (ext2fs_open): Add support for EXT2_FLAG_IMAGE_FILE
569
570 * imager.c (ext2fs_image_bitmap_read): Fix bug in imager to make
571 sure the full bitmap is saved.
572
Theodore Ts'of955cc12001-05-01 19:04:28 +00005732001-05-01 Theodore Tso <tytso@valinux.com>
574
Theodore Ts'oa78926e2001-05-03 04:02:29 +0000575 * e2image.h (struct ext2_image_hdr): Add space for the device name
576 in the image header.
577
Theodore Ts'of955cc12001-05-01 19:04:28 +0000578 * dir_iterate.c (ext2fs_process_dir_block): Add a double-check to
579 make sure the rec_len is a multiple of 4, to prevent
580 bus-errors on architectures which care about mis-aligned
581 pointer references.
582
Theodore Ts'o954a6832001-04-26 01:42:37 +00005832001-04-25 Theodore Tso <tytso@valinux.com>
584
585 * getsize.c (ext2fs_get_device_size): Use an unsigned long to
586 query the device sizes using the BLKGETSIZE ioctl.
587
Theodore Ts'o03603942001-04-17 00:53:25 +00005882001-04-16 Theodore Tso <tytso@valinux.com>
589
Theodore Ts'o52db0b42001-04-17 02:22:05 +0000590 * ismounted.c (check_mntent): Check /proc/mounts on Linux systems
591 before checking /etc/mtab. The EXT2_MF_READONLY flag is
592 now set from the /etc/mtab options field for all
593 filesystems, not just the root filesystem. Add debugging
594 code to make it easier to test ext2fs_check_if_mounted().
595
Theodore Ts'o03603942001-04-17 00:53:25 +0000596 * mkjournal.c (ext2fs_create_journal_superblock): Add safety
597 check; return an error if there's an attempt to create a
598 journal less than 1024 filesystem blocks.
599
600 * ext2_err.et.in, mkjournal.c: Change EXT2_JOURNAL_NOT_BLOCK and
601 EXT2_NO_JOURNAL_SB to be EXT2_ET_*.
602
Theodore Ts'o9ec53cf2001-02-20 16:28:40 +00006032001-02-20 Theodore Tso <tytso@valinux.com>
604
605 * bitops.h (ext2fs_swab16, ext2fs_swab32): Add i386 assembly
606 inline functions.
607
608 * tst_byteswap.c: New function to test the byteswap functions.
609 Add to regression test suite.
610
Theodore Ts'oc5423c52001-02-08 05:45:17 +00006112001-02-08 Theodore Tso <tytso@valinux.com>
612
613 * e2image.h (struct ext2_image_hdr): Fix type for fs_hostname
614
Theodore Ts'od23042a2001-02-08 03:37:16 +00006152001-02-07 Theodore Tso <tytso@valinux.com>
616
617 * mkjournal.c (ext2fs_create_journal_superblock): Fix the setting
618 of s_first for external devices to always be 1, since
619 jsb->s_first is always relative to the start of the
620 journal superblock. Use htonl(1) when setting s_nr_users.
621
Theodore Ts'o02088862001-01-18 01:44:19 +00006222001-01-17 Theodore Ts'o <tytso@valinux.com>
623
624 * mkjournal.c (ext2fs_add_journal_device): Fix bug where the
625 device number of the filesystem (instead of the journal)
626 was being dropped into s_journal_dev.
627
Theodore Ts'oa1128472001-01-16 06:56:14 +00006282001-01-15 Theodore Ts'o <tytso@valinux.com>
629
630 * initialize.c (ext2fs_initialize): Add support for initializing
631 the ext2 superblock for external journal devices. This
632 basically means we don't bother to allocate any block
633 group descriptors.
634
635 * openfs.c (ext2fs_open): Only open external journal devices if
636 the new flag EXT2_FLAG_JOURNAL_DEV_OK is passed to
637 ext2fs_open. When opening such devices, don't try to read
638 the block group descriptors, since they're not there.
639
640 * ext2_err.et.in (EXT2_NO_JOURNAL_SB): Add new error code
641
642 * mkjournal.c: Export a new function,
643 ext2fs_create_journal_superblock(), which allocates and
644 returns a buffer containing a journal superblock. This is
645 needed by mke2fs to create an external journal. Rewrote
646 ext2fs_add_journal_device() so that it no longer creates
647 the external journal, but rather adds a filesystem to an
648 existing external journal. It handles all of the UUID
649 manipulation.
650
651 * ext2fs.h: List the EXT3_FEATURE_JOURNAL_DEV as a flag supported
652 by the library. Define the EXT2_FLAG_JOURNAL_DEV_OK.
653 Changed function prototype for ext2fs_add_journal_device().
654
Theodore Ts'o80779942001-01-14 18:03:43 +00006552001-01-14 Theodore Ts'o <tytso@valinux.com>
656
657 * closefs.c (ext2fs_flush): Don't write out anything beyond the
658 primary superblock if EXT2_INCOMPAT_JOURNAL_DEV is
659 listed.
660
Theodore Ts'ob94bd812001-01-12 17:26:05 +00006612001-01-12 Theodore Ts'o <tytso@valinux.com>
662
663 * imager.c: Fix gcc -Wall complaints and a series of bugs where
664 retval wasn't set correctly. (Thanks to Andreas Dilger
665 for pointing this out.)
666
Theodore Ts'o4d0f3e12001-01-11 15:48:50 +00006672001-01-11 <tytso@snap.thunk.org>
668
669 * flushb.c (ext2fs_sync_device): New function which centralizes
670 all of the places which might try to use the BLKFLSBUF
671 or FDFLUSH ioctls (and usually failing to define them
672 since the system header files don't usually do this for
673 us, and we're trying to avoid usage of kernel include
674 files now).
675
Theodore Ts'o31dbecd2001-01-11 04:54:39 +00006762001-01-10 <tytso@snap.thunk.org>
677
678 * alloc.c, bb_inode.c, bitmaps.c, bitops.h, block.c, bmap.c,
679 bmove.c, brel.h, cmp_bitmaps.c, dblist.c, dblist_dir.c,
680 dir_iterate.c, expanddir.c, ext2fs.h, ext2fsP.h, fileio.c,
681 finddev.c, get_pathname.c, icount.c, inode.c, irel.h,
682 irel_ma.c, ismounted.c, link.c, lookup.c, mkdir.c,
683 mkjournal.c, namei.c, newdir.c, read_bb_file.c, test_io.c,
684 tst_iscan.c, unix_io.c, unlink.c: Change use of ino_t to
685 ext2_ino_t, to protect applications that attempt to
686 compile -D_FILE_OFFSET_BITS=64, since this inexplicably
687 changes ino_t(!?). So we use ext2_ino_t to avoid an
688 unexpected ABI change.
689
Theodore Ts'ocdaf1fa2001-01-05 22:23:22 +00006902001-01-05 <tytso@snap.thunk.org>
691
Theodore Ts'oe446d712001-01-05 22:27:06 +0000692 * dirblock.c (ext2fs_read_dir_block): Fix a potential case where
693 we may overrun allocated memory in case of a corrupted
694 filesystem (or an e2fsck test case :-) when byte-swapping
695 the directory block.
696
Theodore Ts'ocdaf1fa2001-01-05 22:23:22 +0000697 * ext2fs.h: Indent the #warning to fix gcc -Wall complaint.
698
699 * mkjournal.c (ext2fs_add_journal_device): Fix various gcc -Wall
700 complaints including a missing return 0 at the end of
701 ext2fs_add_journal_device.
702
Theodore Ts'o43ec8732001-01-03 14:56:46 +00007032001-01-03 <tytso@snap.thunk.org>
704
Theodore Ts'o4becab62001-01-03 19:22:42 +0000705 * Makefile.in: Link in libe2p when creating libext2fs as a shared
706 library, since mkjournal.c now references fsetflags().
707
708 * mkjournal.c (ext2fs_add_journal_inode): Folded in Andreas
709 Dilger's changes (with fixups) to allow on-line creation
710 of a journal file.
711
Theodore Ts'o43ec8732001-01-03 14:56:46 +0000712 * ext2fs.h, closefs.c (ext2fs_flush): Add new flag,
713 EXT2_FLAG_SUPER_ONLY, which the close routines to only
714 update the superblock, and not the group descriptors.
715
7162000-12-30 Andreas Dilger <adilger@turbolinux.com>
717
718 * ismounted.c: add ext2fs_check_mount_point() function, which will
719 optionally return the mount point of a device if mounted
720
Theodore Ts'o31a17b32001-01-03 13:04:12 +00007212000-12-14 Andreas Dilger <adilger@turbolinux.com>
722
723 * mkjournal.c: rename ext2fs_add_journal_fs() to the more descriptive
724 ext2fs_add_journal_inode()
725
Theodore Ts'oe5b38a52001-01-01 16:17:12 +00007262001-01-01 <tytso@snap.thunk.org>
727
728 * ext2fs.h: Remove definition of ext2fs_sb. Note: this may break
729 source (but not binary) compatibility of some users of the
730 ext2 library. They should just simply do a global search
731 and replace of struct ext2fs_sb with struct
732 ext2_super_block, and use their own private copy of
733 ext2_fs.h if they aren't already.
734
735 * closefs.c, initialize.c, link.c, newdir.c, openfs.c, swapfs.c:
736 Replace use of ext2fs_sb with ext2_super_block.
737
Theodore Ts'o2fe1efe2000-12-31 13:39:17 +00007382000-12-31 <tytso@snap.thunk.org>
739
740 * ext2fs.h: Cleaned up header file by removing definitions of
741 feature flags that might not have been defined in older
742 ext2 header files. Now that we're using our own
743 include/linux/ext2fs.h header file, this can never happen.
744
745 * jfs_dat.h: Removed old header file which is no longer needed.
746
Theodore Ts'o7dcfa6e2000-12-13 17:50:14 +00007472000-12-13 Theodore Ts'o <tytso@valinux.com>
748
Theodore Ts'oa917d1c2000-12-13 18:36:23 +0000749 * closefs.c (ext2fs_update_dynamic_rev): New function suggested
Theodore Ts'o3fe973b2000-12-13 17:55:49 +0000750 by Andreas Dilger to update the filesystem revision to
751 EXT2_DYNAMIC_REV.
752
Theodore Ts'o7dcfa6e2000-12-13 17:50:14 +0000753 * swapfs.c (ext2fs_swap_super): Add byte swapping for the journal
754 fields.
755
Theodore Ts'o58618732000-12-09 05:47:45 +00007562000-12-09 <tytso@snap.thunk.org>
757
Theodore Ts'o31a17b32001-01-03 13:04:12 +0000758 * ext2fs.h, mkjournal.c (ext2fs_add_journal_inode,
Theodore Ts'o4e246702000-12-09 14:39:16 +0000759 ext2fs_add_journal_device): Add a new argument to the APIs
760 of these function, which is a flags word. This is used to
761 allow the creation of a V1 superblock for those folks who
762 are using ext3 0.3b in production. Note, the user-land
763 interface for getting at this flag won't be documented, as
764 the V1 superblock is deprecated.
765
Theodore Ts'o58618732000-12-09 05:47:45 +0000766 * mkjournal.c (init_journal_superblock): Sync Stephen's changes
767 which creates a V2 superblock instead of a V1 superblock.
768
Theodore Ts'of20d0d52000-12-05 03:53:41 +00007692000-11-21 <tytso@snap.thunk.org>
770
771 * test_io.c (test_write_blk, test_write_byte): Fix typos pointed
772 out by Andreas Dilger.
773
Theodore Ts'o72ed1262000-11-12 19:32:20 +00007742000-11-05 <tytso@snap.thunk.org>
775
776 * imager.c (ext2fs_image_{inode,super,bitmap}_{read,write},
777 ext2_fs.h, Makefile.in: New file that has routines that
778 save ext2fs metadata to a file.
779
780 * ext2_err.et.in (EXT2_ET_MAGIC_E2IMAGE): New error code assigned.
781
782 * e2image.h: New file which defines the file format for the ext2
783 image file. (Saved copy of ext2 metadata to a file as a
784 saving throw against worst-case damage.)
785
Theodore Ts'o6a7f4552000-11-12 19:07:06 +00007862000-11-01 <tytso@snap.thunk.org>
787
788 * inode.c (ext2fs_flush_icache): Add new function
789 ext2fs_flush_icache() which flushes the internal inode
790 cache. Applications which modify the inode table blocks
791 directly must call this function.
792
Theodore Ts'oc180ac82000-10-26 20:24:43 +00007932000-10-26 <tytso@snap.thunk.org>
794
Theodore Ts'o17ee8b12000-10-26 20:45:58 +0000795 * mkjournal.c: Add #include of netinet/in.h, since Solaris
796 requires it for ntohl().
797
Theodore Ts'oc180ac82000-10-26 20:24:43 +0000798 * ext2_io.h (io_channel_write_byte): Add new interface to allow
799 callers to write specific byte ranges. This is an
800 optional interface, which not all IO channels may
801 implement.
802
803 * unix_io.c (unix_write_byte):
804 * test_io.c (test_write_byte): Add implementation of the
805 write_byte function.
806
807 * closefs.c (write_primary_superblock, ext2fs_flush): Add a new
808 function which writes the primary superblock. If the IO
809 channel supports writing raw bytes directly, only fields
810 which were modified are written to the disk. This makes
811 it safe(r) to use utilities like tune2fs on a mounted
812 filesystem.
813
814 * freefs.c (ext2fs_free): Free the original superblock if it is
815 available.
816
817 * openfs.c (ext2fs_open): Store a copy of the original superblock
818 when opening it.
819
820 * ext2fs.h: Add a field to store the original superblock in the
821 ext2 context structure.
822
Theodore Ts'o43819662000-10-25 02:06:09 +00008232000-10-24 <tytso@snap.thunk.org>
824
825 * llseek.c: Add #ifdef's for IA64 (it's a 64-bit platform, so we
826 don't need to use llseek).
827
Theodore Ts'od3cd93c2000-10-24 18:33:16 +00008282000-10-24 <tytso@valinux.com>
829
830 * Makefile.in, ext2fs.h, jfs_dat.h, mkjournal.c: Add functions for
831 creating an ext3 journal on a filesystem.
832
8332000-08-21 <tytso@valinux.com>
834
835 * ext2_err.et.in (EXT2_JOURNAL_NOT_BLOCK): Add new error code.
836
Theodore Ts'oadfc8c62000-10-18 19:22:24 +00008372000-08-22 <tytso@valinux.com>
838
839 * unix_io.c: Make massive changes to support a multiple block
840 writethrough cacheing.
841
842 * ext2_io.h: Added flags field to the io_channel structure.
843
Theodore Ts'ode23aa12000-08-19 17:00:47 +00008442000-08-19 <tytso@valinux.com>
845
846 * finddev.c, ext2fs.h, Makefile.in: Add new file, finddev.c, which
847 provides the function ext2fs_find_block_device(). This
848 function returns the pathname to a block device, given its
849 device number.
850
Theodore Ts'of9e67062000-07-13 23:25:54 +00008512000-07-13 <tytso@valinux.com>
852
853 * Release of E2fsprogs 1.19
854
Theodore Ts'oab146762000-07-07 04:37:35 +00008552000-07-07 Theodore Ts'o <tytso@valinux.com>
856
857 * ext2fs.h (EXT2_LIB_FEATURE_INCOMPAT_SUPP): Add
858 EXT3_FEATURE_INCOMPAT_RECOVER (aka needs_recovery) to the
859 list of filesystem flags supported by the library.
860
Theodore Ts'o57dca852000-07-04 19:20:25 +00008612000-07-04 Theodore Ts'o <tytso@valinux.com>
862
Theodore Ts'o8f13d8c2000-07-04 19:41:29 +0000863 * ext2fs.h: Update to include latest journalling additions to the
864 superblock.
865
Theodore Ts'o57dca852000-07-04 19:20:25 +0000866 * dll/jump.funcs: Add new jumptable entries for
867 ext2fs_write_bb_FILE, ext2fs_read_bb_FILE2, and
868 ext2fs_badblocks_equal.
869
870 * tst_badblocks.c: Update test program to test
871 ext2fs_read_bb_FILE2 and ext2fs_write_FILE.
872
873 * write_bb_file.c (ext2fs_write_bb_FILE): New function which
874 writes out bad blocks list to a file.
875
876 * read_bb_file.c (ext2fs_read_bb_FILE2): Add new function which
877 changes the callback function to take two additional
878 arguments; a private blind pointer supplied by the caller,
879 and pointer to a char * containing a pointer to the
880 invalid string.
881
882 * badblocks.c (ext2fs_badblocks_equal): Add new function which
883 returns true if two badblocks list are equal.
884
885 * Makefile.in: Remove explicit link of -lc in the shared library.
886 (It shouldn't be necessary, and is harmful in some cases).
887
Theodore Ts'oabf7d382000-06-10 19:27:17 +00008882000-06-10 Theodore Ts'o <tytso@valinux.com>
889
890 * getsize.c (main): Add debugging code under #ifdef DEBUG
891
Theodore Ts'o2e8d40d2000-05-27 15:15:40 +00008922000-05-27 Theodore Ts'o <tytso@valinux.com>
893
894 * mkdir.c (ext2fs_mkdir): Read the parent directory's inode
895 earlier, so that if there's an error reading it, we can
896 more cleanly back out of the operation.
897
Theodore Ts'of0f4acb2000-05-25 23:22:11 +00008982000-05-25 <tytso@snap.thunk.org>
899
Theodore Ts'odc5f68c2000-05-25 23:31:54 +0000900 * getsize.c (ext2fs_get_device_size): Use open64() instead of
Theodore Ts'o7fd86d32000-05-25 23:42:22 +0000901 open() if it exists. Under linux, manually define the
902 ioctl for BLKGETSIZE if it isn't already defined and it's
903 safe to do so.
Theodore Ts'odc5f68c2000-05-25 23:31:54 +0000904
905 * unix_io.c (unix_open): Use open64() instead of open() if it
906 exists.
907
908 * llseek.c: Simplify header includes of unistd.h. If lseek64 is
909 available (and prototypes are defined) use it in
910 preference to llseek.
911
Theodore Ts'of0f4acb2000-05-25 23:22:11 +0000912 * Makefile: Add hack dependency rule so that parallel makes work
913 correctly.
914
Theodore Ts'ofa7ef712000-05-19 02:11:41 +00009152000-05-18 Theodore Ts'o <tytso@valinux.com>
916
917 * ext2fs.h: Add appropriate ifdef's to support C++ compilation.
918
Theodore Ts'oe589f672000-04-03 13:45:40 +00009192000-04-03 Theodore Ts'o <tytso@valinux.com>
920
Theodore Ts'o06af47f2000-04-03 13:51:00 +0000921 * block.c: Readibility tweak in conditionals involving
922 ctx->fs->flags.
923
Theodore Ts'oe589f672000-04-03 13:45:40 +0000924 * ext2fs.h: Use AUTOCONF SIZEOF_* macros if available to determine
925 how to define __s64 and __u64. Turn off "compression is
926 experimental" warning if the cpp macro
927 I_KNOW_THAT_COMPRESSION_IS_EXPERIMENTAL is defined.
928
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +00009292000-02-11 <tytso@snap.thunk.org>
930
Theodore Ts'o5a63dd22000-02-11 15:44:08 +0000931 * ext2fs.h: Define EXT2FS_COMPRESSED_BLKADDR and HOLE_BLKADDR.
932 Conditionally include Compression as a supported type if
933 ENABLE_COMPRESSION (via --enable-compression) is turned on.
934
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +0000935 * swapfs.c (ext2fs_swap_super): Swap the compression usage bitmap.
936
Theodore Ts'o28ffafb2000-02-08 19:14:02 +00009372000-02-08 <tytso@snap.thunk.org>
938
939 * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap,
940 ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
941 ext2fs_mark_inode_bitmap, ext2fs_unmark_inode_bitmap):
942 Change to return the previous state of the bit that is
943 being marked or unmarked. For speed optimization.
944
Theodore Ts'o80e808f2000-02-02 16:19:59 +00009452000-02-02 Theodore Ts'o <tytso@valinux.com>
946
947 * getsize.c, ismounted.c: Remove unneeded include of linux/fs.h
948
949 * swapfs.c: Remove #ifdef HAVE_EXT2_INODE_VERSION since it's not
950 needed any more; we know it will always be i_generation.
951 Add support for swapping the high bits of the uid and gid.
952
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +00009531999-11-19 <tytso@valinux.com>
954
Theodore Ts'odab278a1999-11-19 18:49:27 +0000955 * mkdir.c (ext2fs_mkdir): Only update the parent's inode link
956 counts if the link was successful. Patch suggested by
957 jeremy@goop.org.
958
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +0000959 * Makefile.in (distclean): Remove TAGS and Makefile.in.old from
960 the source directory.
961
Theodore Ts'ocd086361999-11-10 16:00:39 +00009621999-11-10 <tytso@valinux.com>
963
964 * Release of E2fsprogs 1.18
965
Theodore Ts'o9b9fe8a1999-11-08 22:05:04 +00009661999-11-08 <tytso@valinux.com>
967
968 * Makefile.in (tst_badblocks): Add freefs.o to the object list,
969 since ext2fs_badblocks_list_free was moved to freefs.c.
970
971 * tst_badblocks.c: Use the newer badblocks API names. Add
972 duplicate blocks to the test inputs to test dealing with
973 adding blocks which are already in the badblocks list.
974
975 * badblocks.c (ext2fs_badblocks_list_add): If appending to the end
976 of the list, use a shortcut O(1) operations instead of an
977 O(n) operation. (Idea suggested by David Beattie.)
978
979 * freefs.c (ext2fs_free): Use ext2fs_badblocks_list_free() instead
980 of badblocks_list_free(), to save a procedure call.
981
Theodore Ts'o416c93d1999-10-26 04:49:54 +00009821999-10-26 <tytso@valinux.com>
983
Theodore Ts'o28e11941999-10-26 18:17:20 +0000984 * Release of E2fsprogs 1.17
985
9861999-10-26 <tytso@valinux.com>
987
Theodore Ts'o416c93d1999-10-26 04:49:54 +0000988 * ext2fs.h: Add kludge to deal with the fact that egcs cpp doesn't
989 seem to handle ~0UL the same way as they used to.
990
Theodore Ts'o601002b1999-10-26 02:06:39 +00009911999-10-25 <tytso@valinux.com>
992
Theodore Ts'ofe70fd31999-10-26 02:34:47 +0000993 * nt_io.c (_OpenNtName): Open the device using
994 FILE_SYNCHRONOUS_IO_NONALERT instead of
995 FILE_SYNCHRONOUS_IO_ALERT
996 (nt_open): At the end of the device open routine, unlock
997 the drive but do not dismount it.
998
Theodore Ts'o601002b1999-10-26 02:06:39 +0000999 * initialize.c (CREATOR_OS): Use __GNU__ instead of __gnu__ to
1000 detect the Hurd OS.
1001
Theodore Ts'oe6198e51999-10-23 00:58:54 +000010021999-10-22 <tytso@valinux.com>
1003
Theodore Ts'o614fdfd1999-10-23 03:19:51 +00001004 * Release of E2fsprogs 1.16
1005
10061999-10-22 <tytso@valinux.com>
1007
Theodore Ts'oe6198e51999-10-23 00:58:54 +00001008 * mkdir.c (ext2fs_mkdir): Pass EXT2_FT_DIR flag to ext2fs_link().
1009
1010 * link.c (ext2fs_link): This call now uses the low three bits of
1011 the flags parameter to pass the directory filetype
1012 information; it will set the directory entry FILETYPE
1013 information if the filesystem supports it.
1014
1015 * newdir.c (ext2fs_new_dir_block): If the FILETYPE superblock
1016 option is set, then create the '.' and '..' entries with
1017 the filetype set to EXT2_FT_DIR.
1018
Theodore Ts'oaa4115a1999-10-21 19:33:18 +000010191999-09-24 <tytso@valinux.com>
1020
1021 * nt_io.c: New file which supports I/O under Windows NT.
1022
Theodore Ts'o3a5f8ea1999-09-14 20:21:26 +000010231999-09-07 <tytso@valinux.com>
1024
1025 * ext2fs.h: Add new fields for journalling and define new
1026 feature bits used by newer filesystems: IMAGIC_INODES,
1027 HAS_JOURNAL, RECOVER.
1028
1029 * expanddir.c (ext2fs_expand_dir, expand_dir_proc): Change where
1030 we update the inode block count and size files so that the
1031 block count field is updated correctly when we create an
1032 indirect block.
1033
10341999-07-18 Theodore Ts'o <tytso@valinux.com>
Theodore Ts'o657cb971999-07-30 23:19:10 +00001035
1036 * Release of E2fsprogs 1.15
1037
Theodore Ts'oe72a9ba1999-06-25 15:40:18 +000010381999-06-23 <tytso@valinux.com>
1039
1040 * swapfs.c (ext2fs_swap_inode): Add compatibility for Linux 2.3
1041 kernels that use i_generation instead of i_version. Patch
1042 supplied by Jon Bright <sircus@sircus.demon.co.uk>.
1043
10441999-06-21 <tytso@valinux.com>
Theodore Ts'o813bbb21999-06-22 03:17:45 +00001045
1046 * dir_iterate.c (ext2fs_process_dir_block): Check for corrupted
1047 directory entry before calling the callback function.
1048 This should prevent some core dumps of insufficiently
1049 paranoid callback functions.
1050
Theodore Ts'oa4bf69d1999-05-29 21:53:30 +000010511999-05-29 <tytso@rsts-11.mit.edu>
1052
1053 * ext2fs.h: Add feature definition for AFS IMAGIC inodes.
1054
1055 * fileio.c (ext2fs_file_open): Remove obsolete comment stating
1056 that we don't handle writing yet (we do). Fixed bug where
1057 we weren't allocating a big enough buffer for ext2_bmap.
1058
Theodore Ts'of0687a51999-05-29 21:48:03 +000010591999-05-03 <tytso@rsts-11.mit.edu>
1060
1061 * openfs.c (ext2fs_open): Check to make sure that the number of
1062 blocks per group is not zero --- if so, it must be a bad
1063 superblock!
1064
Theodore Ts'o9e51eca1999-01-09 16:32:31 +000010651999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
1066
1067 * Release of E2fsprogs 1.14
1068
Theodore Ts'o665f7101999-01-08 13:33:39 +000010691999-01-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
1070
1071 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Check to see if
1072 the inode number is zero; if it's zero, return
1073 EXT2_ET_BAD_INODE_NUM.
1074
Theodore Ts'o7a469521999-01-04 08:50:59 +000010751998-12-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
1076
1077 * initialize.c (ext2fs_initialize): Use EXT2_FIRST_INODE instead
1078 of EXT2_FIRST_INO to ensure compatibility with Linux 1.2
1079 header files.
1080
Theodore Ts'o73f17cf1999-01-04 07:35:45 +00001081Mon Jan 4 02:32:09 1999 Theodore Y. Ts'o <tytso@mit.edu>
1082
1083 * llseek.c (ext2fs_llseek): Change ext2fs_llseek() in the
1084 non-Linux case to use EINVAL by default, unless it isn't
1085 defined, in which case we use EXT2_ET_INVALID_ARGUMENT
1086 instead.
1087
Theodore Ts'o556ad131998-12-19 08:10:58 +000010881998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu>
1089
1090 * Release of E2fsprogs 1.13
1091
Theodore Ts'o5a679c81998-12-03 16:40:38 +000010921998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
1093
1094 * Makefile.in: Updated dependencies.
1095
Theodore Ts'o8d7e83b1998-09-23 00:27:26 +000010961998-09-22 Theodore Ts'o <tytso@rsts-11.mit.edu>
1097
1098 * initialize.c (ext2fs_initialize): Make sure that we allocate
1099 enough inodes so that we can make a valid filesystem.
1100
Theodore Ts'o2eb374c1998-09-03 01:22:57 +000011011998-09-02 Theodore Ts'o <tytso@rsts-11.mit.edu>
1102
1103 * rw_bitmaps.c: Fixed signed/unsigned warnings.
1104
1105 * fileio.c (ext2fs_file_set_size): Remove unneeded extern from the
1106 function declaration.
1107
1108 * dblist.c (make_dblist): Add safety check in case the dblist
1109 pointer passed in is null (in which case, assign it to
1110 fs->dblist). Fixed some signed/unsigned warnings.
1111
1112 * bmap.c: Make addr_per_block be of type blk_t to avoid
1113 signed/unsigned warnings.
1114
1115 * namei.c (ext2fs_follow_link): Remove uneeded extern from the
1116 function declaration.
1117
1118 * get_pathname.c (get_pathname_proc): Use return value from
1119 ext2fs_get_mem, instead of checking if &gp->name is
1120 NULL.
1121
1122 * dir_iterate.c (ext2fs_process_dir_block):
1123 * dblist_dir.c (ext2fs_dblist_dir_iterate): Remove uneeded extern
1124 from the function declaration.
1125
1126 * block.c (ext2fs_block_iterate2): If the read_inode call fails,
1127 return the error directly instead of jumping to the
1128 cleanup routine, since we don't need to do any cleanup.
1129
1130 * alloc_table.c (ext2fs_allocate_group_table): Make this
1131 function take a dgrp_t for its group argument.
1132
1133 * ext2fs.h: Make dgrp_t an __u32 type, and make
1134 fs->desc_group_count be of type dgrp_t.
1135
Theodore Ts'of75c28d1998-08-01 04:18:06 +000011361998-07-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
1137
1138 * badblocks.c (ext2fs_badblocks_list_add): Use a bigger increment
1139 than 10 blocks when we need to expand the size of the
1140 badblocks list.
1141
Theodore Ts'o4a5fa191998-07-09 05:42:45 +000011421998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
1143
1144 * Release of E2fsprogs 1.12
1145
Theodore Ts'o30c42611998-06-30 05:33:11 +000011461998-06-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
1147
1148 * closefs.c (ext2fs_flush): Update the s_block_group_nr field as
1149 appropriate for all of the block group copies, so that
1150 it's clear where the beginning of the filesystem is on the
1151 disk. (For when the partition table gets scrod.)
1152
1153 * ext2fs.h: Change the name of the feature from
1154 EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE to
1155 EXT2_FEATURE_INCOMPAT_FILESIZE (to match with the kernel).
1156
Theodore Ts'o818180c1998-06-27 05:11:14 +000011571998-06-18 Theodore Ts'o <tytso@rsts-11.mit.edu>
1158
1159 * inode.c (get_next_blockgroup): Fix bug where if
1160 get_next_blockgroup() is called early because of a missing
1161 inode table in a block group, the current_inode counter
1162 wasn't incremented correctly.
1163
Theodore Ts'o4faba5b1998-06-16 05:23:41 +000011641998-06-16 Theodore Ts'o <tytso@rsts-11.mit.edu>
1165
1166 * read_bb.c (ext2fs_read_bb_inode): Make function more robust
1167 against a completely trashed bad block inode.
1168
Theodore Ts'o03673db1998-06-10 20:39:43 +000011691998-06-10 Theodore Ts'o <tytso@rsts-11.mit.edu>
1170
1171 * alloc_tables.c (ext2fs_allocate_group_table): Fix bug so that if
1172 the stride length hits a bad value, we retry the block
1173 allocation starting at the beginning of the block group.
1174
1175 * ext2fs.h, bb_inode.c, block.c, bmove.c, dir_iterate.c,
1176 expanddir.c, ext2fsP.h, read_bb.c: Change blkcnt_t to be
1177 e2_blkcnt_t to avoid collision with LFS API.
1178
Theodore Ts'o353952d1998-05-01 05:32:18 +000011791998-05-01 Theodore Ts'o <tytso@rsts-11.mit.edu>
1180
1181 * initialize.c (ext2fs_initialize): Initialize s_inodes_count in a
1182 way that avoids overflows on disk sizes greater than 4GB.
1183
Theodore Ts'o4c77fe51998-04-30 17:35:59 +000011841998-04-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
1185
1186 * ext2fs.h: Define EXT2_QSORT_TYPE appropriately for the
1187 return type for comparison functions for qsort.
1188
1189 * dblist.c (dir_block_cmp): Use EXT2_QSORT_TYPE in function
1190 declaration.
1191
Theodore Ts'o76f875d1998-04-27 01:41:13 +000011921998-04-26 Theodore Ts'o <tytso@rsts-11.mit.edu>
1193
1194 * ext2fs.h, bitops.h: Add support for the Watcom C compiler to do
1195 inline functions.
1196
1197 * ext2fs.h, dosio.c: Use asm/types.h instead of linux/types.h to
1198 evade a potential problem with glibc's header files trying
1199 to spike out linux/types.h.
1200
1201 * ext2fs.h (ext2fs_resize_mem): Change the function prototype to
1202 include the old size of the memory, which is needed for
1203 some braindamaged memory allocation systems that don't
1204 support realloc().
1205
1206 * badblocks.c (ext2fs_badblocks_list_add):
1207 bb_inode.c (clear_bad_block_proc):
1208 dblist.c (ext2fs_add_dir_block):
1209 icount.c (insert_icount_el):
1210 irel_ma.c (ima_put):
1211 rs_bitmap.c (ext2fs_resize_generic_bitmap): Update functions to
1212 pass the old size of the memory to be resized to
1213 ext2fs_resize_mem().
1214
Theodore Ts'o469bec81998-04-01 02:46:43 +000012151998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
1216
1217 * Makefile.in: Change to use new installation directory variables
1218 convention. Fix uninstall rules to take $(DESTDIR) into
1219 account.
1220
Theodore Ts'o4a31c481998-03-30 01:27:25 +000012211998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu>
1222
1223 * ext2fs.h: If __STRICT_ANSI__ is defined and we're on a platform
1224 with 32 bit longs, then we need to manually define __s64
1225 and __u64, since the current kernel header files don't
1226 define these if __STRICT_ANSI__ is defined. This is a
1227 problem if we are compiling with full GCC warnings, since
1228 we do need 64 bit support.
1229
1230 * Makefile.in (OBJS): Remove bmove.o from files to be built,
1231 since we're not using ext2fs_move_blocks() and there
1232 is some question as to its usefulness in its current
1233 form.
1234
1235 * bmap.c (block_bmap): Remove unused function.
1236
1237 * bmove.c (process_block): Fix -Wall warning.
1238
Theodore Ts'o36a43d61998-03-24 16:17:51 +000012391998-03-23 Theodore Ts'o <tytso@rsts-11.mit.edu>
1240
1241 * block.c (ext2fs_block_iterate3): Make the ref_offset field
1242 contain the offset into the inode.i_blocks array when
1243 ref_block is zero. Since we haven't done a formal
1244 release of e2fsprogs since block_iterate2 was first
1245 introduced, I removed block_iterate2, and renamed
1246 block_iterate3 to be block_iterate2.
1247
1248 * bb_inode.c, bmove.c, dblist_dir.c, dir_iterate.c,
1249 expanddir.c, ext2fs.h, ext2fsP.h, read_bb.c: Change
1250 use of block_iterate and block_iterate2 to
1251 block_iterate2 with the new prototype for the
1252 interator function. (using blkcnt_t forr blockcount)
1253
Theodore Ts'o674a4ee1998-03-23 02:06:52 +000012541998-03-21 Theodore Ts'o <tytso@rsts-11.mit.edu>
1255
1256 * ext2fs.h: Add new superblock fields (s_algorithm_usage_bitmap,
1257 s_prealloc_blocks, s_prealloc_dir_blocks). Added
1258 conditional defines of new features COMPAT_DIR_PREALLOC,
1259 RO_COMPAT_LARGE_FILE RO_COMPAT_BTREE_DIR,
1260 INCOMPAT_COMPRESSION, INCOMPAT_DIRNAME_SIZE. Changed
1261 the library to declare that we support COMPAT_DIR_PREALLOC,
1262 INCOMPAT_DIRNAME_SIZE, RO_COMPAT_LARGE_FILE.
1263
1264 * fileio.c: Rename function ext2fs_file_llseek to be
1265 ext2fs_file_lseek, which is more accurate.
1266
1267 * block.c: Add new function ext2fs_block_iterate3 which calls
1268 the iterator function with the blockcount argument of
1269 type blkcnt_t. This version of the function is
1270 allowed to handle large files; the other fucntions are
1271 not.
1272
1273 * ext2fs.h: Add new type blkcnt_t
1274
1275 * ext2_err.et.in: Add error code EXT2_ET_FILE_TOO_BIG
1276
1277 * block.c (ext2fs_block_iterate2): Fix bug where the block count
1278 field wasn't getting correctly incremented for sparse
1279 files when the indirect or doubly-indirect block
1280 specified in the inode was zero.
1281
1282Sun Mar 8 22:42:47 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1283
1284 * unlink.c (unlink_proc):
1285 * lookup.c (lookup_proc):
1286 * link.c (link_proc):
1287 * get_pathname.c (get_pathname_proc):
1288 * dir_iterate.c (ext2fs_process_dir_block): Mask off high 8 bits
1289 from dirent->name_len, so it can be used for other
1290 purposes.
1291
1292 * ext2fs.h: Add definition of EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE,
1293 and indicate that we have support for this incompatible
1294 option.
1295
Theodore Ts'oc7752561998-02-24 04:25:52 +00001296Mon Feb 23 08:46:33 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1297
1298 * ext2_err.et.in: Added new error code, EXT2_ET_CANCEL_REQUESTED.
1299
Theodore Ts'o79b05db1998-02-21 05:01:19 +00001300Fri Feb 20 23:58:01 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1301
1302 * dblist.c (ext2fs_get_num_dirs): Improve the estimation of the
1303 number of directories when the block group information is
1304 unreliable.
1305
Theodore Ts'oc4e749a1998-02-20 05:33:14 +000013061998-02-20 Theodore Y. Ts'o <tytso@edt.mit.edu>
1307
Theodore Ts'o218a4861998-02-21 01:41:39 +00001308 * inode.c (ext2fs_get_next_inode): Always do the check to see if the
1309 inode table is missing so that we catch the case where the
1310 first block group is missing.
1311
Theodore Ts'oc4e749a1998-02-20 05:33:14 +00001312 * getsize.c, ismounted.c, unix_io.c: #include errno.h since it's
1313 needed.
1314
Theodore Ts'o9abd2ce1998-02-16 22:00:37 +00001315Mon Feb 16 16:16:00 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1316
1317 * ext2_io.h, ext2fs.h: Protect against being included multiple times.
1318
1319 * bmove.c: #include ext2fsP.h instead of "ext2fs/ext2fs.h"
1320
1321 * test_io.c (test_flush): Add a debugging printf when the flush
1322 method is called.
1323
1324 * rw_bitmaps.c (ext2fs_read_bitmaps): If the bitmaps are already
1325 read in, return right away.
1326
Theodore Ts'o5953b9d1998-02-01 13:23:02 +00001327Sun Feb 1 08:20:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1328
1329 * bitops.h: Don't try to do i386 inline asm functions if the
1330 compiler isn't GCC.
1331
1332 * ext2fs.h: If EXT2_FLAT_INCLUDES is defined, #include e2_types.h,
1333 instead of linux/types.h, and e2_bitops.h instead of
1334 ext2fs/bitops.h.
1335
1336 * icount.c, version.c: Don't #include <et/com_err.h>, as it isn't
1337 necessary.
1338
Theodore Ts'ob5abe6f1998-01-19 14:47:53 +00001339Sat Jan 17 13:13:31 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1340
1341 * inode.c (ext2fs_open_inode_scan): Initialize the group variables
1342 so that we don't need to call get_next_blockgroup() the
1343 first time around. Saves a bit of time, and prevents us
1344 from needing to assign -1 to current_group (which is an
1345 unsigned value).
1346
1347 * icount.c (insert_icount_el): Cast the estimated number of inodes
1348 from a float to an ino_t.
1349
1350 * alloc.c, alloc_tables.c, badlbocks.c, bb_compat.c, bb_inode.c,
1351 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
1352 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
1353 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
1354 expanddir.c, ext2fs.h, fileio.c, freefs.c,
1355 get_pathname.c, getsize.c, icount.c, initialize.c,
1356 inline.c, inode.c, irel_ma.c, ismounted.c, link.c,
1357 lookup.c, mkdir.c, namei.c, native.c, newdir.c,
1358 openfs.c, read_bb.c, read_bb_file.c, rs_bitmap.c,
1359 rw_bitmaps.c, swapfs.c, test_io.c, tst_badblocks.c,
1360 tst_getsize.c, tst_iscan.c, unix_io.c, unlink.c,
1361 valid_blk.c, version.c: If EXT2_FLAT_INCLUDES is
1362 defined, then assume all of the
1363 ext2-specific header files are in a flat directory.
1364
1365 * block.c, bmove.c, dirblock.c, fileio.c: Explicitly cast
1366 all assignments from void * to be compatible with C++.
1367
1368Tue Jan 6 11:28:15 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
1369
1370 * closefs.c (ext2fs_flush): Add a call to io_channel_flush() to
1371 make sure the contents of the disk are flushed to disk.
1372
1373Mon Dec 29 14:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1374
1375 * dblist.c (ext2fs_add_dir_block): Change new to be new_entry to
1376 avoid C++ namespace clash.
1377
1378 * bitmaps.c (ext2fs_copy_bitmap): Change new to be new_map to
1379 avoid C++ namespace clash.
1380
1381 * ext2fs.h, bb_inode.c, block.c, bmove.c, brel.h, brel_ma.c,
1382 irel.h, irel_ma.c, dblist.c, dblist_dir.c, dir_iterate.c,
1383 ext2fsP.h, expanddir.c, get_pathname.c, inode.c, link.c,
1384 unlink.c: Change private to be priv_data (to avoid C++
1385 namespace clash)
1386
Theodore Ts'o5be8dc21997-12-01 18:24:10 +00001387Fri Nov 28 09:26:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1388
1389 * dblist.c (ext2fs_get_num_dirs): Make ext2fs_get_num_dirs more
1390 paranoid about validating the directory counts from the
1391 block group information.
1392
1393 * all files: Don't include stdlib.h anymore; include it in
1394 ext2_fs.h, since that file requires stdlib.h
1395
Theodore Ts'o89270b51997-11-24 11:44:25 +00001396Thu Nov 20 16:07:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1397
1398 * expanddir.c (ext2fs_expand_dir): Check to make sure the block
1399 bitmap is loaded, and return an error if it is not.
1400 (expand_dir_proc): Only use ext2fs_write_dir_block when
1401 writing a directory block, not when writing out a fresh
1402 indirect block.
1403
Theodore Ts'od36d8351997-11-12 03:48:07 +00001404Tue Nov 11 22:46:45 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1405
1406 * Makefile.in, tst_getsize.c: Added new file which is used to test
1407 the ext2fs_get_device_size function.
1408
1409 * ext2_err.et.in (EXT2_ET_UNIMPLEMENTED): Added new error code.
1410
Theodore Ts'o79a90bd1997-11-03 19:16:55 +00001411Sun Nov 2 20:36:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1412
1413 * ext2fs.h: Make ext2fs_get_mem take an unsigned argument.
1414
1415 * fileio.c (ext2fs_file_get_size, ext2fs_file_set_size,
1416 ext2fs_file_get_fs): New functions added.
1417
1418
1419Fri Oct 31 12:16:52 1997 <tytso@EDT.MIT.EDU>
1420
1421 * bitops.c (ext2fs_warn_bitmap, ext2fs_warn_bitmap2): Don't call
1422 com_err if OMIT_COM_ERR is defined.
1423
Theodore Ts'o1f0b6c11997-10-31 06:07:47 +00001424Thu Oct 30 11:33:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1425
1426 * Rename new error codes to _ET_ in them for consistency.
1427
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001428Sat Oct 25 00:06:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1429
Theodore Ts'o7b4e4531997-10-26 03:41:24 +00001430 * [all files, basically]: Added definition of ext2fs_get_mem,
1431 ext2fs_free_mem, and ext2fs_resize_mem in ext2fs.h, and
1432 changed all library routines to use these wrapper functions.
1433
Theodore Ts'o78d8f901997-10-26 01:53:39 +00001434 * dblist.c, mkdir.c: use EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND
1435 instead of the system error messages.
1436
1437 * ext2_err.et.in: Added new error messages EXT2_DIR_EXISTS and
1438 EXT2_DB_NOT_FOUND
1439
Theodore Ts'o30fab291997-10-25 22:37:42 +00001440 * ext2fs.h: Added function declarations and constants for bmap.c
1441 and fileio.c.
1442
1443 * ext2_err.et.in: Added new error messages EXT2_FILE_RO and
1444 EXT2_ET_MAGIC_EXT2_FILE
1445
1446 * Makefile.in: Added files bmap.c and fileio.c, and temporarily
1447 commented out brel_ma.c and irel_ma.c
1448
1449 * bmap.c: New file which maps a file's logical block number to its
1450 physical block number.
1451
1452 * fileio.c: New file which implements simple file reading and
1453 writing primitives.
1454
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001455 * alloc.c (ext2fs_alloc_block): New function which allocates a
Theodore Ts'o30fab291997-10-25 22:37:42 +00001456 block, zeros it, and updates the filesystem accounting
1457 records appropriately.
Theodore Ts'oc555aeb1997-10-25 04:16:53 +00001458
1459Wed Oct 22 16:47:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1460
1461 * ext2_err.et.in: Added new error codes: EXT2_NO_MEMORY,
1462 EXT2_INVALID_ARGUMENT, EXT2_BLOCK_ALLOC_FAIL,
1463 EXT2_INODE_ALLOC_FAIL, EXT2_NOT_DIRECTORY
1464
1465 * Change various library files to use these functions instead of
1466 EINVAL, ENOENT, etc.
1467
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +00001468Mon Oct 20 19:32:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1469
1470 * llseek.c: Check HAVE_LLSEEK_PROTOTYPE to see whether or not we
1471 need to declare llseek().
1472
Theodore Ts'o1d2ff461997-10-19 23:00:21 +00001473Sun Oct 19 18:56:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1474
Theodore Ts'od40259f1997-10-20 00:44:26 +00001475 * Rename io.h to be ext2_io.h (avoid namespace collisions)
1476
Theodore Ts'o1d2ff461997-10-19 23:00:21 +00001477 * Add #ifdef's for HAVE_SYS_STAT_H and HAVE_SYS_TYPES_H
1478
Theodore Ts'od163b091997-10-03 17:42:28 +00001479Fri Oct 3 13:35:59 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1480
1481 * llseek.c (ext2fs_llseek): Fix type error for ext2fs_llseek()
1482
1483 * icount.c (ext2fs_icount_validate):
1484 * bmove.c (process_block): Fix lint error in type for fprintf().
1485
1486Mon Sep 15 11:45:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1487
1488 * inode.c (ext2fs_check_directory): Add support for the callback
1489 to return the error code EXT2_ET_CALLBACK_NOTHANDLED.
1490
Theodore Ts'offf876b1997-09-13 00:32:29 +00001491Thu Sep 4 12:28:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1492
1493 * bitmaps.c (ext2fs_set_bitmap_padding): New function which sets the
1494 padding of the bitmap to be all one's.
1495
Theodore Ts'obc75f2a1997-09-04 00:43:10 +00001496Wed Sep 3 14:27:30 1997 Theodore Y. Ts'o <tytso@edt.mit.edu>
1497
1498 * llseek.c: Added missing semicolon to glibc fixup declaration of
1499 llseek().
1500
1501 * bmove.c: Add #include of errno.h
1502
Theodore Ts'oe9affb71997-08-24 02:57:55 +00001503Sat Aug 23 22:47:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1504
1505 * Makefile.in (ELF_SO_VERSION): Bump version to be 2.4 since we've
1506 added a new field to the io_channel (app_data).
1507
1508 * io.h: Add a new element to the io_channel structure, app_data.
1509
1510 * initialize.c, openfs.c: Set io->app_data to point at the
1511 filesystem handle.
1512
Theodore Ts'o1c27cac1997-08-14 17:20:42 +00001513Thu Aug 14 08:14:17 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1514
1515 * io.h: Change the prototype of ext2fs_llseek() to use int's
1516 instead of unsigned int's.
1517
1518 * llseek.c: Change to allow PIC and !HAVE_LLSEEK. Add a prototype
1519 to make life easer for GNU Libc 2.
1520
1521 * rw_bitmaps.c: On the PowerPC, the big-endian variant of the ext2
1522 filesystem has its bitmaps stored as 32-bit words with bit
1523 0 as the LSB of each word. Thus a bitmap with only bit 0
1524 set would be, as a string of bytes, 00 00 00 01 00 ... To
1525 cope with this, we byte-reverse each word of a bitmap if
1526 we have a big-endian filesystem, that is, if we are *not*
1527 byte-swapping other word-sized numbers.
1528
Theodore Ts'o3cb6c501997-08-11 20:29:22 +00001529Mon Aug 11 03:30:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1530
1531 * dosio.c: New file to do DOS/BIOS disk accesses.
1532
1533 * namei.c (open_namei): Make pathlen be of type size_t.
1534
1535 * llseek.c: Always #include stdlib.h since it's need to define
1536 size_t.
1537
1538 * io.h: Use errcode_t for magic numbers.
1539
1540 * icount.c (get_icount_el): Use size_t where appropriate
1541
1542 * dupfs.c (ext2fs_dup_handle):
1543 * dblist.c (dir_block_cmp): Use size_t where appropriate.
1544
1545 * read_bb.c (ext2fs_read_bb_inode):
1546 * cmp_bitmaps.c (ext2fs_compare_inode_bitmap): Use blk_t, ino_t
1547 and size_t where appropriate.
1548
1549 * closefs.c (ext2fs_flush): Use dgrp_t instead of int where
1550 appropriate.
1551
1552 * openfs.c (ext2fs_open):
1553 * check_desc.c (ext2fs_check_desc): Use blk_t instead of int where
1554 appropriate.
1555
1556 * rw_bitmaps.c (read_bitmaps):
1557 * irel_ma.c:
1558 * inode.c (ext2fs_write_inode):
1559 * initialize.c (ext2fs_initialize):
1560 * brel_ma.c: Fix to make be 16-bit safe.
1561
1562 * link.c (ext2fs_link):
1563 * unlink.c (ext2fs_unlink):
1564 * lookup.c (lookup_proc):
1565 * ismounted.c (ext2fs_check_if_mounted):
1566 * block.c (xlate_func): Add #pragma argsused for Turbo C.
1567
Theodore Ts'o4cbe8af1997-08-10 23:07:40 +00001568Sun Aug 10 10:05:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1569
1570 * block.c (ext2fs_block_iterate2): Use retval which is a errcode_t
1571 type.
1572
1573 * bitmaps.c (make_bitmap): Use size_t instead of int where
1574 appropriate.
1575
1576 * bb_inode.c (set_bad_block_proc): Add #pragma argsused for Turbo C.
1577
1578 * alloc.c (ext2fs_new_inode): Use ino_t instead of int for the
1579 group number.
1580
1581 * get_pathname.c: Use ino_t instead of int where appropriate.
1582
1583 * ext2fs.h: Make the magic structure element be errcode_t instead
1584 of int.
1585
1586 * alloc.c alloc_tables.c badblocks.c bb_compat.c bb_inode.c
1587 bitmaps.c block.c bmove.c brel_ma.c check_desc.c closefs.c
1588 cmp_bitmaps.c dblist.c dblist_dir.c dir_iterate.c
1589 dirblock.c dupfs.c expanddir.c freefs.c get_pathname.c
1590 icount.c initialize.c inline.c inode.c irel_ma.c link.c
1591 llseek.c lookup.c mkdir.c namei.c newdir.c read_bb.c
1592 read_bb_file.c rs_bitmap.c rw_bitmaps.c swapfs.c
1593 test_io.c tst_badblocks.c tst_iscan.c unix_io.c unlink.c
1594 valid_blk.c version.c: Add an #ifdef for HAVE_UNISTD_H
1595
Theodore Ts'o024996c1997-06-17 05:38:35 +00001596Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1597
Theodore Ts'oa1230b11997-07-02 02:41:59 +00001598 * unix_io.c (unix_read_blk): If ext2fs_llseek() fails, but errno
1599 is zero, then return EXT2_IO_LLSEEK_FAILED.
1600
1601 * ext2_err.et.in: Add a new error code, EXT2_IO_LLSEEK_FAILED.
1602
Theodore Ts'o024996c1997-06-17 05:38:35 +00001603 * Release of E2fsprogs 1.11
1604
Theodore Ts'o549860c1997-06-17 03:55:00 +00001605Mon Jun 16 23:53:06 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1606
1607 * dblist.c (ext2fs_dblist_count): Added new function which returns
1608 the number of directory blocks in dblist.
1609
Theodore Ts'o36f21431997-06-14 07:25:40 +00001610Sat Jun 14 01:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1611
1612 * unix_io.c (unix_flush): Make the io_channel flush function do a
1613 fsync to flush the kernel buffers to disk.
1614
Theodore Ts'o9941fb71997-06-11 22:27:41 +00001615Wed Jun 11 18:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1616
1617 * inode.c (ext2fs_inode_scan_goto_blockgroup): Fix bug; the
1618 current inode number wasn't being set by the
1619 goto_blockgroup function.
1620
Theodore Ts'o1e1da291997-06-09 14:51:29 +00001621Mon Jun 9 10:45:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1622
1623 * bmove.c (ext2fs_move_blocks): New function which takes a bitmap
1624 of blocks which need to be moved, and moves those blocks
1625 to another location in the filesystem.
1626
1627 * rs_bitmap.c (ext2fs_resize_generic_bitmap): When expanding a
1628 bitmap, make sure all of the new parts of the bitmap are
1629 zero.
1630
1631Sun Jun 8 16:24:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1632
1633 * bitmaps.c (ext2fs_copy_bitmap): Fix bug; the destination bitmap
1634 wasn't being returned to the caller.
1635
1636 * alloc_tables.c (ext2fs_allocate_group_table): Add new function
1637 ext2fs_allocate_group_table() which sets the group tables
1638 for a particular block group. The relevant code was
1639 factored out of ext2fs_allocate_tables().
1640
1641 * dblist.c (make_dblist): Adjust the initial size of the directory
Theodore Ts'o024996c1997-06-17 05:38:35 +00001642 block list to be a bit more realistic (ten plus twice the
Theodore Ts'o1e1da291997-06-09 14:51:29 +00001643 number of directories in the filesystem).
1644
Theodore Ts'of635d7f1997-05-09 02:50:16 +00001645Thu May 8 22:19:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1646
1647 * badblocks.c (ext2fs_badblocks_list_test): Fix bug where
1648 ext2fs_badblocks_list_test would test the list (and exceed
1649 array boundaries) if there were no bad blocks on the bad
1650 blocks list. (Showed up when user tried: mke2fs -c -b 4096).
1651
Theodore Ts'oa29f4d31997-04-29 21:26:48 +00001652Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1653
1654 * Release of E2fsprogs version 1.10
1655
1656Thu Apr 24 10:13:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1657
1658 * alloc_tables.c (ext2fs_allocate_tables): Correctly place the
1659 inode and block bitmaps based on the RAID 0 stride
1660 parameter (which is passed by mke2fs).
1661
1662 * ext2fs.h: Add "stride" parameter to ext2_filsys, to be used by
1663 mke2fs to communicate the stride length to
1664 ext2fs_allocate_tables()
1665
1666Wed Apr 23 21:50:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1667
1668 * initialize.c (ext2fs_initialize): Fix to compile under Linux 1.2
1669 systems. (We can't assume that the new filesystem types
1670 are supported.)
1671
1672Wed Apr 23 18:40:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1673
1674 * alloc_tables.c (ext2fs_allocate_tables): Make sure that we
1675 allocate the inode and block bitmaps inside block group at
1676 all times.
1677
1678Mon Apr 21 00:06:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1679
1680 * alloc.c (ext2fs_new_block): Fix bug where if goal==0 and the
1681 filesystem has no free blocks, ext2fs_new_block would loop
1682 forever.
1683
1684 * dupfs.c (ext2fs_dup_handle): Duplicate an ext2 filesystem handle
1685
1686 * freefs.c (ext2fs_free_inode_cache): Decrement refcount and only
1687 free if refcount goes to zero.
1688
1689 * inode.c (create_icache): Initialize refcount to 1.
1690
1691 * ext2fsP.h: Added refcount to ext2_inode_cache
1692
1693 * dblist.c (ext2fs_copy_dblist): New function to copy a directory
1694 block list.
1695
1696 * badblocks.c (ext2fs_badblocks_copy): New function to copy a
1697 badblocks structure.
1698
1699Sun Apr 20 23:19:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1700
1701 * bitmaps.c (ext2fs_copy_bitmap): New function to copy a bitmap.
1702
1703 * unix_io.c, test_io.c (unix_open, test_open): Initialize the
1704 refcount to 1.
1705 (unix_close, test_close): Decrement the refcount and only
1706 close the io_channel if the refcount goes to 0.
1707
1708 * io.h: Add refcount to the io_channel structure. Add new macro
1709 interface io_channel_bumpcount() to bump the refcount.
1710
1711Thu Apr 17 20:25:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1712
1713 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Use the inode
1714 cache in the filesystem handle, instead of the inode cache
1715 in a static variable.
1716
1717 * freefs.c: Added static function to free the inode cache (called by
1718 ext2fs_free).
1719
1720 * ext2fsP.h: Added definition of the ext2_inode_cache structures.
1721
1722 * ext2fs.h: Added pointer to the inode_cache structure.
1723
1724 * block.c (block_iterate_ind, block_iterate_dind,
1725 block_iterate_tind): If there are holes in the indirect,
1726 doubly indirect, or triply indirect blocks, increment the
1727 block count field automatically.
1728
1729Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1730
1731 * Release of E2fsprogs version 1.09
1732
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +00001733Mon Apr 14 20:38:56 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1734
1735 * version.c (ext2fs_parse_version_string): Check the passed in
1736 version string (instead of the hard-coded one).
1737
1738 * alloc_tables.c (ext2fs_allocate_tables): If the last block is
1739 greater filesystem size, clamp it to prevent allocating a
1740 block or inode bitmap beyond the filesystem.
1741
1742 * initialize.c (ext2fs_initialize): Fix bug where the metatdata
1743 overhead calculation was accidentally removed.
1744
1745Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1746
1747 * Release of E2fsprogs version 1.08
1748
Theodore Ts'o521e3681997-04-29 17:48:10 +00001749Thu Apr 10 13:15:15 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1750
1751 * dblist.c (ext2fs_set_dir_block): New function which sets the
1752 block of a dblist entry, given the directory inode and
1753 blockcnt.
1754
1755Sat Apr 5 12:42:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1756
1757 * alloc_tables.c (ext2fs_allocate_tables): Allocate the bitmap and
1758 inode bitmaps at staggered locations across the block
1759 groups, to avoid concentrating the bitmaps on a small
1760 number of disks when using striped RAID arrays.
1761
1762 * initialize.c (ext2fs_initialize): By default, choose the maximum
1763 possible number of blocks per group (based on the size of
1764 the bitmaps in the blocksize).
1765
1766Fri Apr 4 11:28:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1767
1768 * initialize.c (ext2fs_initialize): Add support for
1769 EXT2_COMPAT_SPARSE_SUPER feature.
1770
1771 * closefs.c (ext2fs_bg_has_super): New function to determine
1772 whether or a particular block group should have a
1773 superblock and block group descriptor. Used for the
1774 EXT2_COMPAT_SPARSE_SUPER feature is turned on.
1775 (ext2fs_flush): Check ext2fs_bg_has_super to see whether
1776 or not the superblock should be written out for the block
1777 group.
1778
1779 * ext2fs.h (EXT2_COMPAT_SPARSE_SUPER): Define compatibility flag
1780 for sparse duplicate superblocks.
1781
1782 * version.c (ext2fs_get_library_version): New function which
1783 returns the library version.
1784
1785 * version.c (ext2fs_parse_version_string): New function which
1786 parses a version string and returns a version number,
1787 so application programs can compare version numbers as
1788 integers.
1789
1790Wed Mar 26 00:43:52 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1791
1792 * icount.c (ext2fs_create_icount): Change function so that it also
1793 takes a new argument which contains a "hint" icount
1794 structure. This "hint" icount allows the create function
1795 to set up the sorted list in advance. This reduces
1796 significantly the amount of data moving needed to insert
1797 these inodes into the list later.
1798
1799 * icount.c (ext2fs_icount_validate): New function which validates
1800 that the icount structure's rep invariant.
1801
1802 * icount.c (get_icount_el): Completely revamped implementation
1803 to subsume put_icount_el(). Put_icount_el() used to
1804 use an O(N) implementation to insert in the middle
1805 of the icount list. It now uses a O(ln N) to search
1806 for where the icount should be inserted, and then uses
1807 a memcpy to move the list down (instead of a for loop).
1808
1809 * icount.c (ext2fs_icount_fetch, ext2fs_icount_store,
1810 ext2fs_icount_increment, ext2fs_icount_decrement): Check
1811 to see if the inode is within bounds; if it isn't, return
1812 EINVAL.
1813
1814 * bitops.h (ext2fs_test_generic_bitmap): Fix error message given
1815 when a bad inode number is passed to test_generic_bitmap
1816 to be EXT2FS_TEST_ERROR instead of the wrong
1817 EXT2FS_UNMARK_ERROR.
1818
Theodore Ts'o21c84b71997-04-29 16:15:03 +00001819Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
1820
1821 * Release of E2fsprogs version 1.07
1822
1823Sun Mar 2 16:46:18 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1824
1825 * Makefile.in (ELF_VERSION): Change version to be 2.2
1826
1827Tue Feb 11 14:54:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1828
1829 * alloc.c (ext2fs_get_free_blocks): Change routine to use
1830 ext2fs_fast_test_block_bitmap_range().
1831
1832 * bitops.h (ext2fs_fast_test_block_bitmap_range,
1833 ext2fs_test_block_bitmap_range: New inline functions which
1834 test to see whether a contiguous range of blocks is
1835 available.
1836
1837Thu Feb 6 10:00:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1838
1839 * badblocks.c (ext2fs_badblocks_list_create): Rename sybmols to use
1840 use ext2fs_badblocks_* instead of badblocks_*
1841
1842 * bb_compat.c: New file which translates between old badblocks_*()
1843 names to ext2fs_badblocks_*()
1844
1845 * unlink.c (ext2fs_unlink): New file, moved ext2fs_unlink() from
1846 link.c (since e2fsck doesn't use ext2fs_unlink()).
1847
1848 * rs_bitmap.c (ext2fs_resize_generic_bitmap): New file, contains
1849 bitmap resizing routine moved from bitmaps.c, since e2fsck
1850 doesn't need to use this function.
1851
1852 * lookup.c (ext2fs_lookup): Moved ext2fs_lookup to its own file,
1853 since e2fsck only needs ext2fs_lookup.
1854
1855Mon Feb 3 10:11:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1856
1857 * inode.c (ext2fs_open_inode_scan): Set fs->badblocks if it is not
1858 already set; this is needed so that programs like dump
1859 which use the inode scan functions will deal with
1860 filesystems that have bad blocks in the inode table.
1861
1862Sun Feb 2 00:17:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1863
1864 * ext2fs.h (struct_badblocks_list, struct_badblocks_iterate):
1865 Moved to ext2fsP.h, since it doesn't need to be part of
1866 the public interface.
1867
1868 * dir_iterate.c: Move ext2_dir_iterate out of namei.c.
1869
1870Sat Feb 1 10:14:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1871
1872 * dblist.c (ext2fs_get_num_dirs): New file, which implements a
1873 directory block list abstraction. (Code moved from
1874 e2fsck).
1875
1876 * ext2fs.h, inode.c: Moved definition of ext2_struct_inode_scan to
1877 to inode.c (since no one else should be peeking inside it!)
1878
1879 * valid_blk.c (ext2_inode_has_valid_blocks): New function.
1880
1881 * openfs.c (ext2fs_open): Check the feature set in the ext2
1882 superblock, and refuse to open filesystems if they contain
1883 incompatible features. (Can be overriden with the
1884 EXT2_FLAG_FORCE
1885
1886Sun Jan 12 11:31:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1887
1888 * block.c (ext2fs_block_iterate2): Added new function
1889 ext2fs_block_iterate2 which changes the function
1890 signature of the callback function to include the
1891 referencing block and offset.
1892
1893 * inode.c (ext2fs_inode_scan_goto_blockgroup): Added new function
1894 ext2fs_inode_scan_goto_blockgroup which allows an
1895 application to jump to a particular block group while
1896 doing an inode scan.
1897
1898Wed Jan 1 23:50:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1899
1900 * dirblock.c: Include string.h, since we use memcpy().
1901
1902Tue Dec 3 12:27:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1903
1904 * getsize.c (ext2fs_get_device_size): The ioctl BLKGETSIZE returns
1905 a long not an int; this doesn't matter on i386 machines,
1906 but it does on Alpha's.
1907
1908Fri Nov 29 20:57:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1909
1910 * inode.c (ext2fs_write_inode, ext2fs_read_inode): If the inode
1911 table pointer is NULL, then return an error indicating
1912 that the inode table is missing.
1913 (get_next_blockgroup, get_next_blocks,
1914 ext2fs_get_next_inode): Don't treat a missing inode table
1915 as permanent error. Return MISSING_INODE_TABLE, but as an
1916 advisory error code, much like BAD_BLOCK_IN_INODE_TABLE.
1917
1918 * rw_bitmaps.c (ext2fs_write_block_bitmap,
1919 ext2fs_write_inode_bitmap): If the inode or block bitmap
1920 block is zero, then don't write out the inode or block
1921 bitmap. The idea here is to avoid stomping on the
1922 superblock.
1923 (read_bitmaps): If the inode or block bitmap block is
1924 zero, then fill in that portion of the inode or block
1925 bitmap with all zeros.
1926
1927 * inode.c (ext2fs_get_next_inode): Fix bug in handling of bad
1928 blocks in inode table when the inode table size is
1929 non-standard (and can therefore span blocks).
1930
1931Tue Oct 29 20:13:14 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1932
1933 * alloc.c (ext2fs_new_block): Fix fencepost error in
1934 ext2fs_new_block; make sure we don't try to allocate the
1935 first block beyond the end of the filesystem.
1936
1937Mon Oct 14 11:00:48 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1938
1939 * inode.c (check_for_inode_bad_blocks): New function called by
1940 get_next_blocks() to avoid reading in bad blocks marked in
1941 fs->badblocks. Inodes located in bad blocks are returned
1942 by ext2fs_get_next_inode() returns the error code
1943 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE.
1944
1945 * alloc_tables.c (ext2fs_allocate_tables): New function which
1946 performs the part of mke2fs's job of allocating the
1947 filesystem tables.
1948
1949 * test_io.c (test_close): IO manager which is used for testing
1950 purposes.
1951
1952Sun Oct 13 04:31:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1953
1954 * inode.c (ext2fs_get_next_inode): Separate out the function of
1955 setting up for a new block group to get_next_blockgroup().
1956 Separate out the function of reading in blocks of the
1957 inode table to get_next_blocks().
1958
1959 * ext2fs.h: Add the badblocks list to the ext2_filsys entry
1960
1961 * badblocks.c (badblocks_list_add, badblocks_list_test): Add
1962 blocks to the badblock list in sorted order. This allows
1963 badblocks_list_test to be coded using a binary search for
1964 speed.
1965
1966Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1967
1968 * Release of E2fsprogs version 1.06
1969
Theodore Ts'o5c576471997-04-29 15:29:49 +00001970Mon Oct 7 00:44:17 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1971
1972 * ext2fs.h, block.c, closefs.c, dirblock.c, inode.c, native.c,
1973 open.c: Change EXT2_SWAP to EXT2_FLAG_SWAP for
1974 consistency's sake.
1975
1976 * closefs.c (ext2fs_flush): If the flag EXT2_MASTER_SB_ONLY is
1977 set, then only write out the master superblock.
1978
1979Sun Oct 6 21:45:26 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1980
1981 * block.c (ext2fs_block_iterate): Fixed bug which caused
1982 block_iterate to fail to handle HURD created filesystems;
1983 it tested the inode translator field before the inode was
1984 loaded.
1985
1986Tue Sep 17 14:08:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1987
1988 * initialize.c (ext2fs_initialize): Make sure the description for
1989 the inode bitmap is set correctly.
1990
1991 * bitmaps.c (ext2fs_allocate_generic_bitmap): Fix minor type typo.
1992
1993Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1994
1995 * Release of E2fsprogs version 1.05
1996
Theodore Ts'o1e3472c1997-04-29 14:53:37 +00001997Sat Sep 7 07:36:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1998
1999 * initialize.c: Override the kernel's idea of default
2000 checkinterval from 0 (never) to 180 days.
2001
2002Wed Aug 28 03:20:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2003
2004 * namei.c (ext2fs_namei_follow): New function which follows
2005 symbolic link (if any) at the target.
2006
2007Tue Aug 27 01:48:43 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2008
2009 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Add support
2010 for shortcut function fs->read_inode() and fs->write_inode().
2011 Added inode_cache to reduce CPU time spent in doing
2012 byte swapping.
2013
2014 * swapfs.c (ext2fs_swap_super): Swap the new fields in a V2
2015 superblock.
2016
2017 * namei.c (ext2fs_follow_link): New function.
2018 (ext2fs_namei): Extended to have support for chasing
2019 symbolic links. ext2fs_namei() still returns an inode
2020 which is a symbolic link. Symbolic links are only chased
2021 while resolving the containing directory. To chase
2022 symbolic links of the final result, use
2023 ext2fs_follow_link().
2024
2025Mon Aug 26 23:46:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2026
2027 * ext2_err.et.in: Added new error code EXT2_ET_SYMLINK_LOOP.
2028
2029 * bitops.h (ext2fs_set_bit, ext2fs_celar_bit): Use asm inlines
2030 provided by Pete A. Zaitcev (zaitcev@lab.sun.mcst.ru).
2031
2032Thu Aug 22 00:40:18 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2033
2034 * initialize.c (ext2fs_initialize): On systems where the byte
2035 order is not i386 compatible, set the swap_byte flag.
2036
2037 * inode.c (inocpy_with_swap): Check to see if inode contains a
2038 fast symlink before swapping the inode block fields. This
2039 required adding a new argument to inocpy_with_swap to
2040 determine whether the mode field is in host order or not.
2041
2042Wed Aug 21 00:45:42 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2043
2044 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit): On
2045 the sparc, if EXT2_STD_BITOPS set, use the standard
2046 i386-compatible bitmask operations, instead on the
2047 non-standard native bitmask operators.
2048
2049Fri Aug 9 11:11:35 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2050
2051 * block.c (ext2fs_block_iterate): Cause block iterator to return
2052 the HURD translator block (along with everything else).
2053 If the flag BLOCK_FLAG_DATA_ONLY is passed to the block
2054 iterator, then don't return any meta data blocks
2055 (including the HURD translator).
2056
2057Wed Jul 17 17:13:34 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2058
2059 * gen_uuid.c: New file, which generates DCE-compatible UUIDs.
2060
2061 * uuid.c: New file, containing UUID utility functions.
2062
2063Tue Jul 16 10:19:16 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2064
2065 * ext2fs.h: Add a definition of the "real" ext2 superblock.
2066
2067Fri May 24 14:54:55 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2068
2069 * ext2fs.h: Fix erroneous ino_t type used in block_bitmap type.
2070
2071Sun May 19 15:39:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2072
2073 * openfs.c (ext2fs_open): If the blocksize in the superblock is
2074 zero, return the error EXT2_ET_CORRUPT_SUPERBLOCK, since
2075 that's a basic value that must be correct for the rest of
2076 the library to work.
2077
2078 * ext2_err.et.in (EXT2_ET_CORRUPT_SUPERBLOCK): Added new error
2079 code.
2080
Theodore Ts'o62c06f71997-04-29 14:34:47 +00002081Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
2082
2083 * Release of E2fsprogs version 1.04
2084
Theodore Ts'o7f88b041997-04-26 14:48:50 +00002085Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
2086
2087 * Release of E2fsprogs version 1.03
2088
2089Tue Mar 26 12:06:32 1996 <tytso@rsts-11.mit.edu>
2090
2091 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit):
2092 Change the m68k bit numbering for bitmasks to match with
2093 the bit numbering used by all other ext2 implementations.
2094
2095Thu Mar 7 03:37:00 1996 <tytso@rsts-11.mit.edu>
2096
2097 * inode.c (ext2fs_get_next_inode, ext2fs_close_inode_scan,
2098 ext2fs_open_inode_scan): Support dynamically-sized inodes.
2099
2100Wed Mar 6 12:26:29 1996 <tytso@rsts-11.mit.edu>
2101
2102 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Support
2103 dynamically-sized inodes.
2104
2105 * openfs.c (ext2fs_open): Allow dynamic revision filesystem to be
2106 loaded.
2107
2108Tue Mar 5 03:49:37 1996 <tytso@rsts-11.mit.edu>
2109
2110 * initialize.c (ext2fs_initialize): Catch an error condition where
2111 the passed in size is *really* too small.
2112
2113 * alloc.c (ext2fs_new_inode):
2114 * ext2fs.h (EXT2_FIRST_INODE): Add support for dynamic revision to
2115 get first inode.
2116
2117Wed Feb 21 15:56:17 1996 <tytso@rsts-11.mit.edu>
2118
2119 * getsize.c (ext2fs_get_device_size): Open the device read-only
2120 when trying to determine its size.
2121
Theodore Ts'o74becf31997-04-26 14:37:06 +00002122Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
2123
2124 * Release of E2fsprogs version 1.02
2125
2126Sat Dec 9 09:57:50 1995 <tytso@rsts-11.mit.edu>
2127
2128 * rw_bitops.c (ext2fs_write_block_bitmap):
2129 * bitops.c (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
2130 * bitops.h (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
2131 Rename {test,set,clear}_bit to ext2fs_{test,set,clear}_bit,
2132 to avoid conflicts with with kernel include files. Also
2133 rename ADDR and CONST_ADDR to EXT2FS_ADDR and
2134 EXT2FS_CONST_ADDR.
2135
Theodore Ts'o50e1e101997-04-26 13:58:21 +00002136Thu Oct 26 12:09:16 1995 <tytso@rsts-11.mit.edu>
2137
2138 * ext2_err.et: Updated message in EXT2_ET_BASE to say version 0.5c
2139
2140 * swapfs.c (ext2fs_swap_super): Put an #ifdef check around
2141 s_def_resuid and s_def_resgid for backwards compatibility.
2142
2143Fri Oct 20 23:33:31 1995 <tytso@rsts-11.mit.edu>
2144
2145 * bitops.h: Added #ifdef's for Sparc.
2146
2147Wed Sep 6 22:14:46 1995 <tytso@rsts-11.mit.edu>
2148
2149 * getsize.c: #include <sys/ioctl.h> under Linux to pick up ioctl()
2150 declaration
2151
2152 * closefs.c: #include <string.h> to pick up memset() declaration
2153
2154Mon Sep 4 21:45:29 1995 Remy Card <card@bbj>
2155
2156 * Makefile.in: Added support for BSD shared libraries.
2157
2158 * initialize.c (ext2fs_initialize): Correctly set the s_creator_os
2159 flag.
2160
2161Mon Sep 4 09:55:30 1995 <tytso@rsts-11.mit.edu>
2162
2163 * unix_io.c (unix_open): Add a double check; if the passed in name
2164 is NULL, return EXT2_ET_BAD_DEVICE_NAME.
2165
2166 * ext2_err.et (EXT2_ET_BAD_DEVICE_NAME): Added new error code
2167
2168Wed Aug 16 15:44:10 1995 <tytso@rsts-11.mit.edu>
2169
2170 * inode.c (ext2fs_check_directory): Use LINUX_S_ISDIR instead of
2171 S_ISDIR.
2172
2173Tue Aug 15 13:08:36 1995 <tytso@rsts-11.mit.edu>
2174
2175 * getsize.c (ext2fs_get_device_size): Add support for reading the
2176 partition size from a BSD disk label.
2177
2178Thu Aug 10 09:33:26 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2179
2180 * getsize.c (ext2fs_get_device_size): New function that determins
2181 the size of a device. Used by mke2fs and e2fsck.
2182
2183Sat Aug 12 03:09:54 1995 Remy Card <card@bbj>
2184
2185 * Makefile.in (install): Install static libraries in $(ulibdir)
2186 (/usr/lib on Linux) instead of $(libdir) (/lib on Linux).
2187
2188Wed Aug 9 17:04:23 1995 Theodore Y. Ts'o <tytso@dcl>
2189
2190 * bitmaps.c (ext2fs_free_inode_bitmap, ext2fs_free_block_bitmap):
2191 Move these functions to freefs.c.
2192
2193 * closefs.c (ext2fs_flush): If swapping blocks, clear the group
2194 descriptors shadow memory to keep purify quiet. (This
2195 also has the nice benefit that the unused portion of the
2196 shadow descriptors are zeroed out.)
2197
2198 * dirblock.c (ext2fs_write_dir_block): We need to use
2199 dirent->rec_len *before* it's byteswapped to find the
2200 location of the next directory structure!
2201
2202 * alloc.c (ext2fs_new_inode): Fix bug which could potentially
2203 cause ext2fs_new_inode to loop infinitely if we're trying
2204 to allocate an inode in group #0 and there are no free
2205 inodes at all in the system.
2206
2207 * closefs.c: #include <errno.h> if it exists.
2208
2209Sun Aug 6 13:27:50 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2210
2211 * ext2fs.h (BLOCK_FLAG_HOLE): Added new definition for
2212 BLOCK_FLAG_APPEND. Added documentation for the block
2213 interator flags.
2214
2215Sat Aug 5 11:44:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2216
2217 * Makefile.in (DLL_INSTALL_DIR, ELF_INSTALL_DIR): Set the
2218 installation directories correctly.
2219
2220Tue Jul 18 09:27:38 1995 <tytso@rsx-11.mit.edu>
2221
2222 * namei.c (process_dir_block):
2223 * mkdir.c (ext2fs_mkdir):
2224 * expanddir.c (expand_dir_proc): Use ext2fs_{read,write}_dir_block
2225 to read/write the directory block.
2226
2227 * dirblock.c (ext2fs_read_dir_block), ext2fs_write_dir_block): New
2228 file containing functions for reading and writing
2229 directory blocks (byte swapping if necesssary)
2230
2231 * block.c (block_iterate_ind, block_iterate_dind,
2232 block_iterate_tind): Byte swap the block addresses if
2233 EXT2_SWAP_BYTES is set (and swap them back before writing
2234 them out.)
2235
2236 * inode.c (inocpy_with_swap): New function.
2237 (ext2fs_get_next_inode, ext2fs_read_inode, ext2fs_write_inode):
2238 Call inocpy_with_swap if EXT2_SWAP_BYTES if set.
2239
2240 * closefs.c (ext2fs_flush): If EXT2_SWAP_BYTES is set, then swap
2241 the superblock and group descriptors before writing it out.
2242
2243 * openfs.c (ext2fs_open): If the magic number is byte-swapped,
2244 then set the EXT2_SWAP_BYTES and byte-swap the superblock
2245 and group descriptors.
2246
2247 * swapfs.c (ext2fs_swap_super, ext2fs_swap_group_desc): New functions
2248 to desp ext2 filesystem structures.
2249
2250 * bitops.c (set_bit, clear_bit, test_bit): Use modifications
2251 supplied by Pete A. Zaitcev so that the C language
2252 versions of these functions are more portable. They will
2253 now work on both little and big endian systems, and the
2254 assumption that 32-bit integers are used is gone.
2255
2256 * bitops.h (ext2_swab16, ext2_swab32): Added new functions for
2257 doing byte swapping.
2258
2259 * ext2fs.h (EXT2_SWAP_BYTES): Add new flag which indicates that
2260 byte swapping should take place.
2261
2262Sun Jul 16 06:21:43 1995 <tytso@rsx-11.mit.edu>
2263
2264 * Makefile.in, cmp_bitmaps.c (ext2fs_compare_block_bitmap_end,
2265 ext2fs_compare_inode_bitmap_end): Added new file
2266 containing routines to compare bitmaps.
2267
2268 * ext2_err.et (EXT2_ET_NEQ_BLOCK_BITMAP, EXT2_ET_NEQ_INODE_BITMAP):
2269 Added new error codes.
2270
2271Sat Jul 15 04:23:37 1995 <tytso@rsx-11.mit.edu>
2272
2273 * inode.c (ext2fs_get_next_inode): Don't check scan->inode_buffer;
2274 if the magic number is correct, it will be allocated.
2275
2276Fri Jul 14 19:02:59 1995 <tytso@rsx-11.mit.edu>
2277
2278 * block.c (block_iterate_ind, block_iterate_dind,
2279 block_iterate_tind): Don't recompute block_nr each loop;
2280 just increment it! Factor check of BLOCK_FLAG_APPEND out
2281 of the loop. Factor mask of BLOCK_CHANGED into changed
2282 variable out of the loop. (block_iterate_ind, in
2283 particular, gets called a lot, so every little
2284 optimization helps.)
2285
2286Thu Jul 13 08:02:45 1995 <tytso@rsx-11.mit.edu>
2287
2288 * block.c (block_iterate_ind, block_iterate_dind,
2289 block_iterate_tind): Precompute limit of loop to speed up
2290 block_iterate_ind and company.
2291
2292 * bitops.h (ext2fs_fast_mark_block_bitmap,
2293 ext2fs_fast_unmark_block_bitmap, ext2fs_fast_test_block_bitmap,
2294 ext2fs_fast_mark_inode_bitmap, ext2fs_fast_unmark_inode_bitmap,
2295 ext2fs_fast_test_inode_bitmap): Add fast version of these
2296 functions, which don't do range checking.
2297
2298 * bitops.h (ext2fs_get_block_bitmap_start,
2299 ext2fs_get_inode_bitmap_start, ext2fs_get_block_bitmap_end,
2300 ext2fs_get_inode_bitmap_end): Add new accessor functions
2301 which return the start and end points of the bitmaps.
2302
2303Tue Jul 11 18:59:41 1995 <tytso@rsx-11.mit.edu>
2304
2305 * llseek.c (ext2_llseek): If the offset is small enough, use lseek
2306 instead of llseek. The errno if the offset is too large
2307 and lseek is not supported should be EINVAL, not -EINVAL.
2308
2309Thu Jun 15 23:43:02 1995 Remy Card <card@bbj>
2310
2311 * Makefile.in: Added support for ELF shared libraries.
2312 Fixed typos in the compilation rules.
2313 (distclean): Added Makefile.
2314
2315 * llseek.c (llseek): New function, if llseek() does not exist in the
2316 C library.
2317 (ext2_llseek): Changed to call llseek().
2318
2319Mon Jun 12 08:29:07 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2320
2321 * ext2fs.h: Use __u32 to define blk_t, instead of unsigned long.
2322
2323Sun Jun 11 15:02:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2324
2325 * mkdir.c (ext2fs_mkdir): Use LINUX_S_IFDIR instead of S_IFDIR.
2326
2327 * ext2fs.h (LINUX_S_IFDIR): Define a linux specific versions of
2328 the S_*, which are normally defined in <sys/stat.h>. This
2329 allows us to compile e2fsprogs on a non-Linux system,
2330 which may have a different value for S_IFDIR.
2331
2332Sat Jun 10 23:47:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
2333
2334 * bitops.c (clear_bit, set_bit): Remove calls to cli() and sti();
2335 this is a user-mode application!
2336
2337Thu Jun 8 13:13:22 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
2338
2339 * llseek.c: Put the include of <linux/unistd.h> inside the #ifdef
2340 __linux__ so that non-linux systems won't see it.
2341
2342 * alloc.c: Include <errno.h> if possible.
2343 * badblocks.c: Ditto.
2344 * bb_inode.c: Ditto.
2345 * bitmaps.c: Ditto.
2346 * block.c: Ditto.
2347 * expanddir.c: Ditto.
2348 * get_pathname.c: Ditto.
2349 * initialize.c: Ditto.
2350 * inode.c: Ditto.
2351 * llseek.c: Ditto.
2352 * mkdir.c: Ditto.
2353 * namei.c: Ditto.
2354 * newdir.c: Ditto.
2355 * openfs.c: Ditto.
2356 * rw_bitmaps.c: Ditto.
2357 * unix_io.c: Ditto.
2358
2359 * Makefile.in: Rewritten to conform to GNU coding standards and
2360 support separate compilation directories.
2361
2362Thu May 11 04:13:12 1995 <tytso@rsx-11.mit.edu>
2363
2364 * initialize.c (ext2fs_initialize): Don't allow more than one
2365 bitmaps's worth of inodes in a group.
2366
Theodore Ts'of3db3561997-04-26 13:34:30 +00002367Sat Mar 11 14:07:11 1995 Theodore Y. Ts'o <tytso@localhost>
2368
2369 * llseek.c (ext2_llseek): Added error checking to the llseek()
2370 compat code to protect against overflow. This only
2371 applies to 1.0 and early 1.1 kernels, which don't support
2372 the llseek() system call.
2373
2374Thu Nov 24 16:29:00 1994 Theodore Y. Ts'o (tytso@rt-11)
2375
2376 * unix_io.c (unix_open): Initialize the read_error and write_error
2377 io_channel pointers to be null.
2378
2379 * bb_inode.c (clear_bad_block_proc): If an illegal block number is
2380 found, clear it but don't try to update the filesystem
2381 accounting information, since that's hopeless anyway.
2382
2383 * block.c (bloblock_iterate_ind, bloblock_iterate_dind,
2384 bloblock_iterate_tind): Check to see if the indirect blocks are
2385 valid before trying to read them.
2386
2387 * ext2_err.et (EXT2_ET_BAD_IND_BLOCK, EX2_ET_BAD_DIND_BLOCK,
2388 EXT2_ET_BAD_TIND_BLOCK): Add new error codes.
2389
2390 * bitops.h (ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
2391 ext2fs_test_block_bitmap, ext2fs_mark_inode_bitmap,
2392 ext2fs_unmark_inode_bitmap, ext2fs_test_inode_bitmap): If an
2393 illegal block or inode number is passed in, return instead
2394 of trying to test, set, or clear the bit.
2395
2396Mon Nov 7 21:32:33 1994 Remy Card <card@bbj>
2397
2398 * Makefile: Added a dummy install target in case shared libraries
2399 are not built.
2400
2401Mon Oct 24 14:11:44 1994 (tytso@rsx-11)
2402
2403 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix calculation of how
2404 the real last block of the bitmap should be calculated.
2405
2406Wed Sep 7 10:05:36 1994 (tytso@rsx-11)
2407
2408 * bitmaps.c (ext2fs_fudge_inode_bitmap_end,
2409 ext2fs_fudge_block_bitmap_end, ext2fs_clear_inode_bitmap,
2410 ext2fs_clear_block_bitmap, ext2fs_free_inode_bitmap,
2411 ext2fs_free_block_bitmap): Add magic number checking for
2412 the inode and block bitmaps.
2413
2414 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix to set the correct
2415 magic number for a block bitmap instead of an inode bitmap.
2416
2417 * inode.c (ext2fs_close_inode_scan, ext2fs_get_next_inode): Add
2418 magic number checking for the inode_scan structure.
2419
2420 * badblocks.c (badblocks_list_free, badblocks_list_add,
2421 badblocks_list_test, badblocks_list_iterate_begin,
2422 badblocks_list_iterate, badblocks_list_iterate_end): Add
2423 magic number checking for the badblocks_list and
2424 badblocks_iterate structures.
2425
2426 * ext2_err.et (EXT2_ET_MAGIC_UNIX_IO_CHANNEL):
2427 * unix_io.c (unix_open, unix_close, unix_set_blksize, unix_read_blk,
2428 unix_write_blk, unix_flush): Add magic number checking
2429 both for io_channel structure and unix_private_data
2430 structure.
2431
2432 * openfs.c (ext2fs_open): Add check for io_manager structure's
2433 magic number.
2434
2435 * rw_bitmaps.c (ext2fs_write_inode_bitmap, ext2fs_write_block_bitmap,
2436 ext2fs_read_inode_bitmap, ext2fs_read_block_bitmap,
2437 ext2fs_read_bitmaps, ext2fs_write_bitmaps):
2438 * read_bb.c (ext2fs_read_bb_inode):
2439 * read_bb_file.c (ext2fs_read_bb_FILE):
2440 * newdir.c (ext2fs_new_dir_block):
2441 * namei.c (ext2fs_dir_iterate, ext2fs_lookup, ext2fs_namei):
2442 * link.c (ext2fs_link, ext2fs_unlink):
2443 * inode.c (ext2fs_open_inode_scan, ext2fs_read_inode,
2444 ext2fs_write_inode, ext2fs_get_blocks,
2445 ext2fs_check_directory):
2446 * get_pathname.c (ext2fs_get_pathname):
2447 * expanddir.c (ext2fs_expand_dir):
2448 * block.c (ext2fs_block_iterate):
2449 * bitmaps.c (ext2fs_allocate_inode_bitmap,
2450 ext2fs_allocate_block_bitmap):
2451 * bb_inode.c (ext2fs_update_bb_inode):
2452 * alloc.c (ext2fs_new_inode,ext2fs_new_block,ext2fs_get_free_blocks):
2453 * check_desc.c (ext2fs_check_desc):
2454 * closefs.c (ext2fs_close, ext2fs_flush):
2455 * freefs.c (ext2fs_free): Add check for ext2_filsys magic number.
2456
2457 * Makefile:
2458 * ext2fs.h:
2459 * openfs.c:
2460 * check_desc.c (ext2fs_check_desc): Move ext2fs_check_desc from
2461 openfs.c into its own file.
2462
2463 * ext2fs.h (EXT2_CHECK_MAGIC): Added macro for checking for
2464 structure magic numbers.
2465
2466 * closefs.c (ext2fs_flush): Folded in Remy Card's changes to clear
2467 the EXT2_VALID_FS flag in the backup superblock blocks, so that if
2468 someone uses the -b option to specify the use of the backup
2469 superblock --- this usually means that the main superblock is
2470 toast. :-)
2471
2472 * ext2fs.h:
2473 * ext2_err.et (EXT2_ET_REV_TOO_HIGH):
2474 * openfs.c (ext2fs_open): Folded in Remy Card's changes to add a
2475 revision level to the superblock.
2476
2477Sun Aug 21 00:50:08 1994 Theodore Y. Ts'o (tytso@rt-11)
2478
2479 * ext2fs.h:
2480 * bitmaps.c:
2481 * bitops.c
2482 * bitops.h:
2483 * openfs.c:
2484 * initialize.c: Completely revamped the inode and block bitmap
2485 structures, so that they can be better chance of being extensible
2486 in a shared library. They are now their own type, instead of
2487 being a char *. Also, the function signatures of
2488 ext2fs_test_block_bitmap, ext2fs_mark_block_bitmap,
2489 ext2fs_unmark_block_bitmap, ext2fs_test_inode_bitmap,
2490 ext2fs_mark_inode_bitmap, and ext2fs_unmark_inode_bitmap were
2491 changed to eliminate the ext2_filsys argument, since it is no
2492 longer necessary.
2493
2494Wed Aug 17 21:46:44 1994 Remy Card (card@bbj)
2495
2496 * unix_io.c (unix_read_blk and unix_write_blk): use the llseek
2497 system call if available.
2498
2499 * llseek.c: new file. This is the stub calling the llseek system
2500 call which allows supports for 2GB+ file systems.
2501
2502 * initialize.c (ext2fs_initialize): Ext2fs_initialize now stores
2503 the creator operating system.
2504
2505Wed Aug 17 10:03:24 1994 Theodore Y. Ts'o (tytso@rt-11)
2506
2507 * initialize.c (ext2fs_initialize): Ext2fs_initialize now sets up
2508 the group descriptor statistics in addition to everything else.
2509 This relieves mke2fs of the responsibility of doing it.
2510
2511 * bitops.c, bitops.h: Add assembly inline functions for the 68000.
2512 Added a new #define, _EXT2_HAVE_ASM_BITOPS_ to control whether or
2513 not the generic C function equivalents should be included or not.
2514
2515 * openfs.c (ext2fs_open): If a superblock is specified, then use
2516 the backup group descriptors that go along with this superblock,
2517 instead of using the primary group descriptors. This allows
2518 e2fsck to recover filesystems where the primary group descriptors
2519 have been trashed.
2520
2521