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