blob: 632ec4a161d372531896663420457bc9451af4c0 [file] [log] [blame]
Theodore Ts'od5f858d2001-05-25 17:14:23 +000012001-05-25 Theodore Tso <tytso@valinux.com>
2
3 * ismounted.c: More cleanups for ismounted.c, some from Andreas,
4 some to clean up Andreas's patches. Use strncpy instead
5 of strcpy to save the root's mountpoint. Clean up #ifdef
6 structure. Remove uneeded variable in testing/debug driver.
7
Theodore Ts'occ860172001-05-25 16:32:53 +000082001-05-24 Andreas Dilger <adilger@turbolinux.com>
9
10 * ismounted.c: Add check for root device which doesn't depend on
11 /etc/fstab or /proc/mounts to be correct. Don't call
12 endmntent() before we are done with mnt struct.
13
Theodore Ts'o4ed8ebe2001-05-23 18:30:10 +0000142001-05-23 Theodore Tso <tytso@valinux.com>
15
16 * ext2_err.et.in (EXT2_ET_JOURNAL_UNSUPP_VERSION): Added new error
17 code.
18
Theodore Ts'ob10820c2001-05-21 05:23:31 +0000192001-05-21 Theodore Tso <tytso@valinux.com>
20
21 * ext2_fs.h: Change assignment of EXT2_FEATURE_COMPAT_DIR_INDEX to
22 make room for pre-existing usage of
23 EXT2_FEATURE_COMPAT_EXT_ATTR. Add flag EXT2_INDEX_FL with
24 the same codepoint as EXT2_BTREE_FL.
25
Theodore Ts'o7c2d2562001-05-21 02:54:21 +0000262001-05-20 Theodore Tso <tytso@valinux.com>
27
28 * ext2fs.h: #include <> instead of "" for ext2fs and et header
29 files, since they will be installed in /usr/include
30
Theodore Ts'o7a34cb02001-05-14 04:28:35 +0000312001-05-14 Theodore Tso <tytso@valinux.com>
32
Theodore Ts'o9f8046f2001-05-14 11:35:52 +000033 * alloc.c, alloc_tables.c, badblocks.c, bb_compat.c, bb_inode.c,
34 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
35 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
36 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
37 expanddir.c, ext2_fs.h, fileio.c, finddev.c, flushb.c,
38 freefs.c, get_pathname.c, getsize.c, icount.c, imager.c,
39 initialize.c, inline.c, inode.c, irel_ma.c, ismounted.c,
40 link.c, lookup.c, mkdir.c, mkjournal.c, namei.c, native.c,
41 newdir.c, nt_io.c, openfs.c, read_bb.c, read_bb_file.c,
42 rs_bitmap.c, rw_bitmaps.c, swapfs.c, test_io.c,
43 tst_badblocks.c, tst_byteswap.c, tst_getsize.c,
44 tst_iscan.c, unix_io.c, unlink.c, valid_blk.c, version.c,
45 write_bb_file.c, ext2_fs.h: Moved file from include/linux.
46 Adjust all files in this directroy to include this file.
47
Theodore Ts'o7a34cb02001-05-14 04:28:35 +000048 * mkjournal.c (ext2fs_create_journal_superblock): Remove redundant
49 code.
50
Theodore Ts'o0f679452001-05-05 16:42:24 +0000512001-05-05 Theodore Tso <tytso@valinux.com>
52
53 * fileio.c (ext2fs_file_read): Factored out common code and
54 cleaned up function. Fixed a bug where if there was an
55 error reading from the disk, the number of bytes read
56 wasn't reliably set. (Fixes Debian bug #79163)
57 (ext2fs_file_write): Factored out common code and made
58 function more efficient; if writing a full block, don't
59 bother to do a read-modify-write cycle.
60
Theodore Ts'o1cca4d62001-05-05 05:12:14 +0000612001-05-04 Theodore Tso <tytso@valinux.com>
62
63 * dirblock.c (ext2fs_read_dir_block): Check for an directory
64 record length which isn't a multiple four, and treat that
65 as an invalid. Scan the directory and return an error
66 (EXT2_ET_DIR_CORRUPTED) if the directory records are
67 corrupted.
68 (ext2fs_write_dir_block): If while byte-swapping the
69 directory block, if there's an error, abort and return
70 EXT2_ET_DIR_CORRUPTED.
71
Theodore Ts'oa78926e2001-05-03 04:02:29 +0000722001-05-02 Theodore Tso <tytso@valinux.com>
73
74 * ext2fs.h (EXT2_FLAG_IMAGE_FILE): Add new flag, and add
75 image_header field in the ext2_filsys structure
76
77 * block.c (block_iterate_ind, block_iterate_dind, block_iterate_tind):
78 * inode.c (ext2fs_read_inode):
79 * rw_bitmaps.c (read_bitmaps):
80 * openfs.c (ext2fs_open): Add support for EXT2_FLAG_IMAGE_FILE
81
82 * imager.c (ext2fs_image_bitmap_read): Fix bug in imager to make
83 sure the full bitmap is saved.
84
Theodore Ts'of955cc12001-05-01 19:04:28 +0000852001-05-01 Theodore Tso <tytso@valinux.com>
86
Theodore Ts'oa78926e2001-05-03 04:02:29 +000087 * e2image.h (struct ext2_image_hdr): Add space for the device name
88 in the image header.
89
Theodore Ts'of955cc12001-05-01 19:04:28 +000090 * dir_iterate.c (ext2fs_process_dir_block): Add a double-check to
91 make sure the rec_len is a multiple of 4, to prevent
92 bus-errors on architectures which care about mis-aligned
93 pointer references.
94
Theodore Ts'o954a6832001-04-26 01:42:37 +0000952001-04-25 Theodore Tso <tytso@valinux.com>
96
97 * getsize.c (ext2fs_get_device_size): Use an unsigned long to
98 query the device sizes using the BLKGETSIZE ioctl.
99
Theodore Ts'o03603942001-04-17 00:53:25 +00001002001-04-16 Theodore Tso <tytso@valinux.com>
101
Theodore Ts'o52db0b42001-04-17 02:22:05 +0000102 * ismounted.c (check_mntent): Check /proc/mounts on Linux systems
103 before checking /etc/mtab. The EXT2_MF_READONLY flag is
104 now set from the /etc/mtab options field for all
105 filesystems, not just the root filesystem. Add debugging
106 code to make it easier to test ext2fs_check_if_mounted().
107
Theodore Ts'o03603942001-04-17 00:53:25 +0000108 * mkjournal.c (ext2fs_create_journal_superblock): Add safety
109 check; return an error if there's an attempt to create a
110 journal less than 1024 filesystem blocks.
111
112 * ext2_err.et.in, mkjournal.c: Change EXT2_JOURNAL_NOT_BLOCK and
113 EXT2_NO_JOURNAL_SB to be EXT2_ET_*.
114
Theodore Ts'o9ec53cf2001-02-20 16:28:40 +00001152001-02-20 Theodore Tso <tytso@valinux.com>
116
117 * bitops.h (ext2fs_swab16, ext2fs_swab32): Add i386 assembly
118 inline functions.
119
120 * tst_byteswap.c: New function to test the byteswap functions.
121 Add to regression test suite.
122
Theodore Ts'oc5423c52001-02-08 05:45:17 +00001232001-02-08 Theodore Tso <tytso@valinux.com>
124
125 * e2image.h (struct ext2_image_hdr): Fix type for fs_hostname
126
Theodore Ts'od23042a2001-02-08 03:37:16 +00001272001-02-07 Theodore Tso <tytso@valinux.com>
128
129 * mkjournal.c (ext2fs_create_journal_superblock): Fix the setting
130 of s_first for external devices to always be 1, since
131 jsb->s_first is always relative to the start of the
132 journal superblock. Use htonl(1) when setting s_nr_users.
133
Theodore Ts'o02088862001-01-18 01:44:19 +00001342001-01-17 Theodore Ts'o <tytso@valinux.com>
135
136 * mkjournal.c (ext2fs_add_journal_device): Fix bug where the
137 device number of the filesystem (instead of the journal)
138 was being dropped into s_journal_dev.
139
Theodore Ts'oa1128472001-01-16 06:56:14 +00001402001-01-15 Theodore Ts'o <tytso@valinux.com>
141
142 * initialize.c (ext2fs_initialize): Add support for initializing
143 the ext2 superblock for external journal devices. This
144 basically means we don't bother to allocate any block
145 group descriptors.
146
147 * openfs.c (ext2fs_open): Only open external journal devices if
148 the new flag EXT2_FLAG_JOURNAL_DEV_OK is passed to
149 ext2fs_open. When opening such devices, don't try to read
150 the block group descriptors, since they're not there.
151
152 * ext2_err.et.in (EXT2_NO_JOURNAL_SB): Add new error code
153
154 * mkjournal.c: Export a new function,
155 ext2fs_create_journal_superblock(), which allocates and
156 returns a buffer containing a journal superblock. This is
157 needed by mke2fs to create an external journal. Rewrote
158 ext2fs_add_journal_device() so that it no longer creates
159 the external journal, but rather adds a filesystem to an
160 existing external journal. It handles all of the UUID
161 manipulation.
162
163 * ext2fs.h: List the EXT3_FEATURE_JOURNAL_DEV as a flag supported
164 by the library. Define the EXT2_FLAG_JOURNAL_DEV_OK.
165 Changed function prototype for ext2fs_add_journal_device().
166
Theodore Ts'o80779942001-01-14 18:03:43 +00001672001-01-14 Theodore Ts'o <tytso@valinux.com>
168
169 * closefs.c (ext2fs_flush): Don't write out anything beyond the
170 primary superblock if EXT2_INCOMPAT_JOURNAL_DEV is
171 listed.
172
Theodore Ts'ob94bd812001-01-12 17:26:05 +00001732001-01-12 Theodore Ts'o <tytso@valinux.com>
174
175 * imager.c: Fix gcc -Wall complaints and a series of bugs where
176 retval wasn't set correctly. (Thanks to Andreas Dilger
177 for pointing this out.)
178
Theodore Ts'o4d0f3e12001-01-11 15:48:50 +00001792001-01-11 <tytso@snap.thunk.org>
180
181 * flushb.c (ext2fs_sync_device): New function which centralizes
182 all of the places which might try to use the BLKFLSBUF
183 or FDFLUSH ioctls (and usually failing to define them
184 since the system header files don't usually do this for
185 us, and we're trying to avoid usage of kernel include
186 files now).
187
Theodore Ts'o31dbecd2001-01-11 04:54:39 +00001882001-01-10 <tytso@snap.thunk.org>
189
190 * alloc.c, bb_inode.c, bitmaps.c, bitops.h, block.c, bmap.c,
191 bmove.c, brel.h, cmp_bitmaps.c, dblist.c, dblist_dir.c,
192 dir_iterate.c, expanddir.c, ext2fs.h, ext2fsP.h, fileio.c,
193 finddev.c, get_pathname.c, icount.c, inode.c, irel.h,
194 irel_ma.c, ismounted.c, link.c, lookup.c, mkdir.c,
195 mkjournal.c, namei.c, newdir.c, read_bb_file.c, test_io.c,
196 tst_iscan.c, unix_io.c, unlink.c: Change use of ino_t to
197 ext2_ino_t, to protect applications that attempt to
198 compile -D_FILE_OFFSET_BITS=64, since this inexplicably
199 changes ino_t(!?). So we use ext2_ino_t to avoid an
200 unexpected ABI change.
201
Theodore Ts'ocdaf1fa2001-01-05 22:23:22 +00002022001-01-05 <tytso@snap.thunk.org>
203
Theodore Ts'oe446d712001-01-05 22:27:06 +0000204 * dirblock.c (ext2fs_read_dir_block): Fix a potential case where
205 we may overrun allocated memory in case of a corrupted
206 filesystem (or an e2fsck test case :-) when byte-swapping
207 the directory block.
208
Theodore Ts'ocdaf1fa2001-01-05 22:23:22 +0000209 * ext2fs.h: Indent the #warning to fix gcc -Wall complaint.
210
211 * mkjournal.c (ext2fs_add_journal_device): Fix various gcc -Wall
212 complaints including a missing return 0 at the end of
213 ext2fs_add_journal_device.
214
Theodore Ts'o43ec8732001-01-03 14:56:46 +00002152001-01-03 <tytso@snap.thunk.org>
216
Theodore Ts'o4becab62001-01-03 19:22:42 +0000217 * Makefile.in: Link in libe2p when creating libext2fs as a shared
218 library, since mkjournal.c now references fsetflags().
219
220 * mkjournal.c (ext2fs_add_journal_inode): Folded in Andreas
221 Dilger's changes (with fixups) to allow on-line creation
222 of a journal file.
223
Theodore Ts'o43ec8732001-01-03 14:56:46 +0000224 * ext2fs.h, closefs.c (ext2fs_flush): Add new flag,
225 EXT2_FLAG_SUPER_ONLY, which the close routines to only
226 update the superblock, and not the group descriptors.
227
2282000-12-30 Andreas Dilger <adilger@turbolinux.com>
229
230 * ismounted.c: add ext2fs_check_mount_point() function, which will
231 optionally return the mount point of a device if mounted
232
Theodore Ts'o31a17b32001-01-03 13:04:12 +00002332000-12-14 Andreas Dilger <adilger@turbolinux.com>
234
235 * mkjournal.c: rename ext2fs_add_journal_fs() to the more descriptive
236 ext2fs_add_journal_inode()
237
Theodore Ts'oe5b38a52001-01-01 16:17:12 +00002382001-01-01 <tytso@snap.thunk.org>
239
240 * ext2fs.h: Remove definition of ext2fs_sb. Note: this may break
241 source (but not binary) compatibility of some users of the
242 ext2 library. They should just simply do a global search
243 and replace of struct ext2fs_sb with struct
244 ext2_super_block, and use their own private copy of
245 ext2_fs.h if they aren't already.
246
247 * closefs.c, initialize.c, link.c, newdir.c, openfs.c, swapfs.c:
248 Replace use of ext2fs_sb with ext2_super_block.
249
Theodore Ts'o2fe1efe2000-12-31 13:39:17 +00002502000-12-31 <tytso@snap.thunk.org>
251
252 * ext2fs.h: Cleaned up header file by removing definitions of
253 feature flags that might not have been defined in older
254 ext2 header files. Now that we're using our own
255 include/linux/ext2fs.h header file, this can never happen.
256
257 * jfs_dat.h: Removed old header file which is no longer needed.
258
Theodore Ts'o7dcfa6e2000-12-13 17:50:14 +00002592000-12-13 Theodore Ts'o <tytso@valinux.com>
260
Theodore Ts'oa917d1c2000-12-13 18:36:23 +0000261 * closefs.c (ext2fs_update_dynamic_rev): New function suggested
Theodore Ts'o3fe973b2000-12-13 17:55:49 +0000262 by Andreas Dilger to update the filesystem revision to
263 EXT2_DYNAMIC_REV.
264
Theodore Ts'o7dcfa6e2000-12-13 17:50:14 +0000265 * swapfs.c (ext2fs_swap_super): Add byte swapping for the journal
266 fields.
267
Theodore Ts'o58618732000-12-09 05:47:45 +00002682000-12-09 <tytso@snap.thunk.org>
269
Theodore Ts'o31a17b32001-01-03 13:04:12 +0000270 * ext2fs.h, mkjournal.c (ext2fs_add_journal_inode,
Theodore Ts'o4e246702000-12-09 14:39:16 +0000271 ext2fs_add_journal_device): Add a new argument to the APIs
272 of these function, which is a flags word. This is used to
273 allow the creation of a V1 superblock for those folks who
274 are using ext3 0.3b in production. Note, the user-land
275 interface for getting at this flag won't be documented, as
276 the V1 superblock is deprecated.
277
Theodore Ts'o58618732000-12-09 05:47:45 +0000278 * mkjournal.c (init_journal_superblock): Sync Stephen's changes
279 which creates a V2 superblock instead of a V1 superblock.
280
Theodore Ts'of20d0d52000-12-05 03:53:41 +00002812000-11-21 <tytso@snap.thunk.org>
282
283 * test_io.c (test_write_blk, test_write_byte): Fix typos pointed
284 out by Andreas Dilger.
285
Theodore Ts'o72ed1262000-11-12 19:32:20 +00002862000-11-05 <tytso@snap.thunk.org>
287
288 * imager.c (ext2fs_image_{inode,super,bitmap}_{read,write},
289 ext2_fs.h, Makefile.in: New file that has routines that
290 save ext2fs metadata to a file.
291
292 * ext2_err.et.in (EXT2_ET_MAGIC_E2IMAGE): New error code assigned.
293
294 * e2image.h: New file which defines the file format for the ext2
295 image file. (Saved copy of ext2 metadata to a file as a
296 saving throw against worst-case damage.)
297
Theodore Ts'o6a7f4552000-11-12 19:07:06 +00002982000-11-01 <tytso@snap.thunk.org>
299
300 * inode.c (ext2fs_flush_icache): Add new function
301 ext2fs_flush_icache() which flushes the internal inode
302 cache. Applications which modify the inode table blocks
303 directly must call this function.
304
Theodore Ts'oc180ac82000-10-26 20:24:43 +00003052000-10-26 <tytso@snap.thunk.org>
306
Theodore Ts'o17ee8b12000-10-26 20:45:58 +0000307 * mkjournal.c: Add #include of netinet/in.h, since Solaris
308 requires it for ntohl().
309
Theodore Ts'oc180ac82000-10-26 20:24:43 +0000310 * ext2_io.h (io_channel_write_byte): Add new interface to allow
311 callers to write specific byte ranges. This is an
312 optional interface, which not all IO channels may
313 implement.
314
315 * unix_io.c (unix_write_byte):
316 * test_io.c (test_write_byte): Add implementation of the
317 write_byte function.
318
319 * closefs.c (write_primary_superblock, ext2fs_flush): Add a new
320 function which writes the primary superblock. If the IO
321 channel supports writing raw bytes directly, only fields
322 which were modified are written to the disk. This makes
323 it safe(r) to use utilities like tune2fs on a mounted
324 filesystem.
325
326 * freefs.c (ext2fs_free): Free the original superblock if it is
327 available.
328
329 * openfs.c (ext2fs_open): Store a copy of the original superblock
330 when opening it.
331
332 * ext2fs.h: Add a field to store the original superblock in the
333 ext2 context structure.
334
Theodore Ts'o43819662000-10-25 02:06:09 +00003352000-10-24 <tytso@snap.thunk.org>
336
337 * llseek.c: Add #ifdef's for IA64 (it's a 64-bit platform, so we
338 don't need to use llseek).
339
Theodore Ts'od3cd93c2000-10-24 18:33:16 +00003402000-10-24 <tytso@valinux.com>
341
342 * Makefile.in, ext2fs.h, jfs_dat.h, mkjournal.c: Add functions for
343 creating an ext3 journal on a filesystem.
344
3452000-08-21 <tytso@valinux.com>
346
347 * ext2_err.et.in (EXT2_JOURNAL_NOT_BLOCK): Add new error code.
348
Theodore Ts'oadfc8c62000-10-18 19:22:24 +00003492000-08-22 <tytso@valinux.com>
350
351 * unix_io.c: Make massive changes to support a multiple block
352 writethrough cacheing.
353
354 * ext2_io.h: Added flags field to the io_channel structure.
355
Theodore Ts'ode23aa12000-08-19 17:00:47 +00003562000-08-19 <tytso@valinux.com>
357
358 * finddev.c, ext2fs.h, Makefile.in: Add new file, finddev.c, which
359 provides the function ext2fs_find_block_device(). This
360 function returns the pathname to a block device, given its
361 device number.
362
Theodore Ts'of9e67062000-07-13 23:25:54 +00003632000-07-13 <tytso@valinux.com>
364
365 * Release of E2fsprogs 1.19
366
Theodore Ts'oab146762000-07-07 04:37:35 +00003672000-07-07 Theodore Ts'o <tytso@valinux.com>
368
369 * ext2fs.h (EXT2_LIB_FEATURE_INCOMPAT_SUPP): Add
370 EXT3_FEATURE_INCOMPAT_RECOVER (aka needs_recovery) to the
371 list of filesystem flags supported by the library.
372
Theodore Ts'o57dca852000-07-04 19:20:25 +00003732000-07-04 Theodore Ts'o <tytso@valinux.com>
374
Theodore Ts'o8f13d8c2000-07-04 19:41:29 +0000375 * ext2fs.h: Update to include latest journalling additions to the
376 superblock.
377
Theodore Ts'o57dca852000-07-04 19:20:25 +0000378 * dll/jump.funcs: Add new jumptable entries for
379 ext2fs_write_bb_FILE, ext2fs_read_bb_FILE2, and
380 ext2fs_badblocks_equal.
381
382 * tst_badblocks.c: Update test program to test
383 ext2fs_read_bb_FILE2 and ext2fs_write_FILE.
384
385 * write_bb_file.c (ext2fs_write_bb_FILE): New function which
386 writes out bad blocks list to a file.
387
388 * read_bb_file.c (ext2fs_read_bb_FILE2): Add new function which
389 changes the callback function to take two additional
390 arguments; a private blind pointer supplied by the caller,
391 and pointer to a char * containing a pointer to the
392 invalid string.
393
394 * badblocks.c (ext2fs_badblocks_equal): Add new function which
395 returns true if two badblocks list are equal.
396
397 * Makefile.in: Remove explicit link of -lc in the shared library.
398 (It shouldn't be necessary, and is harmful in some cases).
399
Theodore Ts'oabf7d382000-06-10 19:27:17 +00004002000-06-10 Theodore Ts'o <tytso@valinux.com>
401
402 * getsize.c (main): Add debugging code under #ifdef DEBUG
403
Theodore Ts'o2e8d40d2000-05-27 15:15:40 +00004042000-05-27 Theodore Ts'o <tytso@valinux.com>
405
406 * mkdir.c (ext2fs_mkdir): Read the parent directory's inode
407 earlier, so that if there's an error reading it, we can
408 more cleanly back out of the operation.
409
Theodore Ts'of0f4acb2000-05-25 23:22:11 +00004102000-05-25 <tytso@snap.thunk.org>
411
Theodore Ts'odc5f68c2000-05-25 23:31:54 +0000412 * getsize.c (ext2fs_get_device_size): Use open64() instead of
Theodore Ts'o7fd86d32000-05-25 23:42:22 +0000413 open() if it exists. Under linux, manually define the
414 ioctl for BLKGETSIZE if it isn't already defined and it's
415 safe to do so.
Theodore Ts'odc5f68c2000-05-25 23:31:54 +0000416
417 * unix_io.c (unix_open): Use open64() instead of open() if it
418 exists.
419
420 * llseek.c: Simplify header includes of unistd.h. If lseek64 is
421 available (and prototypes are defined) use it in
422 preference to llseek.
423
Theodore Ts'of0f4acb2000-05-25 23:22:11 +0000424 * Makefile: Add hack dependency rule so that parallel makes work
425 correctly.
426
Theodore Ts'ofa7ef712000-05-19 02:11:41 +00004272000-05-18 Theodore Ts'o <tytso@valinux.com>
428
429 * ext2fs.h: Add appropriate ifdef's to support C++ compilation.
430
Theodore Ts'oe589f672000-04-03 13:45:40 +00004312000-04-03 Theodore Ts'o <tytso@valinux.com>
432
Theodore Ts'o06af47f2000-04-03 13:51:00 +0000433 * block.c: Readibility tweak in conditionals involving
434 ctx->fs->flags.
435
Theodore Ts'oe589f672000-04-03 13:45:40 +0000436 * ext2fs.h: Use AUTOCONF SIZEOF_* macros if available to determine
437 how to define __s64 and __u64. Turn off "compression is
438 experimental" warning if the cpp macro
439 I_KNOW_THAT_COMPRESSION_IS_EXPERIMENTAL is defined.
440
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +00004412000-02-11 <tytso@snap.thunk.org>
442
Theodore Ts'o5a63dd22000-02-11 15:44:08 +0000443 * ext2fs.h: Define EXT2FS_COMPRESSED_BLKADDR and HOLE_BLKADDR.
444 Conditionally include Compression as a supported type if
445 ENABLE_COMPRESSION (via --enable-compression) is turned on.
446
Theodore Ts'o2c1a0ce2000-02-11 15:39:19 +0000447 * swapfs.c (ext2fs_swap_super): Swap the compression usage bitmap.
448
Theodore Ts'o28ffafb2000-02-08 19:14:02 +00004492000-02-08 <tytso@snap.thunk.org>
450
451 * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap,
452 ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
453 ext2fs_mark_inode_bitmap, ext2fs_unmark_inode_bitmap):
454 Change to return the previous state of the bit that is
455 being marked or unmarked. For speed optimization.
456
Theodore Ts'o80e808f2000-02-02 16:19:59 +00004572000-02-02 Theodore Ts'o <tytso@valinux.com>
458
459 * getsize.c, ismounted.c: Remove unneeded include of linux/fs.h
460
461 * swapfs.c: Remove #ifdef HAVE_EXT2_INODE_VERSION since it's not
462 needed any more; we know it will always be i_generation.
463 Add support for swapping the high bits of the uid and gid.
464
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +00004651999-11-19 <tytso@valinux.com>
466
Theodore Ts'odab278a1999-11-19 18:49:27 +0000467 * mkdir.c (ext2fs_mkdir): Only update the parent's inode link
468 counts if the link was successful. Patch suggested by
469 jeremy@goop.org.
470
Theodore Ts'o5c36a2f1999-11-19 18:42:30 +0000471 * Makefile.in (distclean): Remove TAGS and Makefile.in.old from
472 the source directory.
473
Theodore Ts'ocd086361999-11-10 16:00:39 +00004741999-11-10 <tytso@valinux.com>
475
476 * Release of E2fsprogs 1.18
477
Theodore Ts'o9b9fe8a1999-11-08 22:05:04 +00004781999-11-08 <tytso@valinux.com>
479
480 * Makefile.in (tst_badblocks): Add freefs.o to the object list,
481 since ext2fs_badblocks_list_free was moved to freefs.c.
482
483 * tst_badblocks.c: Use the newer badblocks API names. Add
484 duplicate blocks to the test inputs to test dealing with
485 adding blocks which are already in the badblocks list.
486
487 * badblocks.c (ext2fs_badblocks_list_add): If appending to the end
488 of the list, use a shortcut O(1) operations instead of an
489 O(n) operation. (Idea suggested by David Beattie.)
490
491 * freefs.c (ext2fs_free): Use ext2fs_badblocks_list_free() instead
492 of badblocks_list_free(), to save a procedure call.
493
Theodore Ts'o416c93d1999-10-26 04:49:54 +00004941999-10-26 <tytso@valinux.com>
495
Theodore Ts'o28e11941999-10-26 18:17:20 +0000496 * Release of E2fsprogs 1.17
497
4981999-10-26 <tytso@valinux.com>
499
Theodore Ts'o416c93d1999-10-26 04:49:54 +0000500 * ext2fs.h: Add kludge to deal with the fact that egcs cpp doesn't
501 seem to handle ~0UL the same way as they used to.
502
Theodore Ts'o601002b1999-10-26 02:06:39 +00005031999-10-25 <tytso@valinux.com>
504
Theodore Ts'ofe70fd31999-10-26 02:34:47 +0000505 * nt_io.c (_OpenNtName): Open the device using
506 FILE_SYNCHRONOUS_IO_NONALERT instead of
507 FILE_SYNCHRONOUS_IO_ALERT
508 (nt_open): At the end of the device open routine, unlock
509 the drive but do not dismount it.
510
Theodore Ts'o601002b1999-10-26 02:06:39 +0000511 * initialize.c (CREATOR_OS): Use __GNU__ instead of __gnu__ to
512 detect the Hurd OS.
513
Theodore Ts'oe6198e51999-10-23 00:58:54 +00005141999-10-22 <tytso@valinux.com>
515
Theodore Ts'o614fdfd1999-10-23 03:19:51 +0000516 * Release of E2fsprogs 1.16
517
5181999-10-22 <tytso@valinux.com>
519
Theodore Ts'oe6198e51999-10-23 00:58:54 +0000520 * mkdir.c (ext2fs_mkdir): Pass EXT2_FT_DIR flag to ext2fs_link().
521
522 * link.c (ext2fs_link): This call now uses the low three bits of
523 the flags parameter to pass the directory filetype
524 information; it will set the directory entry FILETYPE
525 information if the filesystem supports it.
526
527 * newdir.c (ext2fs_new_dir_block): If the FILETYPE superblock
528 option is set, then create the '.' and '..' entries with
529 the filetype set to EXT2_FT_DIR.
530
Theodore Ts'oaa4115a1999-10-21 19:33:18 +00005311999-09-24 <tytso@valinux.com>
532
533 * nt_io.c: New file which supports I/O under Windows NT.
534
Theodore Ts'o3a5f8ea1999-09-14 20:21:26 +00005351999-09-07 <tytso@valinux.com>
536
537 * ext2fs.h: Add new fields for journalling and define new
538 feature bits used by newer filesystems: IMAGIC_INODES,
539 HAS_JOURNAL, RECOVER.
540
541 * expanddir.c (ext2fs_expand_dir, expand_dir_proc): Change where
542 we update the inode block count and size files so that the
543 block count field is updated correctly when we create an
544 indirect block.
545
5461999-07-18 Theodore Ts'o <tytso@valinux.com>
Theodore Ts'o657cb971999-07-30 23:19:10 +0000547
548 * Release of E2fsprogs 1.15
549
Theodore Ts'oe72a9ba1999-06-25 15:40:18 +00005501999-06-23 <tytso@valinux.com>
551
552 * swapfs.c (ext2fs_swap_inode): Add compatibility for Linux 2.3
553 kernels that use i_generation instead of i_version. Patch
554 supplied by Jon Bright <sircus@sircus.demon.co.uk>.
555
5561999-06-21 <tytso@valinux.com>
Theodore Ts'o813bbb21999-06-22 03:17:45 +0000557
558 * dir_iterate.c (ext2fs_process_dir_block): Check for corrupted
559 directory entry before calling the callback function.
560 This should prevent some core dumps of insufficiently
561 paranoid callback functions.
562
Theodore Ts'oa4bf69d1999-05-29 21:53:30 +00005631999-05-29 <tytso@rsts-11.mit.edu>
564
565 * ext2fs.h: Add feature definition for AFS IMAGIC inodes.
566
567 * fileio.c (ext2fs_file_open): Remove obsolete comment stating
568 that we don't handle writing yet (we do). Fixed bug where
569 we weren't allocating a big enough buffer for ext2_bmap.
570
Theodore Ts'of0687a51999-05-29 21:48:03 +00005711999-05-03 <tytso@rsts-11.mit.edu>
572
573 * openfs.c (ext2fs_open): Check to make sure that the number of
574 blocks per group is not zero --- if so, it must be a bad
575 superblock!
576
Theodore Ts'o9e51eca1999-01-09 16:32:31 +00005771999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
578
579 * Release of E2fsprogs 1.14
580
Theodore Ts'o665f7101999-01-08 13:33:39 +00005811999-01-07 Theodore Ts'o <tytso@rsts-11.mit.edu>
582
583 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Check to see if
584 the inode number is zero; if it's zero, return
585 EXT2_ET_BAD_INODE_NUM.
586
Theodore Ts'o7a469521999-01-04 08:50:59 +00005871998-12-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
588
589 * initialize.c (ext2fs_initialize): Use EXT2_FIRST_INODE instead
590 of EXT2_FIRST_INO to ensure compatibility with Linux 1.2
591 header files.
592
Theodore Ts'o73f17cf1999-01-04 07:35:45 +0000593Mon Jan 4 02:32:09 1999 Theodore Y. Ts'o <tytso@mit.edu>
594
595 * llseek.c (ext2fs_llseek): Change ext2fs_llseek() in the
596 non-Linux case to use EINVAL by default, unless it isn't
597 defined, in which case we use EXT2_ET_INVALID_ARGUMENT
598 instead.
599
Theodore Ts'o556ad131998-12-19 08:10:58 +00006001998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu>
601
602 * Release of E2fsprogs 1.13
603
Theodore Ts'o5a679c81998-12-03 16:40:38 +00006041998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
605
606 * Makefile.in: Updated dependencies.
607
Theodore Ts'o8d7e83b1998-09-23 00:27:26 +00006081998-09-22 Theodore Ts'o <tytso@rsts-11.mit.edu>
609
610 * initialize.c (ext2fs_initialize): Make sure that we allocate
611 enough inodes so that we can make a valid filesystem.
612
Theodore Ts'o2eb374c1998-09-03 01:22:57 +00006131998-09-02 Theodore Ts'o <tytso@rsts-11.mit.edu>
614
615 * rw_bitmaps.c: Fixed signed/unsigned warnings.
616
617 * fileio.c (ext2fs_file_set_size): Remove unneeded extern from the
618 function declaration.
619
620 * dblist.c (make_dblist): Add safety check in case the dblist
621 pointer passed in is null (in which case, assign it to
622 fs->dblist). Fixed some signed/unsigned warnings.
623
624 * bmap.c: Make addr_per_block be of type blk_t to avoid
625 signed/unsigned warnings.
626
627 * namei.c (ext2fs_follow_link): Remove uneeded extern from the
628 function declaration.
629
630 * get_pathname.c (get_pathname_proc): Use return value from
631 ext2fs_get_mem, instead of checking if &gp->name is
632 NULL.
633
634 * dir_iterate.c (ext2fs_process_dir_block):
635 * dblist_dir.c (ext2fs_dblist_dir_iterate): Remove uneeded extern
636 from the function declaration.
637
638 * block.c (ext2fs_block_iterate2): If the read_inode call fails,
639 return the error directly instead of jumping to the
640 cleanup routine, since we don't need to do any cleanup.
641
642 * alloc_table.c (ext2fs_allocate_group_table): Make this
643 function take a dgrp_t for its group argument.
644
645 * ext2fs.h: Make dgrp_t an __u32 type, and make
646 fs->desc_group_count be of type dgrp_t.
647
Theodore Ts'of75c28d1998-08-01 04:18:06 +00006481998-07-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
649
650 * badblocks.c (ext2fs_badblocks_list_add): Use a bigger increment
651 than 10 blocks when we need to expand the size of the
652 badblocks list.
653
Theodore Ts'o4a5fa191998-07-09 05:42:45 +00006541998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
655
656 * Release of E2fsprogs 1.12
657
Theodore Ts'o30c42611998-06-30 05:33:11 +00006581998-06-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
659
660 * closefs.c (ext2fs_flush): Update the s_block_group_nr field as
661 appropriate for all of the block group copies, so that
662 it's clear where the beginning of the filesystem is on the
663 disk. (For when the partition table gets scrod.)
664
665 * ext2fs.h: Change the name of the feature from
666 EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE to
667 EXT2_FEATURE_INCOMPAT_FILESIZE (to match with the kernel).
668
Theodore Ts'o818180c1998-06-27 05:11:14 +00006691998-06-18 Theodore Ts'o <tytso@rsts-11.mit.edu>
670
671 * inode.c (get_next_blockgroup): Fix bug where if
672 get_next_blockgroup() is called early because of a missing
673 inode table in a block group, the current_inode counter
674 wasn't incremented correctly.
675
Theodore Ts'o4faba5b1998-06-16 05:23:41 +00006761998-06-16 Theodore Ts'o <tytso@rsts-11.mit.edu>
677
678 * read_bb.c (ext2fs_read_bb_inode): Make function more robust
679 against a completely trashed bad block inode.
680
Theodore Ts'o03673db1998-06-10 20:39:43 +00006811998-06-10 Theodore Ts'o <tytso@rsts-11.mit.edu>
682
683 * alloc_tables.c (ext2fs_allocate_group_table): Fix bug so that if
684 the stride length hits a bad value, we retry the block
685 allocation starting at the beginning of the block group.
686
687 * ext2fs.h, bb_inode.c, block.c, bmove.c, dir_iterate.c,
688 expanddir.c, ext2fsP.h, read_bb.c: Change blkcnt_t to be
689 e2_blkcnt_t to avoid collision with LFS API.
690
Theodore Ts'o353952d1998-05-01 05:32:18 +00006911998-05-01 Theodore Ts'o <tytso@rsts-11.mit.edu>
692
693 * initialize.c (ext2fs_initialize): Initialize s_inodes_count in a
694 way that avoids overflows on disk sizes greater than 4GB.
695
Theodore Ts'o4c77fe51998-04-30 17:35:59 +00006961998-04-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
697
698 * ext2fs.h: Define EXT2_QSORT_TYPE appropriately for the
699 return type for comparison functions for qsort.
700
701 * dblist.c (dir_block_cmp): Use EXT2_QSORT_TYPE in function
702 declaration.
703
Theodore Ts'o76f875d1998-04-27 01:41:13 +00007041998-04-26 Theodore Ts'o <tytso@rsts-11.mit.edu>
705
706 * ext2fs.h, bitops.h: Add support for the Watcom C compiler to do
707 inline functions.
708
709 * ext2fs.h, dosio.c: Use asm/types.h instead of linux/types.h to
710 evade a potential problem with glibc's header files trying
711 to spike out linux/types.h.
712
713 * ext2fs.h (ext2fs_resize_mem): Change the function prototype to
714 include the old size of the memory, which is needed for
715 some braindamaged memory allocation systems that don't
716 support realloc().
717
718 * badblocks.c (ext2fs_badblocks_list_add):
719 bb_inode.c (clear_bad_block_proc):
720 dblist.c (ext2fs_add_dir_block):
721 icount.c (insert_icount_el):
722 irel_ma.c (ima_put):
723 rs_bitmap.c (ext2fs_resize_generic_bitmap): Update functions to
724 pass the old size of the memory to be resized to
725 ext2fs_resize_mem().
726
Theodore Ts'o469bec81998-04-01 02:46:43 +00007271998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu>
728
729 * Makefile.in: Change to use new installation directory variables
730 convention. Fix uninstall rules to take $(DESTDIR) into
731 account.
732
Theodore Ts'o4a31c481998-03-30 01:27:25 +00007331998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu>
734
735 * ext2fs.h: If __STRICT_ANSI__ is defined and we're on a platform
736 with 32 bit longs, then we need to manually define __s64
737 and __u64, since the current kernel header files don't
738 define these if __STRICT_ANSI__ is defined. This is a
739 problem if we are compiling with full GCC warnings, since
740 we do need 64 bit support.
741
742 * Makefile.in (OBJS): Remove bmove.o from files to be built,
743 since we're not using ext2fs_move_blocks() and there
744 is some question as to its usefulness in its current
745 form.
746
747 * bmap.c (block_bmap): Remove unused function.
748
749 * bmove.c (process_block): Fix -Wall warning.
750
Theodore Ts'o36a43d61998-03-24 16:17:51 +00007511998-03-23 Theodore Ts'o <tytso@rsts-11.mit.edu>
752
753 * block.c (ext2fs_block_iterate3): Make the ref_offset field
754 contain the offset into the inode.i_blocks array when
755 ref_block is zero. Since we haven't done a formal
756 release of e2fsprogs since block_iterate2 was first
757 introduced, I removed block_iterate2, and renamed
758 block_iterate3 to be block_iterate2.
759
760 * bb_inode.c, bmove.c, dblist_dir.c, dir_iterate.c,
761 expanddir.c, ext2fs.h, ext2fsP.h, read_bb.c: Change
762 use of block_iterate and block_iterate2 to
763 block_iterate2 with the new prototype for the
764 interator function. (using blkcnt_t forr blockcount)
765
Theodore Ts'o674a4ee1998-03-23 02:06:52 +00007661998-03-21 Theodore Ts'o <tytso@rsts-11.mit.edu>
767
768 * ext2fs.h: Add new superblock fields (s_algorithm_usage_bitmap,
769 s_prealloc_blocks, s_prealloc_dir_blocks). Added
770 conditional defines of new features COMPAT_DIR_PREALLOC,
771 RO_COMPAT_LARGE_FILE RO_COMPAT_BTREE_DIR,
772 INCOMPAT_COMPRESSION, INCOMPAT_DIRNAME_SIZE. Changed
773 the library to declare that we support COMPAT_DIR_PREALLOC,
774 INCOMPAT_DIRNAME_SIZE, RO_COMPAT_LARGE_FILE.
775
776 * fileio.c: Rename function ext2fs_file_llseek to be
777 ext2fs_file_lseek, which is more accurate.
778
779 * block.c: Add new function ext2fs_block_iterate3 which calls
780 the iterator function with the blockcount argument of
781 type blkcnt_t. This version of the function is
782 allowed to handle large files; the other fucntions are
783 not.
784
785 * ext2fs.h: Add new type blkcnt_t
786
787 * ext2_err.et.in: Add error code EXT2_ET_FILE_TOO_BIG
788
789 * block.c (ext2fs_block_iterate2): Fix bug where the block count
790 field wasn't getting correctly incremented for sparse
791 files when the indirect or doubly-indirect block
792 specified in the inode was zero.
793
794Sun Mar 8 22:42:47 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
795
796 * unlink.c (unlink_proc):
797 * lookup.c (lookup_proc):
798 * link.c (link_proc):
799 * get_pathname.c (get_pathname_proc):
800 * dir_iterate.c (ext2fs_process_dir_block): Mask off high 8 bits
801 from dirent->name_len, so it can be used for other
802 purposes.
803
804 * ext2fs.h: Add definition of EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE,
805 and indicate that we have support for this incompatible
806 option.
807
Theodore Ts'oc7752561998-02-24 04:25:52 +0000808Mon Feb 23 08:46:33 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
809
810 * ext2_err.et.in: Added new error code, EXT2_ET_CANCEL_REQUESTED.
811
Theodore Ts'o79b05db1998-02-21 05:01:19 +0000812Fri Feb 20 23:58:01 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
813
814 * dblist.c (ext2fs_get_num_dirs): Improve the estimation of the
815 number of directories when the block group information is
816 unreliable.
817
Theodore Ts'oc4e749a1998-02-20 05:33:14 +00008181998-02-20 Theodore Y. Ts'o <tytso@edt.mit.edu>
819
Theodore Ts'o218a4861998-02-21 01:41:39 +0000820 * inode.c (ext2fs_get_next_inode): Always do the check to see if the
821 inode table is missing so that we catch the case where the
822 first block group is missing.
823
Theodore Ts'oc4e749a1998-02-20 05:33:14 +0000824 * getsize.c, ismounted.c, unix_io.c: #include errno.h since it's
825 needed.
826
Theodore Ts'o9abd2ce1998-02-16 22:00:37 +0000827Mon Feb 16 16:16:00 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
828
829 * ext2_io.h, ext2fs.h: Protect against being included multiple times.
830
831 * bmove.c: #include ext2fsP.h instead of "ext2fs/ext2fs.h"
832
833 * test_io.c (test_flush): Add a debugging printf when the flush
834 method is called.
835
836 * rw_bitmaps.c (ext2fs_read_bitmaps): If the bitmaps are already
837 read in, return right away.
838
Theodore Ts'o5953b9d1998-02-01 13:23:02 +0000839Sun Feb 1 08:20:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
840
841 * bitops.h: Don't try to do i386 inline asm functions if the
842 compiler isn't GCC.
843
844 * ext2fs.h: If EXT2_FLAT_INCLUDES is defined, #include e2_types.h,
845 instead of linux/types.h, and e2_bitops.h instead of
846 ext2fs/bitops.h.
847
848 * icount.c, version.c: Don't #include <et/com_err.h>, as it isn't
849 necessary.
850
Theodore Ts'ob5abe6f1998-01-19 14:47:53 +0000851Sat Jan 17 13:13:31 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
852
853 * inode.c (ext2fs_open_inode_scan): Initialize the group variables
854 so that we don't need to call get_next_blockgroup() the
855 first time around. Saves a bit of time, and prevents us
856 from needing to assign -1 to current_group (which is an
857 unsigned value).
858
859 * icount.c (insert_icount_el): Cast the estimated number of inodes
860 from a float to an ino_t.
861
862 * alloc.c, alloc_tables.c, badlbocks.c, bb_compat.c, bb_inode.c,
863 bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,
864 check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,
865 dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,
866 expanddir.c, ext2fs.h, fileio.c, freefs.c,
867 get_pathname.c, getsize.c, icount.c, initialize.c,
868 inline.c, inode.c, irel_ma.c, ismounted.c, link.c,
869 lookup.c, mkdir.c, namei.c, native.c, newdir.c,
870 openfs.c, read_bb.c, read_bb_file.c, rs_bitmap.c,
871 rw_bitmaps.c, swapfs.c, test_io.c, tst_badblocks.c,
872 tst_getsize.c, tst_iscan.c, unix_io.c, unlink.c,
873 valid_blk.c, version.c: If EXT2_FLAT_INCLUDES is
874 defined, then assume all of the
875 ext2-specific header files are in a flat directory.
876
877 * block.c, bmove.c, dirblock.c, fileio.c: Explicitly cast
878 all assignments from void * to be compatible with C++.
879
880Tue Jan 6 11:28:15 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
881
882 * closefs.c (ext2fs_flush): Add a call to io_channel_flush() to
883 make sure the contents of the disk are flushed to disk.
884
885Mon Dec 29 14:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
886
887 * dblist.c (ext2fs_add_dir_block): Change new to be new_entry to
888 avoid C++ namespace clash.
889
890 * bitmaps.c (ext2fs_copy_bitmap): Change new to be new_map to
891 avoid C++ namespace clash.
892
893 * ext2fs.h, bb_inode.c, block.c, bmove.c, brel.h, brel_ma.c,
894 irel.h, irel_ma.c, dblist.c, dblist_dir.c, dir_iterate.c,
895 ext2fsP.h, expanddir.c, get_pathname.c, inode.c, link.c,
896 unlink.c: Change private to be priv_data (to avoid C++
897 namespace clash)
898
Theodore Ts'o5be8dc21997-12-01 18:24:10 +0000899Fri Nov 28 09:26:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
900
901 * dblist.c (ext2fs_get_num_dirs): Make ext2fs_get_num_dirs more
902 paranoid about validating the directory counts from the
903 block group information.
904
905 * all files: Don't include stdlib.h anymore; include it in
906 ext2_fs.h, since that file requires stdlib.h
907
Theodore Ts'o89270b51997-11-24 11:44:25 +0000908Thu Nov 20 16:07:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
909
910 * expanddir.c (ext2fs_expand_dir): Check to make sure the block
911 bitmap is loaded, and return an error if it is not.
912 (expand_dir_proc): Only use ext2fs_write_dir_block when
913 writing a directory block, not when writing out a fresh
914 indirect block.
915
Theodore Ts'od36d8351997-11-12 03:48:07 +0000916Tue Nov 11 22:46:45 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
917
918 * Makefile.in, tst_getsize.c: Added new file which is used to test
919 the ext2fs_get_device_size function.
920
921 * ext2_err.et.in (EXT2_ET_UNIMPLEMENTED): Added new error code.
922
Theodore Ts'o79a90bd1997-11-03 19:16:55 +0000923Sun Nov 2 20:36:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
924
925 * ext2fs.h: Make ext2fs_get_mem take an unsigned argument.
926
927 * fileio.c (ext2fs_file_get_size, ext2fs_file_set_size,
928 ext2fs_file_get_fs): New functions added.
929
930
931Fri Oct 31 12:16:52 1997 <tytso@EDT.MIT.EDU>
932
933 * bitops.c (ext2fs_warn_bitmap, ext2fs_warn_bitmap2): Don't call
934 com_err if OMIT_COM_ERR is defined.
935
Theodore Ts'o1f0b6c11997-10-31 06:07:47 +0000936Thu Oct 30 11:33:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
937
938 * Rename new error codes to _ET_ in them for consistency.
939
Theodore Ts'oc555aeb1997-10-25 04:16:53 +0000940Sat Oct 25 00:06:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
941
Theodore Ts'o7b4e4531997-10-26 03:41:24 +0000942 * [all files, basically]: Added definition of ext2fs_get_mem,
943 ext2fs_free_mem, and ext2fs_resize_mem in ext2fs.h, and
944 changed all library routines to use these wrapper functions.
945
Theodore Ts'o78d8f901997-10-26 01:53:39 +0000946 * dblist.c, mkdir.c: use EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND
947 instead of the system error messages.
948
949 * ext2_err.et.in: Added new error messages EXT2_DIR_EXISTS and
950 EXT2_DB_NOT_FOUND
951
Theodore Ts'o30fab291997-10-25 22:37:42 +0000952 * ext2fs.h: Added function declarations and constants for bmap.c
953 and fileio.c.
954
955 * ext2_err.et.in: Added new error messages EXT2_FILE_RO and
956 EXT2_ET_MAGIC_EXT2_FILE
957
958 * Makefile.in: Added files bmap.c and fileio.c, and temporarily
959 commented out brel_ma.c and irel_ma.c
960
961 * bmap.c: New file which maps a file's logical block number to its
962 physical block number.
963
964 * fileio.c: New file which implements simple file reading and
965 writing primitives.
966
Theodore Ts'oc555aeb1997-10-25 04:16:53 +0000967 * alloc.c (ext2fs_alloc_block): New function which allocates a
Theodore Ts'o30fab291997-10-25 22:37:42 +0000968 block, zeros it, and updates the filesystem accounting
969 records appropriately.
Theodore Ts'oc555aeb1997-10-25 04:16:53 +0000970
971Wed Oct 22 16:47:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
972
973 * ext2_err.et.in: Added new error codes: EXT2_NO_MEMORY,
974 EXT2_INVALID_ARGUMENT, EXT2_BLOCK_ALLOC_FAIL,
975 EXT2_INODE_ALLOC_FAIL, EXT2_NOT_DIRECTORY
976
977 * Change various library files to use these functions instead of
978 EINVAL, ENOENT, etc.
979
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +0000980Mon Oct 20 19:32:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
981
982 * llseek.c: Check HAVE_LLSEEK_PROTOTYPE to see whether or not we
983 need to declare llseek().
984
Theodore Ts'o1d2ff461997-10-19 23:00:21 +0000985Sun Oct 19 18:56:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
986
Theodore Ts'od40259f1997-10-20 00:44:26 +0000987 * Rename io.h to be ext2_io.h (avoid namespace collisions)
988
Theodore Ts'o1d2ff461997-10-19 23:00:21 +0000989 * Add #ifdef's for HAVE_SYS_STAT_H and HAVE_SYS_TYPES_H
990
Theodore Ts'od163b091997-10-03 17:42:28 +0000991Fri Oct 3 13:35:59 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
992
993 * llseek.c (ext2fs_llseek): Fix type error for ext2fs_llseek()
994
995 * icount.c (ext2fs_icount_validate):
996 * bmove.c (process_block): Fix lint error in type for fprintf().
997
998Mon Sep 15 11:45:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
999
1000 * inode.c (ext2fs_check_directory): Add support for the callback
1001 to return the error code EXT2_ET_CALLBACK_NOTHANDLED.
1002
Theodore Ts'offf876b1997-09-13 00:32:29 +00001003Thu Sep 4 12:28:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1004
1005 * bitmaps.c (ext2fs_set_bitmap_padding): New function which sets the
1006 padding of the bitmap to be all one's.
1007
Theodore Ts'obc75f2a1997-09-04 00:43:10 +00001008Wed Sep 3 14:27:30 1997 Theodore Y. Ts'o <tytso@edt.mit.edu>
1009
1010 * llseek.c: Added missing semicolon to glibc fixup declaration of
1011 llseek().
1012
1013 * bmove.c: Add #include of errno.h
1014
Theodore Ts'oe9affb71997-08-24 02:57:55 +00001015Sat Aug 23 22:47:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1016
1017 * Makefile.in (ELF_SO_VERSION): Bump version to be 2.4 since we've
1018 added a new field to the io_channel (app_data).
1019
1020 * io.h: Add a new element to the io_channel structure, app_data.
1021
1022 * initialize.c, openfs.c: Set io->app_data to point at the
1023 filesystem handle.
1024
Theodore Ts'o1c27cac1997-08-14 17:20:42 +00001025Thu Aug 14 08:14:17 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1026
1027 * io.h: Change the prototype of ext2fs_llseek() to use int's
1028 instead of unsigned int's.
1029
1030 * llseek.c: Change to allow PIC and !HAVE_LLSEEK. Add a prototype
1031 to make life easer for GNU Libc 2.
1032
1033 * rw_bitmaps.c: On the PowerPC, the big-endian variant of the ext2
1034 filesystem has its bitmaps stored as 32-bit words with bit
1035 0 as the LSB of each word. Thus a bitmap with only bit 0
1036 set would be, as a string of bytes, 00 00 00 01 00 ... To
1037 cope with this, we byte-reverse each word of a bitmap if
1038 we have a big-endian filesystem, that is, if we are *not*
1039 byte-swapping other word-sized numbers.
1040
Theodore Ts'o3cb6c501997-08-11 20:29:22 +00001041Mon Aug 11 03:30:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1042
1043 * dosio.c: New file to do DOS/BIOS disk accesses.
1044
1045 * namei.c (open_namei): Make pathlen be of type size_t.
1046
1047 * llseek.c: Always #include stdlib.h since it's need to define
1048 size_t.
1049
1050 * io.h: Use errcode_t for magic numbers.
1051
1052 * icount.c (get_icount_el): Use size_t where appropriate
1053
1054 * dupfs.c (ext2fs_dup_handle):
1055 * dblist.c (dir_block_cmp): Use size_t where appropriate.
1056
1057 * read_bb.c (ext2fs_read_bb_inode):
1058 * cmp_bitmaps.c (ext2fs_compare_inode_bitmap): Use blk_t, ino_t
1059 and size_t where appropriate.
1060
1061 * closefs.c (ext2fs_flush): Use dgrp_t instead of int where
1062 appropriate.
1063
1064 * openfs.c (ext2fs_open):
1065 * check_desc.c (ext2fs_check_desc): Use blk_t instead of int where
1066 appropriate.
1067
1068 * rw_bitmaps.c (read_bitmaps):
1069 * irel_ma.c:
1070 * inode.c (ext2fs_write_inode):
1071 * initialize.c (ext2fs_initialize):
1072 * brel_ma.c: Fix to make be 16-bit safe.
1073
1074 * link.c (ext2fs_link):
1075 * unlink.c (ext2fs_unlink):
1076 * lookup.c (lookup_proc):
1077 * ismounted.c (ext2fs_check_if_mounted):
1078 * block.c (xlate_func): Add #pragma argsused for Turbo C.
1079
Theodore Ts'o4cbe8af1997-08-10 23:07:40 +00001080Sun Aug 10 10:05:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1081
1082 * block.c (ext2fs_block_iterate2): Use retval which is a errcode_t
1083 type.
1084
1085 * bitmaps.c (make_bitmap): Use size_t instead of int where
1086 appropriate.
1087
1088 * bb_inode.c (set_bad_block_proc): Add #pragma argsused for Turbo C.
1089
1090 * alloc.c (ext2fs_new_inode): Use ino_t instead of int for the
1091 group number.
1092
1093 * get_pathname.c: Use ino_t instead of int where appropriate.
1094
1095 * ext2fs.h: Make the magic structure element be errcode_t instead
1096 of int.
1097
1098 * alloc.c alloc_tables.c badblocks.c bb_compat.c bb_inode.c
1099 bitmaps.c block.c bmove.c brel_ma.c check_desc.c closefs.c
1100 cmp_bitmaps.c dblist.c dblist_dir.c dir_iterate.c
1101 dirblock.c dupfs.c expanddir.c freefs.c get_pathname.c
1102 icount.c initialize.c inline.c inode.c irel_ma.c link.c
1103 llseek.c lookup.c mkdir.c namei.c newdir.c read_bb.c
1104 read_bb_file.c rs_bitmap.c rw_bitmaps.c swapfs.c
1105 test_io.c tst_badblocks.c tst_iscan.c unix_io.c unlink.c
1106 valid_blk.c version.c: Add an #ifdef for HAVE_UNISTD_H
1107
Theodore Ts'o024996c1997-06-17 05:38:35 +00001108Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1109
Theodore Ts'oa1230b11997-07-02 02:41:59 +00001110 * unix_io.c (unix_read_blk): If ext2fs_llseek() fails, but errno
1111 is zero, then return EXT2_IO_LLSEEK_FAILED.
1112
1113 * ext2_err.et.in: Add a new error code, EXT2_IO_LLSEEK_FAILED.
1114
Theodore Ts'o024996c1997-06-17 05:38:35 +00001115 * Release of E2fsprogs 1.11
1116
Theodore Ts'o549860c1997-06-17 03:55:00 +00001117Mon Jun 16 23:53:06 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1118
1119 * dblist.c (ext2fs_dblist_count): Added new function which returns
1120 the number of directory blocks in dblist.
1121
Theodore Ts'o36f21431997-06-14 07:25:40 +00001122Sat Jun 14 01:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1123
1124 * unix_io.c (unix_flush): Make the io_channel flush function do a
1125 fsync to flush the kernel buffers to disk.
1126
Theodore Ts'o9941fb71997-06-11 22:27:41 +00001127Wed Jun 11 18:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1128
1129 * inode.c (ext2fs_inode_scan_goto_blockgroup): Fix bug; the
1130 current inode number wasn't being set by the
1131 goto_blockgroup function.
1132
Theodore Ts'o1e1da291997-06-09 14:51:29 +00001133Mon Jun 9 10:45:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1134
1135 * bmove.c (ext2fs_move_blocks): New function which takes a bitmap
1136 of blocks which need to be moved, and moves those blocks
1137 to another location in the filesystem.
1138
1139 * rs_bitmap.c (ext2fs_resize_generic_bitmap): When expanding a
1140 bitmap, make sure all of the new parts of the bitmap are
1141 zero.
1142
1143Sun Jun 8 16:24:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1144
1145 * bitmaps.c (ext2fs_copy_bitmap): Fix bug; the destination bitmap
1146 wasn't being returned to the caller.
1147
1148 * alloc_tables.c (ext2fs_allocate_group_table): Add new function
1149 ext2fs_allocate_group_table() which sets the group tables
1150 for a particular block group. The relevant code was
1151 factored out of ext2fs_allocate_tables().
1152
1153 * dblist.c (make_dblist): Adjust the initial size of the directory
Theodore Ts'o024996c1997-06-17 05:38:35 +00001154 block list to be a bit more realistic (ten plus twice the
Theodore Ts'o1e1da291997-06-09 14:51:29 +00001155 number of directories in the filesystem).
1156
Theodore Ts'of635d7f1997-05-09 02:50:16 +00001157Thu May 8 22:19:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1158
1159 * badblocks.c (ext2fs_badblocks_list_test): Fix bug where
1160 ext2fs_badblocks_list_test would test the list (and exceed
1161 array boundaries) if there were no bad blocks on the bad
1162 blocks list. (Showed up when user tried: mke2fs -c -b 4096).
1163
Theodore Ts'oa29f4d31997-04-29 21:26:48 +00001164Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1165
1166 * Release of E2fsprogs version 1.10
1167
1168Thu Apr 24 10:13:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1169
1170 * alloc_tables.c (ext2fs_allocate_tables): Correctly place the
1171 inode and block bitmaps based on the RAID 0 stride
1172 parameter (which is passed by mke2fs).
1173
1174 * ext2fs.h: Add "stride" parameter to ext2_filsys, to be used by
1175 mke2fs to communicate the stride length to
1176 ext2fs_allocate_tables()
1177
1178Wed Apr 23 21:50:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>
1179
1180 * initialize.c (ext2fs_initialize): Fix to compile under Linux 1.2
1181 systems. (We can't assume that the new filesystem types
1182 are supported.)
1183
1184Wed Apr 23 18:40:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1185
1186 * alloc_tables.c (ext2fs_allocate_tables): Make sure that we
1187 allocate the inode and block bitmaps inside block group at
1188 all times.
1189
1190Mon Apr 21 00:06:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1191
1192 * alloc.c (ext2fs_new_block): Fix bug where if goal==0 and the
1193 filesystem has no free blocks, ext2fs_new_block would loop
1194 forever.
1195
1196 * dupfs.c (ext2fs_dup_handle): Duplicate an ext2 filesystem handle
1197
1198 * freefs.c (ext2fs_free_inode_cache): Decrement refcount and only
1199 free if refcount goes to zero.
1200
1201 * inode.c (create_icache): Initialize refcount to 1.
1202
1203 * ext2fsP.h: Added refcount to ext2_inode_cache
1204
1205 * dblist.c (ext2fs_copy_dblist): New function to copy a directory
1206 block list.
1207
1208 * badblocks.c (ext2fs_badblocks_copy): New function to copy a
1209 badblocks structure.
1210
1211Sun Apr 20 23:19:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1212
1213 * bitmaps.c (ext2fs_copy_bitmap): New function to copy a bitmap.
1214
1215 * unix_io.c, test_io.c (unix_open, test_open): Initialize the
1216 refcount to 1.
1217 (unix_close, test_close): Decrement the refcount and only
1218 close the io_channel if the refcount goes to 0.
1219
1220 * io.h: Add refcount to the io_channel structure. Add new macro
1221 interface io_channel_bumpcount() to bump the refcount.
1222
1223Thu Apr 17 20:25:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1224
1225 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Use the inode
1226 cache in the filesystem handle, instead of the inode cache
1227 in a static variable.
1228
1229 * freefs.c: Added static function to free the inode cache (called by
1230 ext2fs_free).
1231
1232 * ext2fsP.h: Added definition of the ext2_inode_cache structures.
1233
1234 * ext2fs.h: Added pointer to the inode_cache structure.
1235
1236 * block.c (block_iterate_ind, block_iterate_dind,
1237 block_iterate_tind): If there are holes in the indirect,
1238 doubly indirect, or triply indirect blocks, increment the
1239 block count field automatically.
1240
1241Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1242
1243 * Release of E2fsprogs version 1.09
1244
Theodore Ts'o2ecc6fe1997-04-29 17:57:00 +00001245Mon Apr 14 20:38:56 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1246
1247 * version.c (ext2fs_parse_version_string): Check the passed in
1248 version string (instead of the hard-coded one).
1249
1250 * alloc_tables.c (ext2fs_allocate_tables): If the last block is
1251 greater filesystem size, clamp it to prevent allocating a
1252 block or inode bitmap beyond the filesystem.
1253
1254 * initialize.c (ext2fs_initialize): Fix bug where the metatdata
1255 overhead calculation was accidentally removed.
1256
1257Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1258
1259 * Release of E2fsprogs version 1.08
1260
Theodore Ts'o521e3681997-04-29 17:48:10 +00001261Thu Apr 10 13:15:15 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1262
1263 * dblist.c (ext2fs_set_dir_block): New function which sets the
1264 block of a dblist entry, given the directory inode and
1265 blockcnt.
1266
1267Sat Apr 5 12:42:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1268
1269 * alloc_tables.c (ext2fs_allocate_tables): Allocate the bitmap and
1270 inode bitmaps at staggered locations across the block
1271 groups, to avoid concentrating the bitmaps on a small
1272 number of disks when using striped RAID arrays.
1273
1274 * initialize.c (ext2fs_initialize): By default, choose the maximum
1275 possible number of blocks per group (based on the size of
1276 the bitmaps in the blocksize).
1277
1278Fri Apr 4 11:28:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1279
1280 * initialize.c (ext2fs_initialize): Add support for
1281 EXT2_COMPAT_SPARSE_SUPER feature.
1282
1283 * closefs.c (ext2fs_bg_has_super): New function to determine
1284 whether or a particular block group should have a
1285 superblock and block group descriptor. Used for the
1286 EXT2_COMPAT_SPARSE_SUPER feature is turned on.
1287 (ext2fs_flush): Check ext2fs_bg_has_super to see whether
1288 or not the superblock should be written out for the block
1289 group.
1290
1291 * ext2fs.h (EXT2_COMPAT_SPARSE_SUPER): Define compatibility flag
1292 for sparse duplicate superblocks.
1293
1294 * version.c (ext2fs_get_library_version): New function which
1295 returns the library version.
1296
1297 * version.c (ext2fs_parse_version_string): New function which
1298 parses a version string and returns a version number,
1299 so application programs can compare version numbers as
1300 integers.
1301
1302Wed Mar 26 00:43:52 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1303
1304 * icount.c (ext2fs_create_icount): Change function so that it also
1305 takes a new argument which contains a "hint" icount
1306 structure. This "hint" icount allows the create function
1307 to set up the sorted list in advance. This reduces
1308 significantly the amount of data moving needed to insert
1309 these inodes into the list later.
1310
1311 * icount.c (ext2fs_icount_validate): New function which validates
1312 that the icount structure's rep invariant.
1313
1314 * icount.c (get_icount_el): Completely revamped implementation
1315 to subsume put_icount_el(). Put_icount_el() used to
1316 use an O(N) implementation to insert in the middle
1317 of the icount list. It now uses a O(ln N) to search
1318 for where the icount should be inserted, and then uses
1319 a memcpy to move the list down (instead of a for loop).
1320
1321 * icount.c (ext2fs_icount_fetch, ext2fs_icount_store,
1322 ext2fs_icount_increment, ext2fs_icount_decrement): Check
1323 to see if the inode is within bounds; if it isn't, return
1324 EINVAL.
1325
1326 * bitops.h (ext2fs_test_generic_bitmap): Fix error message given
1327 when a bad inode number is passed to test_generic_bitmap
1328 to be EXT2FS_TEST_ERROR instead of the wrong
1329 EXT2FS_UNMARK_ERROR.
1330
Theodore Ts'o21c84b71997-04-29 16:15:03 +00001331Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>
1332
1333 * Release of E2fsprogs version 1.07
1334
1335Sun Mar 2 16:46:18 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1336
1337 * Makefile.in (ELF_VERSION): Change version to be 2.2
1338
1339Tue Feb 11 14:54:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1340
1341 * alloc.c (ext2fs_get_free_blocks): Change routine to use
1342 ext2fs_fast_test_block_bitmap_range().
1343
1344 * bitops.h (ext2fs_fast_test_block_bitmap_range,
1345 ext2fs_test_block_bitmap_range: New inline functions which
1346 test to see whether a contiguous range of blocks is
1347 available.
1348
1349Thu Feb 6 10:00:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1350
1351 * badblocks.c (ext2fs_badblocks_list_create): Rename sybmols to use
1352 use ext2fs_badblocks_* instead of badblocks_*
1353
1354 * bb_compat.c: New file which translates between old badblocks_*()
1355 names to ext2fs_badblocks_*()
1356
1357 * unlink.c (ext2fs_unlink): New file, moved ext2fs_unlink() from
1358 link.c (since e2fsck doesn't use ext2fs_unlink()).
1359
1360 * rs_bitmap.c (ext2fs_resize_generic_bitmap): New file, contains
1361 bitmap resizing routine moved from bitmaps.c, since e2fsck
1362 doesn't need to use this function.
1363
1364 * lookup.c (ext2fs_lookup): Moved ext2fs_lookup to its own file,
1365 since e2fsck only needs ext2fs_lookup.
1366
1367Mon Feb 3 10:11:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1368
1369 * inode.c (ext2fs_open_inode_scan): Set fs->badblocks if it is not
1370 already set; this is needed so that programs like dump
1371 which use the inode scan functions will deal with
1372 filesystems that have bad blocks in the inode table.
1373
1374Sun Feb 2 00:17:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1375
1376 * ext2fs.h (struct_badblocks_list, struct_badblocks_iterate):
1377 Moved to ext2fsP.h, since it doesn't need to be part of
1378 the public interface.
1379
1380 * dir_iterate.c: Move ext2_dir_iterate out of namei.c.
1381
1382Sat Feb 1 10:14:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1383
1384 * dblist.c (ext2fs_get_num_dirs): New file, which implements a
1385 directory block list abstraction. (Code moved from
1386 e2fsck).
1387
1388 * ext2fs.h, inode.c: Moved definition of ext2_struct_inode_scan to
1389 to inode.c (since no one else should be peeking inside it!)
1390
1391 * valid_blk.c (ext2_inode_has_valid_blocks): New function.
1392
1393 * openfs.c (ext2fs_open): Check the feature set in the ext2
1394 superblock, and refuse to open filesystems if they contain
1395 incompatible features. (Can be overriden with the
1396 EXT2_FLAG_FORCE
1397
1398Sun Jan 12 11:31:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1399
1400 * block.c (ext2fs_block_iterate2): Added new function
1401 ext2fs_block_iterate2 which changes the function
1402 signature of the callback function to include the
1403 referencing block and offset.
1404
1405 * inode.c (ext2fs_inode_scan_goto_blockgroup): Added new function
1406 ext2fs_inode_scan_goto_blockgroup which allows an
1407 application to jump to a particular block group while
1408 doing an inode scan.
1409
1410Wed Jan 1 23:50:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
1411
1412 * dirblock.c: Include string.h, since we use memcpy().
1413
1414Tue Dec 3 12:27:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1415
1416 * getsize.c (ext2fs_get_device_size): The ioctl BLKGETSIZE returns
1417 a long not an int; this doesn't matter on i386 machines,
1418 but it does on Alpha's.
1419
1420Fri Nov 29 20:57:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1421
1422 * inode.c (ext2fs_write_inode, ext2fs_read_inode): If the inode
1423 table pointer is NULL, then return an error indicating
1424 that the inode table is missing.
1425 (get_next_blockgroup, get_next_blocks,
1426 ext2fs_get_next_inode): Don't treat a missing inode table
1427 as permanent error. Return MISSING_INODE_TABLE, but as an
1428 advisory error code, much like BAD_BLOCK_IN_INODE_TABLE.
1429
1430 * rw_bitmaps.c (ext2fs_write_block_bitmap,
1431 ext2fs_write_inode_bitmap): If the inode or block bitmap
1432 block is zero, then don't write out the inode or block
1433 bitmap. The idea here is to avoid stomping on the
1434 superblock.
1435 (read_bitmaps): If the inode or block bitmap block is
1436 zero, then fill in that portion of the inode or block
1437 bitmap with all zeros.
1438
1439 * inode.c (ext2fs_get_next_inode): Fix bug in handling of bad
1440 blocks in inode table when the inode table size is
1441 non-standard (and can therefore span blocks).
1442
1443Tue Oct 29 20:13:14 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1444
1445 * alloc.c (ext2fs_new_block): Fix fencepost error in
1446 ext2fs_new_block; make sure we don't try to allocate the
1447 first block beyond the end of the filesystem.
1448
1449Mon Oct 14 11:00:48 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1450
1451 * inode.c (check_for_inode_bad_blocks): New function called by
1452 get_next_blocks() to avoid reading in bad blocks marked in
1453 fs->badblocks. Inodes located in bad blocks are returned
1454 by ext2fs_get_next_inode() returns the error code
1455 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE.
1456
1457 * alloc_tables.c (ext2fs_allocate_tables): New function which
1458 performs the part of mke2fs's job of allocating the
1459 filesystem tables.
1460
1461 * test_io.c (test_close): IO manager which is used for testing
1462 purposes.
1463
1464Sun Oct 13 04:31:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1465
1466 * inode.c (ext2fs_get_next_inode): Separate out the function of
1467 setting up for a new block group to get_next_blockgroup().
1468 Separate out the function of reading in blocks of the
1469 inode table to get_next_blocks().
1470
1471 * ext2fs.h: Add the badblocks list to the ext2_filsys entry
1472
1473 * badblocks.c (badblocks_list_add, badblocks_list_test): Add
1474 blocks to the badblock list in sorted order. This allows
1475 badblocks_list_test to be coded using a binary search for
1476 speed.
1477
1478Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1479
1480 * Release of E2fsprogs version 1.06
1481
Theodore Ts'o5c576471997-04-29 15:29:49 +00001482Mon Oct 7 00:44:17 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1483
1484 * ext2fs.h, block.c, closefs.c, dirblock.c, inode.c, native.c,
1485 open.c: Change EXT2_SWAP to EXT2_FLAG_SWAP for
1486 consistency's sake.
1487
1488 * closefs.c (ext2fs_flush): If the flag EXT2_MASTER_SB_ONLY is
1489 set, then only write out the master superblock.
1490
1491Sun Oct 6 21:45:26 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1492
1493 * block.c (ext2fs_block_iterate): Fixed bug which caused
1494 block_iterate to fail to handle HURD created filesystems;
1495 it tested the inode translator field before the inode was
1496 loaded.
1497
1498Tue Sep 17 14:08:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1499
1500 * initialize.c (ext2fs_initialize): Make sure the description for
1501 the inode bitmap is set correctly.
1502
1503 * bitmaps.c (ext2fs_allocate_generic_bitmap): Fix minor type typo.
1504
1505Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1506
1507 * Release of E2fsprogs version 1.05
1508
Theodore Ts'o1e3472c1997-04-29 14:53:37 +00001509Sat Sep 7 07:36:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1510
1511 * initialize.c: Override the kernel's idea of default
1512 checkinterval from 0 (never) to 180 days.
1513
1514Wed Aug 28 03:20:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1515
1516 * namei.c (ext2fs_namei_follow): New function which follows
1517 symbolic link (if any) at the target.
1518
1519Tue Aug 27 01:48:43 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1520
1521 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Add support
1522 for shortcut function fs->read_inode() and fs->write_inode().
1523 Added inode_cache to reduce CPU time spent in doing
1524 byte swapping.
1525
1526 * swapfs.c (ext2fs_swap_super): Swap the new fields in a V2
1527 superblock.
1528
1529 * namei.c (ext2fs_follow_link): New function.
1530 (ext2fs_namei): Extended to have support for chasing
1531 symbolic links. ext2fs_namei() still returns an inode
1532 which is a symbolic link. Symbolic links are only chased
1533 while resolving the containing directory. To chase
1534 symbolic links of the final result, use
1535 ext2fs_follow_link().
1536
1537Mon Aug 26 23:46:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1538
1539 * ext2_err.et.in: Added new error code EXT2_ET_SYMLINK_LOOP.
1540
1541 * bitops.h (ext2fs_set_bit, ext2fs_celar_bit): Use asm inlines
1542 provided by Pete A. Zaitcev (zaitcev@lab.sun.mcst.ru).
1543
1544Thu Aug 22 00:40:18 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1545
1546 * initialize.c (ext2fs_initialize): On systems where the byte
1547 order is not i386 compatible, set the swap_byte flag.
1548
1549 * inode.c (inocpy_with_swap): Check to see if inode contains a
1550 fast symlink before swapping the inode block fields. This
1551 required adding a new argument to inocpy_with_swap to
1552 determine whether the mode field is in host order or not.
1553
1554Wed Aug 21 00:45:42 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1555
1556 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit): On
1557 the sparc, if EXT2_STD_BITOPS set, use the standard
1558 i386-compatible bitmask operations, instead on the
1559 non-standard native bitmask operators.
1560
1561Fri Aug 9 11:11:35 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1562
1563 * block.c (ext2fs_block_iterate): Cause block iterator to return
1564 the HURD translator block (along with everything else).
1565 If the flag BLOCK_FLAG_DATA_ONLY is passed to the block
1566 iterator, then don't return any meta data blocks
1567 (including the HURD translator).
1568
1569Wed Jul 17 17:13:34 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1570
1571 * gen_uuid.c: New file, which generates DCE-compatible UUIDs.
1572
1573 * uuid.c: New file, containing UUID utility functions.
1574
1575Tue Jul 16 10:19:16 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1576
1577 * ext2fs.h: Add a definition of the "real" ext2 superblock.
1578
1579Fri May 24 14:54:55 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1580
1581 * ext2fs.h: Fix erroneous ino_t type used in block_bitmap type.
1582
1583Sun May 19 15:39:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1584
1585 * openfs.c (ext2fs_open): If the blocksize in the superblock is
1586 zero, return the error EXT2_ET_CORRUPT_SUPERBLOCK, since
1587 that's a basic value that must be correct for the rest of
1588 the library to work.
1589
1590 * ext2_err.et.in (EXT2_ET_CORRUPT_SUPERBLOCK): Added new error
1591 code.
1592
Theodore Ts'o62c06f71997-04-29 14:34:47 +00001593Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
1594
1595 * Release of E2fsprogs version 1.04
1596
Theodore Ts'o7f88b041997-04-26 14:48:50 +00001597Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>
1598
1599 * Release of E2fsprogs version 1.03
1600
1601Tue Mar 26 12:06:32 1996 <tytso@rsts-11.mit.edu>
1602
1603 * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit):
1604 Change the m68k bit numbering for bitmasks to match with
1605 the bit numbering used by all other ext2 implementations.
1606
1607Thu Mar 7 03:37:00 1996 <tytso@rsts-11.mit.edu>
1608
1609 * inode.c (ext2fs_get_next_inode, ext2fs_close_inode_scan,
1610 ext2fs_open_inode_scan): Support dynamically-sized inodes.
1611
1612Wed Mar 6 12:26:29 1996 <tytso@rsts-11.mit.edu>
1613
1614 * inode.c (ext2fs_read_inode, ext2fs_write_inode): Support
1615 dynamically-sized inodes.
1616
1617 * openfs.c (ext2fs_open): Allow dynamic revision filesystem to be
1618 loaded.
1619
1620Tue Mar 5 03:49:37 1996 <tytso@rsts-11.mit.edu>
1621
1622 * initialize.c (ext2fs_initialize): Catch an error condition where
1623 the passed in size is *really* too small.
1624
1625 * alloc.c (ext2fs_new_inode):
1626 * ext2fs.h (EXT2_FIRST_INODE): Add support for dynamic revision to
1627 get first inode.
1628
1629Wed Feb 21 15:56:17 1996 <tytso@rsts-11.mit.edu>
1630
1631 * getsize.c (ext2fs_get_device_size): Open the device read-only
1632 when trying to determine its size.
1633
Theodore Ts'o74becf31997-04-26 14:37:06 +00001634Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>
1635
1636 * Release of E2fsprogs version 1.02
1637
1638Sat Dec 9 09:57:50 1995 <tytso@rsts-11.mit.edu>
1639
1640 * rw_bitops.c (ext2fs_write_block_bitmap):
1641 * bitops.c (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
1642 * bitops.h (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):
1643 Rename {test,set,clear}_bit to ext2fs_{test,set,clear}_bit,
1644 to avoid conflicts with with kernel include files. Also
1645 rename ADDR and CONST_ADDR to EXT2FS_ADDR and
1646 EXT2FS_CONST_ADDR.
1647
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001648Thu Oct 26 12:09:16 1995 <tytso@rsts-11.mit.edu>
1649
1650 * ext2_err.et: Updated message in EXT2_ET_BASE to say version 0.5c
1651
1652 * swapfs.c (ext2fs_swap_super): Put an #ifdef check around
1653 s_def_resuid and s_def_resgid for backwards compatibility.
1654
1655Fri Oct 20 23:33:31 1995 <tytso@rsts-11.mit.edu>
1656
1657 * bitops.h: Added #ifdef's for Sparc.
1658
1659Wed Sep 6 22:14:46 1995 <tytso@rsts-11.mit.edu>
1660
1661 * getsize.c: #include <sys/ioctl.h> under Linux to pick up ioctl()
1662 declaration
1663
1664 * closefs.c: #include <string.h> to pick up memset() declaration
1665
1666Mon Sep 4 21:45:29 1995 Remy Card <card@bbj>
1667
1668 * Makefile.in: Added support for BSD shared libraries.
1669
1670 * initialize.c (ext2fs_initialize): Correctly set the s_creator_os
1671 flag.
1672
1673Mon Sep 4 09:55:30 1995 <tytso@rsts-11.mit.edu>
1674
1675 * unix_io.c (unix_open): Add a double check; if the passed in name
1676 is NULL, return EXT2_ET_BAD_DEVICE_NAME.
1677
1678 * ext2_err.et (EXT2_ET_BAD_DEVICE_NAME): Added new error code
1679
1680Wed Aug 16 15:44:10 1995 <tytso@rsts-11.mit.edu>
1681
1682 * inode.c (ext2fs_check_directory): Use LINUX_S_ISDIR instead of
1683 S_ISDIR.
1684
1685Tue Aug 15 13:08:36 1995 <tytso@rsts-11.mit.edu>
1686
1687 * getsize.c (ext2fs_get_device_size): Add support for reading the
1688 partition size from a BSD disk label.
1689
1690Thu Aug 10 09:33:26 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1691
1692 * getsize.c (ext2fs_get_device_size): New function that determins
1693 the size of a device. Used by mke2fs and e2fsck.
1694
1695Sat Aug 12 03:09:54 1995 Remy Card <card@bbj>
1696
1697 * Makefile.in (install): Install static libraries in $(ulibdir)
1698 (/usr/lib on Linux) instead of $(libdir) (/lib on Linux).
1699
1700Wed Aug 9 17:04:23 1995 Theodore Y. Ts'o <tytso@dcl>
1701
1702 * bitmaps.c (ext2fs_free_inode_bitmap, ext2fs_free_block_bitmap):
1703 Move these functions to freefs.c.
1704
1705 * closefs.c (ext2fs_flush): If swapping blocks, clear the group
1706 descriptors shadow memory to keep purify quiet. (This
1707 also has the nice benefit that the unused portion of the
1708 shadow descriptors are zeroed out.)
1709
1710 * dirblock.c (ext2fs_write_dir_block): We need to use
1711 dirent->rec_len *before* it's byteswapped to find the
1712 location of the next directory structure!
1713
1714 * alloc.c (ext2fs_new_inode): Fix bug which could potentially
1715 cause ext2fs_new_inode to loop infinitely if we're trying
1716 to allocate an inode in group #0 and there are no free
1717 inodes at all in the system.
1718
1719 * closefs.c: #include <errno.h> if it exists.
1720
1721Sun Aug 6 13:27:50 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1722
1723 * ext2fs.h (BLOCK_FLAG_HOLE): Added new definition for
1724 BLOCK_FLAG_APPEND. Added documentation for the block
1725 interator flags.
1726
1727Sat Aug 5 11:44:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1728
1729 * Makefile.in (DLL_INSTALL_DIR, ELF_INSTALL_DIR): Set the
1730 installation directories correctly.
1731
1732Tue Jul 18 09:27:38 1995 <tytso@rsx-11.mit.edu>
1733
1734 * namei.c (process_dir_block):
1735 * mkdir.c (ext2fs_mkdir):
1736 * expanddir.c (expand_dir_proc): Use ext2fs_{read,write}_dir_block
1737 to read/write the directory block.
1738
1739 * dirblock.c (ext2fs_read_dir_block), ext2fs_write_dir_block): New
1740 file containing functions for reading and writing
1741 directory blocks (byte swapping if necesssary)
1742
1743 * block.c (block_iterate_ind, block_iterate_dind,
1744 block_iterate_tind): Byte swap the block addresses if
1745 EXT2_SWAP_BYTES is set (and swap them back before writing
1746 them out.)
1747
1748 * inode.c (inocpy_with_swap): New function.
1749 (ext2fs_get_next_inode, ext2fs_read_inode, ext2fs_write_inode):
1750 Call inocpy_with_swap if EXT2_SWAP_BYTES if set.
1751
1752 * closefs.c (ext2fs_flush): If EXT2_SWAP_BYTES is set, then swap
1753 the superblock and group descriptors before writing it out.
1754
1755 * openfs.c (ext2fs_open): If the magic number is byte-swapped,
1756 then set the EXT2_SWAP_BYTES and byte-swap the superblock
1757 and group descriptors.
1758
1759 * swapfs.c (ext2fs_swap_super, ext2fs_swap_group_desc): New functions
1760 to desp ext2 filesystem structures.
1761
1762 * bitops.c (set_bit, clear_bit, test_bit): Use modifications
1763 supplied by Pete A. Zaitcev so that the C language
1764 versions of these functions are more portable. They will
1765 now work on both little and big endian systems, and the
1766 assumption that 32-bit integers are used is gone.
1767
1768 * bitops.h (ext2_swab16, ext2_swab32): Added new functions for
1769 doing byte swapping.
1770
1771 * ext2fs.h (EXT2_SWAP_BYTES): Add new flag which indicates that
1772 byte swapping should take place.
1773
1774Sun Jul 16 06:21:43 1995 <tytso@rsx-11.mit.edu>
1775
1776 * Makefile.in, cmp_bitmaps.c (ext2fs_compare_block_bitmap_end,
1777 ext2fs_compare_inode_bitmap_end): Added new file
1778 containing routines to compare bitmaps.
1779
1780 * ext2_err.et (EXT2_ET_NEQ_BLOCK_BITMAP, EXT2_ET_NEQ_INODE_BITMAP):
1781 Added new error codes.
1782
1783Sat Jul 15 04:23:37 1995 <tytso@rsx-11.mit.edu>
1784
1785 * inode.c (ext2fs_get_next_inode): Don't check scan->inode_buffer;
1786 if the magic number is correct, it will be allocated.
1787
1788Fri Jul 14 19:02:59 1995 <tytso@rsx-11.mit.edu>
1789
1790 * block.c (block_iterate_ind, block_iterate_dind,
1791 block_iterate_tind): Don't recompute block_nr each loop;
1792 just increment it! Factor check of BLOCK_FLAG_APPEND out
1793 of the loop. Factor mask of BLOCK_CHANGED into changed
1794 variable out of the loop. (block_iterate_ind, in
1795 particular, gets called a lot, so every little
1796 optimization helps.)
1797
1798Thu Jul 13 08:02:45 1995 <tytso@rsx-11.mit.edu>
1799
1800 * block.c (block_iterate_ind, block_iterate_dind,
1801 block_iterate_tind): Precompute limit of loop to speed up
1802 block_iterate_ind and company.
1803
1804 * bitops.h (ext2fs_fast_mark_block_bitmap,
1805 ext2fs_fast_unmark_block_bitmap, ext2fs_fast_test_block_bitmap,
1806 ext2fs_fast_mark_inode_bitmap, ext2fs_fast_unmark_inode_bitmap,
1807 ext2fs_fast_test_inode_bitmap): Add fast version of these
1808 functions, which don't do range checking.
1809
1810 * bitops.h (ext2fs_get_block_bitmap_start,
1811 ext2fs_get_inode_bitmap_start, ext2fs_get_block_bitmap_end,
1812 ext2fs_get_inode_bitmap_end): Add new accessor functions
1813 which return the start and end points of the bitmaps.
1814
1815Tue Jul 11 18:59:41 1995 <tytso@rsx-11.mit.edu>
1816
1817 * llseek.c (ext2_llseek): If the offset is small enough, use lseek
1818 instead of llseek. The errno if the offset is too large
1819 and lseek is not supported should be EINVAL, not -EINVAL.
1820
1821Thu Jun 15 23:43:02 1995 Remy Card <card@bbj>
1822
1823 * Makefile.in: Added support for ELF shared libraries.
1824 Fixed typos in the compilation rules.
1825 (distclean): Added Makefile.
1826
1827 * llseek.c (llseek): New function, if llseek() does not exist in the
1828 C library.
1829 (ext2_llseek): Changed to call llseek().
1830
1831Mon Jun 12 08:29:07 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1832
1833 * ext2fs.h: Use __u32 to define blk_t, instead of unsigned long.
1834
1835Sun Jun 11 15:02:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1836
1837 * mkdir.c (ext2fs_mkdir): Use LINUX_S_IFDIR instead of S_IFDIR.
1838
1839 * ext2fs.h (LINUX_S_IFDIR): Define a linux specific versions of
1840 the S_*, which are normally defined in <sys/stat.h>. This
1841 allows us to compile e2fsprogs on a non-Linux system,
1842 which may have a different value for S_IFDIR.
1843
1844Sat Jun 10 23:47:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>
1845
1846 * bitops.c (clear_bit, set_bit): Remove calls to cli() and sti();
1847 this is a user-mode application!
1848
1849Thu Jun 8 13:13:22 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
1850
1851 * llseek.c: Put the include of <linux/unistd.h> inside the #ifdef
1852 __linux__ so that non-linux systems won't see it.
1853
1854 * alloc.c: Include <errno.h> if possible.
1855 * badblocks.c: Ditto.
1856 * bb_inode.c: Ditto.
1857 * bitmaps.c: Ditto.
1858 * block.c: Ditto.
1859 * expanddir.c: Ditto.
1860 * get_pathname.c: Ditto.
1861 * initialize.c: Ditto.
1862 * inode.c: Ditto.
1863 * llseek.c: Ditto.
1864 * mkdir.c: Ditto.
1865 * namei.c: Ditto.
1866 * newdir.c: Ditto.
1867 * openfs.c: Ditto.
1868 * rw_bitmaps.c: Ditto.
1869 * unix_io.c: Ditto.
1870
1871 * Makefile.in: Rewritten to conform to GNU coding standards and
1872 support separate compilation directories.
1873
1874Thu May 11 04:13:12 1995 <tytso@rsx-11.mit.edu>
1875
1876 * initialize.c (ext2fs_initialize): Don't allow more than one
1877 bitmaps's worth of inodes in a group.
1878
Theodore Ts'of3db3561997-04-26 13:34:30 +00001879Sat Mar 11 14:07:11 1995 Theodore Y. Ts'o <tytso@localhost>
1880
1881 * llseek.c (ext2_llseek): Added error checking to the llseek()
1882 compat code to protect against overflow. This only
1883 applies to 1.0 and early 1.1 kernels, which don't support
1884 the llseek() system call.
1885
1886Thu Nov 24 16:29:00 1994 Theodore Y. Ts'o (tytso@rt-11)
1887
1888 * unix_io.c (unix_open): Initialize the read_error and write_error
1889 io_channel pointers to be null.
1890
1891 * bb_inode.c (clear_bad_block_proc): If an illegal block number is
1892 found, clear it but don't try to update the filesystem
1893 accounting information, since that's hopeless anyway.
1894
1895 * block.c (bloblock_iterate_ind, bloblock_iterate_dind,
1896 bloblock_iterate_tind): Check to see if the indirect blocks are
1897 valid before trying to read them.
1898
1899 * ext2_err.et (EXT2_ET_BAD_IND_BLOCK, EX2_ET_BAD_DIND_BLOCK,
1900 EXT2_ET_BAD_TIND_BLOCK): Add new error codes.
1901
1902 * bitops.h (ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,
1903 ext2fs_test_block_bitmap, ext2fs_mark_inode_bitmap,
1904 ext2fs_unmark_inode_bitmap, ext2fs_test_inode_bitmap): If an
1905 illegal block or inode number is passed in, return instead
1906 of trying to test, set, or clear the bit.
1907
1908Mon Nov 7 21:32:33 1994 Remy Card <card@bbj>
1909
1910 * Makefile: Added a dummy install target in case shared libraries
1911 are not built.
1912
1913Mon Oct 24 14:11:44 1994 (tytso@rsx-11)
1914
1915 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix calculation of how
1916 the real last block of the bitmap should be calculated.
1917
1918Wed Sep 7 10:05:36 1994 (tytso@rsx-11)
1919
1920 * bitmaps.c (ext2fs_fudge_inode_bitmap_end,
1921 ext2fs_fudge_block_bitmap_end, ext2fs_clear_inode_bitmap,
1922 ext2fs_clear_block_bitmap, ext2fs_free_inode_bitmap,
1923 ext2fs_free_block_bitmap): Add magic number checking for
1924 the inode and block bitmaps.
1925
1926 * bitmaps.c (ext2fs_allocate_block_bitmap): Fix to set the correct
1927 magic number for a block bitmap instead of an inode bitmap.
1928
1929 * inode.c (ext2fs_close_inode_scan, ext2fs_get_next_inode): Add
1930 magic number checking for the inode_scan structure.
1931
1932 * badblocks.c (badblocks_list_free, badblocks_list_add,
1933 badblocks_list_test, badblocks_list_iterate_begin,
1934 badblocks_list_iterate, badblocks_list_iterate_end): Add
1935 magic number checking for the badblocks_list and
1936 badblocks_iterate structures.
1937
1938 * ext2_err.et (EXT2_ET_MAGIC_UNIX_IO_CHANNEL):
1939 * unix_io.c (unix_open, unix_close, unix_set_blksize, unix_read_blk,
1940 unix_write_blk, unix_flush): Add magic number checking
1941 both for io_channel structure and unix_private_data
1942 structure.
1943
1944 * openfs.c (ext2fs_open): Add check for io_manager structure's
1945 magic number.
1946
1947 * rw_bitmaps.c (ext2fs_write_inode_bitmap, ext2fs_write_block_bitmap,
1948 ext2fs_read_inode_bitmap, ext2fs_read_block_bitmap,
1949 ext2fs_read_bitmaps, ext2fs_write_bitmaps):
1950 * read_bb.c (ext2fs_read_bb_inode):
1951 * read_bb_file.c (ext2fs_read_bb_FILE):
1952 * newdir.c (ext2fs_new_dir_block):
1953 * namei.c (ext2fs_dir_iterate, ext2fs_lookup, ext2fs_namei):
1954 * link.c (ext2fs_link, ext2fs_unlink):
1955 * inode.c (ext2fs_open_inode_scan, ext2fs_read_inode,
1956 ext2fs_write_inode, ext2fs_get_blocks,
1957 ext2fs_check_directory):
1958 * get_pathname.c (ext2fs_get_pathname):
1959 * expanddir.c (ext2fs_expand_dir):
1960 * block.c (ext2fs_block_iterate):
1961 * bitmaps.c (ext2fs_allocate_inode_bitmap,
1962 ext2fs_allocate_block_bitmap):
1963 * bb_inode.c (ext2fs_update_bb_inode):
1964 * alloc.c (ext2fs_new_inode,ext2fs_new_block,ext2fs_get_free_blocks):
1965 * check_desc.c (ext2fs_check_desc):
1966 * closefs.c (ext2fs_close, ext2fs_flush):
1967 * freefs.c (ext2fs_free): Add check for ext2_filsys magic number.
1968
1969 * Makefile:
1970 * ext2fs.h:
1971 * openfs.c:
1972 * check_desc.c (ext2fs_check_desc): Move ext2fs_check_desc from
1973 openfs.c into its own file.
1974
1975 * ext2fs.h (EXT2_CHECK_MAGIC): Added macro for checking for
1976 structure magic numbers.
1977
1978 * closefs.c (ext2fs_flush): Folded in Remy Card's changes to clear
1979 the EXT2_VALID_FS flag in the backup superblock blocks, so that if
1980 someone uses the -b option to specify the use of the backup
1981 superblock --- this usually means that the main superblock is
1982 toast. :-)
1983
1984 * ext2fs.h:
1985 * ext2_err.et (EXT2_ET_REV_TOO_HIGH):
1986 * openfs.c (ext2fs_open): Folded in Remy Card's changes to add a
1987 revision level to the superblock.
1988
1989Sun Aug 21 00:50:08 1994 Theodore Y. Ts'o (tytso@rt-11)
1990
1991 * ext2fs.h:
1992 * bitmaps.c:
1993 * bitops.c
1994 * bitops.h:
1995 * openfs.c:
1996 * initialize.c: Completely revamped the inode and block bitmap
1997 structures, so that they can be better chance of being extensible
1998 in a shared library. They are now their own type, instead of
1999 being a char *. Also, the function signatures of
2000 ext2fs_test_block_bitmap, ext2fs_mark_block_bitmap,
2001 ext2fs_unmark_block_bitmap, ext2fs_test_inode_bitmap,
2002 ext2fs_mark_inode_bitmap, and ext2fs_unmark_inode_bitmap were
2003 changed to eliminate the ext2_filsys argument, since it is no
2004 longer necessary.
2005
2006Wed Aug 17 21:46:44 1994 Remy Card (card@bbj)
2007
2008 * unix_io.c (unix_read_blk and unix_write_blk): use the llseek
2009 system call if available.
2010
2011 * llseek.c: new file. This is the stub calling the llseek system
2012 call which allows supports for 2GB+ file systems.
2013
2014 * initialize.c (ext2fs_initialize): Ext2fs_initialize now stores
2015 the creator operating system.
2016
2017Wed Aug 17 10:03:24 1994 Theodore Y. Ts'o (tytso@rt-11)
2018
2019 * initialize.c (ext2fs_initialize): Ext2fs_initialize now sets up
2020 the group descriptor statistics in addition to everything else.
2021 This relieves mke2fs of the responsibility of doing it.
2022
2023 * bitops.c, bitops.h: Add assembly inline functions for the 68000.
2024 Added a new #define, _EXT2_HAVE_ASM_BITOPS_ to control whether or
2025 not the generic C function equivalents should be included or not.
2026
2027 * openfs.c (ext2fs_open): If a superblock is specified, then use
2028 the backup group descriptors that go along with this superblock,
2029 instead of using the primary group descriptors. This allows
2030 e2fsck to recover filesystems where the primary group descriptors
2031 have been trashed.
2032
2033