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