Back to home page

OSCL-LXR

 
 

    


0001 Version 0.92 (2002-03-29)
0002 ==========
0003 * Minor cleanup. Ran Lindent on the sources.
0004 
0005 Version 0.92 (2002-03-27)
0006 ==========
0007 * Fixed module makefile problem. It was not compiling all the correct 
0008     source files!
0009 * Removed duplicated function definition
0010 * Fixed potential null pointer dereference when reporting an error
0011 
0012 Version 0.91 (2002-03-26)
0013 ==========
0014 * Oy! Fixed stupid bug that would cause an unresolved symbol error.
0015         Thanks to Laszlo Boszormenyi for pointing this out to me.
0016 
0017 Version 0.9 (2002-03-14)
0018 ==========
0019 * Added Sergey S. Kostyliov's patch to eliminate memcpy() overhead
0020         from b+tree operations. Changes the befs_read_datastream() interface.
0021 
0022 * Segregated the functions that interface directly with the linux  vfs 
0023         interface into their own file called linuxvfs.c. [WD]
0024 
0025 Version 0.64 (2002-02-07)
0026 ==========
0027 * Did the string comparison really right this time (btree.c) [WD]
0028 
0029 * Fixed up some places where I assumed that a long int could hold
0030         a pointer value. (btree.c) [WD]
0031 
0032 * Andrew Farnham <andrewfarnham@uq.net.au> pointed out that the module
0033         wouldn't work on older (<2.4.10) kernels due to an unresolved symbol.
0034         This is bad, since 2.4.9 is still the current RedHat kernel. I added
0035         a workaround for this problem (compatibility.h) [WD]
0036 
0037 * Sergey S. Kostyliov made befs_find_key() use a binary search to find 
0038         keys within btree nodes, rather than the linear search we were using 
0039         before. (btree.c) [Sergey S. Kostyliov <rathamahata@php4.ru>]
0040 
0041 * Made a debian package of the source for use with kernel-package. [WD]
0042 
0043 
0044 Version 0.63 (2002-01-31)
0045 ==========
0046 * Fixed bug in befs_find_brun_indirect() that would result in the wrong
0047         block being read. It was introduced when adding byteswapping in 
0048         0.61. (datastream.c) [WD]
0049 
0050 * Fixed a longstanding bug in befs_find_key() that would result in it 
0051         finding the first key that is a substring of the string it is searching
0052         for. For example, this would cause files in the same directory with 
0053         names like file1 and file2 to mysteriously be duplicates of each other 
0054         (because they have the same inode number). Many thanks to Pavel Roskin 
0055         for reporting this serious bug!!!
0056         (btree.c) [WD]
0057 
0058 * Added support for long symlinks, after Axel Dorfler explained up how 
0059         they work. I had forgotten all about them. (inode.c, symlink.c) [WD]
0060 
0061 * Documentation improvements in source. [WD]
0062 
0063 * Makefile fix for independent module when CONFIG_MODVERSION is set in 
0064         kernel config [Pavel Roskin <proski@gnu.org>]
0065 
0066 * Compile warning fix for namei.c. [Sergey S. Kostyliov <rathamahata@php4.ru>]
0067 
0068 
0069 Version 0.62
0070 ==========
0071 * Fixed makefile for module install [WD]
0072 
0073 
0074 Version 0.61 (2002-01-20)
0075 ==========
0076 * Made functions in endian.h to do the correct byteswapping, no matter
0077         the arch. [WD]
0078 
0079 * Abbandoned silly checks for a NULL superblock pointer in debug.c. [WD]
0080 
0081 * Misc code cleanups. Also cleanup of this changelog file. [WD]
0082 
0083 * Added byteswapping to all metadata reads from disk.
0084         Uses the functions from endian.h [WD]
0085 
0086 * Remove the typedef of struct super_block to vfs_sb, as it offended
0087         certain peoples' aesthetic sense. [WD]
0088 
0089 * Ditto with the befs_read_block() interface. [WD]
0090  
0091 
0092 Version 0.6 (2001-12-15)
0093 ==========
0094 * Cleanup of NLS functions (util.c) [WD]
0095 
0096 * Make directory lookup/read use the NLS if an iocharset is provided. [WD]
0097 
0098 * Fixed stupid bug where specifying the uid or gid mount options as '0' 
0099         would result in the filesystem using the on-disk uid and gid. [WD]
0100 
0101 * Added mount option to control debug printing. 
0102         The option is, simply enough, 'debug'. 
0103         (super.c, debug.c) [WD]
0104 
0105 * Removed notion of btree handle from btree.c. It was unnecessary, as the
0106         linux VFS doesn't allow us to keep any state between calls. Updated 
0107         dir.c, namei.c befs_fs.h to account for it. [WD]
0108 
0109 * Improved handleing of overflow nodes when listing directories. 
0110         Now works for overflow nodes hanging off of nodes other than the root 
0111         node. This is the cleaner solution to Brent Miszalaski's problem. [WD]
0112 
0113 * Added new debug/warning/error print functions in debug.c. 
0114         More flexible. Will soon be controllable at mount time 
0115         (see TODO). [WD]
0116 
0117 * Rewrote datastream position lookups.
0118         (datastream.c) [WD]
0119 
0120 * Moved the TODO list to its own file.
0121 
0122 
0123 Version 0.50 (2001-11-13)
0124 ==========
0125 * Added workaround for mis-understanding of the nature of the b+trees used 
0126         in directories. A cleaner solution will come after I've thought about it 
0127         for a while. Thanks to Brent Miszalaski for finding and reporting this bug. 
0128         (btree.c) [WD]
0129 
0130 * Minor cleanups
0131 
0132 * Added test for "impossible" condition of empty internal nodes in 
0133         seekleaf() in btree.c [WD]
0134 
0135 * Implemented the abstracted read_block() in io.c [WD]
0136 
0137 * Cleaned up the inode validation in inode.c [WD]
0138 
0139 * Anton Altaparmakov figured out (by asking Linus :) ) what was causing the 
0140         hanging disk io problem. It turns out you need to have the sync_pages 
0141         callback defined in your address_space_ops, even if it just uses the 
0142         default linux-supplied implementation. Fixed. Works now.
0143         (file.c) [WD]
0144 
0145 * Anton Altaparmakov and Christoph Hellwig alerted me to the fact that 
0146         filesystem code should be using GFP_NOFS instead of GFP_KERNEL as the 
0147         priority parameter to kmalloc(). Fixed. 
0148         (datastream.c, btree.c super.c inode.c) [WD]
0149 
0150 * Anton also told me that the blocksize is not allowed to be larger than 
0151         the page size in linux, which is 4k i386. Oops. Added a test for 
0152         (blocksize > PAGE_SIZE), and refuse to mount in that case. What this 
0153         practically means is that 8k blocksize volumes won't work without a major
0154         restructuring of the driver (or an alpha or other 64bit hardware). [WD]
0155 
0156 * Cleaned up the befs_count_blocks() function. Much smarter now. 
0157         And somewhat smaller too. [WD]
0158 
0159 * Made inode allocations use a slab cache 
0160         (super.c inode.c) [WD]
0161 
0162 * Moved the freeing of the private inode section from put_inode() to 
0163         clear_inode(). This fixes a potential free twice type bug. Put_inode() 
0164         can be called multiple times for each inode struct. [WD]
0165 
0166 * Converted all non vfs-callback functions to use befs_sb_info as the 
0167         superblock type, rather than struct super_block. This is for 
0168         portablity. [WD]
0169 
0170 * Fixed a couple of compile warnings due to use of malloc.h, when slab.h 
0171         is the new way. (inode.c, super.c) [WD]
0172 
0173 * Fixed erronous includes of linux/befs_fs_i.h and linux/befs_fs_sb.h 
0174         in inode.c [WD]
0175 
0176 Version 0.45 (2001-10-29)
0177 ==========
0178 * Added functions to get the private superblock and inode structures from 
0179         their enclosing public structures. Switched all references to the 
0180         private portions to use them. (many files) [WD]
0181 
0182 * Made read_super and read_inode allocate the private portions of those 
0183         structures into the generic pointer fields of the public structures 
0184         with kmalloc(). put_super and put_inode free them. This allows us not 
0185         to have to touch the definitions of the public structures in 
0186         include/linux/fs.h. Also, befs_inode_info is huge (because of the 
0187         symlink string). (super.c, inode.c, befs_fs.h) [WD]
0188 
0189 * Fixed a thinko that was corrupting file reads after the first block_run 
0190         is done being read. (datastream.c) [WD]
0191 
0192 * Removed fsync() hooks, since a read-only filesystem doesn't need them. 
0193         [Christoph Hellwig].
0194 
0195 * Fixed befs_readlink() (symlink.c) [Christoph Hellwig].
0196 
0197 * Removed all the Read-Write stuff. I'll redo it when it is time to add 
0198         write support (various files) [WD].
0199 
0200 * Removed prototypes for functions who's definitions have been removed 
0201         (befs_fs.h) [WD].
0202 
0203 
0204 Version 0.4 (2001-10-28)
0205 ==========
0206 * Made it an option to use the old non-pagecache befs_file_read() for 
0207         testing purposes. (fs/Config.in)
0208 
0209 * Fixed unused variable warnings when compiling without debugging.
0210 
0211 * Fixed a bug where the inode and super_block didn't get their blockbits 
0212         fields set (inode.c and super.c). 
0213 
0214 * Release patch version 11. AKA befs-driver version 0.4.
0215 
0216 * Thats right. New versioning scheme. 
0217         I've done some serious testing on it now (on my box anyhow), and it 
0218         seems stable and not outragously slow. Existing features are more-or-less 
0219         correct (see TODO list). But it isn't 1.0 yet. I think 0.4 gives me some 
0220         headroom before the big 1.0.
0221 
0222 
0223 2001-10-26
0224 ==========
0225 * Fixed date format in this file. Was I smoking crack?
0226 
0227 * Removed old datastream code from file.c, since it is nolonger used.
0228 
0229 * Generic_read_file() is now used to read regular file data. 
0230         It doesn't chew up the buffer cache (it does page io instead), and seems 
0231         to be about as fast (even though it has to look up each file block 
0232         indivdualy). And it knows about doing readahead, which is a major plus. 
0233         So it does i/o in much larger chunks. It is the correct linux way. It 
0234         uses befs_get_block() by way of befs_readpage() to find the disk offsets 
0235         of blocks, which in turn calls befs_fpos2brun() in datastream.c to do 
0236         the hard work of finding the disk block number.
0237 
0238 * Changed method of checking for a dirty filesystem in befs_read_super 
0239         (super.c). Now we check to see if log_start and log_end differ. If so, 
0240         the journal needs to be replayed, and the filesystem cannot be mounted.
0241 
0242 * Fixed an extra instance of MOD_DEC_USE_COUNT in super.c
0243 
0244 * Fixed a problem with reading the superblock on devices with large sector 
0245         sizes (such as cdroms) on linux 2.4.10 and up.
0246 
0247 2001-10-24
0248 ==========
0249 * Fix nasty bug in converting block numbers to struct befs_inode_addr. 
0250         Subtle, because the old version was only sometimes wrong. 
0251         Probably responsible for lots of problems. (inode.c)
0252 
0253 * Fix bug with reading an empty directory. (btree.c and dir.c)
0254 
0255 * This one looks good. Release patch version 10
0256 
0257 2001-10-23
0258 ==========
0259 * Added btree searching function.
0260 
0261 * Use befs_btree_find in befs_lookup (namei.c)
0262 
0263 * Additional comments in btree.c
0264 
0265 2001-10-22
0266 ==========
0267 * Added B+tree reading functions (in btree.c). 
0268         Made befs_readdir() use them them instead of the cruft in index.c.
0269 
0270 2001-09-11
0271 ==========
0272 * Converted befs_read_file() to use the new datastream code.
0273 
0274 * Finally updated the README file.
0275 
0276 * Added many comments.
0277 
0278 * Posted version 6
0279 
0280 * Removed byte-order conversion code. 
0281         I have no intention of supporting it, and it was very ugly. 
0282         Flow control with #ifdef (ugh). Maybe I'll redo it once 
0283         native byteorder works 100%.
0284 
0285 2001-09-10
0286 ==========
0287 * Finished implementing read_datastream()
0288 
0289 * made befs_read_brun() more general
0290         Supports an offset to start at and a max bytes to read
0291         Added a wrapper function to give the old call
0292 
0293 2001-09-30
0294 ==========
0295 * Discovered that the datastream handleing code in file.c is quite deficient 
0296         in several respects. For one thing, it doesn't deal with indirect blocks
0297 
0298 * Rewrote datastream handleing.
0299 
0300 * Created io.c, for io related functions.
0301         Previously, the befs_bread() funtions lived in file.c
0302         Created the befs_read_brun() function.
0303 
0304 
0305 2001-09-07
0306 ==========
0307 * Made a function to actually count the number of fs blocks used by a file.
0308         And helper functions.
0309         (fs/befs/inode.c)
0310 
0311 2001-09-05
0312 ==========
0313 * Fixed a misunderstanding of the inode fields. 
0314         This fixed the problmem with wrong file sizes from du and others.
0315         The i_blocks field of the inode struct is not the number of blocks for the
0316         inode, it is the number of blocks for the file. Also, i_blksize is not
0317         necessarily the size of the inode, although in  practice it works out.
0318         Changed to blocksize of filesystem.
0319         (fs/befs/inode.c)
0320 
0321 * Permanently removed code that had been provisionally ifdefed out of befs_fs.h
0322 
0323 * Since we don't support access time, make that field zero, instead of 
0324         copying m_time.
0325         (fs/befs/inode.c)
0326 
0327 * Added sanity check for inode reading
0328         Make sure inode we got was the one we asked for. 
0329         (fs/befs/inode.c)
0330 
0331 * Code cleanup
0332         Local pointers to commonly used structures in inode.c.
0333         Got rid of abominations befs_iaddr2inode() and befs_inode2ino(). 
0334         Replaced with single function iaddr2blockno().
0335         (fs/befs/super.c) (fs/befs/inode.c)
0336 
0337 2001-09-01
0338 ==========
0339 * Fixed the problem with statfs where it would always claim the disk was 
0340         half full, due to improper understanding of the statfs fields.
0341         (fs/befs/super.c)
0342 
0343 * Posted verion 4 of the patch
0344 
0345 2001-09-01
0346 ==========
0347 * Changed the macros in befs_fs.h to inline functions.
0348         More readable. Typesafe. Better
0349         (include/linux/befs_fs.h)
0350 
0351 * Moved type definitions from befs_fs.h to a new file, befs_fs_types.h 
0352         Because befs_fs_i.h and befs_fs_sb.h were including befs_fs.h for the 
0353         typedefs, and they are inlcuded in <linux/fs.h>, which has definitions 
0354         that I want the inline functions in befs_fs.h to be able to see. Nasty
0355         circularity.
0356         (include/linux/befs_fs.h)
0357 
0358 2001-08-30
0359 ==========
0360 * Cleaned up some wording.
0361 
0362 * Added additional consitency checks on mount
0363         Check block_size agrees with block_shift
0364         Check flags == BEFS_CLEAN
0365         (fs/befs/super.c)
0366 
0367 * Tell the kernel to only mount befs read-only. 
0368         By setting the SB_RDONLY flag in befs_read_super().
0369         Not that it was possible to write before. But now the kernel won't even try.
0370         (fs/befs/super.c)
0371 
0372 * Got rid of kernel warning on mount.
0373         The kernel doesn't like it if you call set_blocksize() on a device when 
0374         you have some of its blocks open. Moved the second set_blocksize() to the
0375         very end of befs_read_super(), after we are done with the disk superblock.
0376         (fs/befs/super.c)
0377         
0378 * Fixed wrong number of args bug in befs_dump_inode
0379         (fs/befs/debug.c)
0380 
0381 * Solved lots of type mismatches in kprint()s
0382         (everwhere)
0383 
0384 2001-08-27
0385 ==========
0386 * Cleaned up the fs/Config.in entries a bit, now slightly more descriptive.
0387 
0388 * BeFS depends on NLS, so I made activating BeFS enable the NLS questions
0389         (fs/nls/Config.in)
0390 
0391 * Added Configure.help entries for CONFIG_BEFS_FS and CONFIG_DEBUG_BEFS
0392         (currently at fs/befs/Kconfig)
0393 
0394 2001-08-??
0395 ==========
0396 * Removed superblock locking calls in befs_read_super(). In 2.4, the VFS 
0397         hands us a super_block struct that is already locked.
0398 
0399 2001-08-13
0400 ==========
0401 * Will Dyson <will_dyson@pobox.com> is now attempting to maintain this module
0402         Makoto Kato <m_kato@ga2.so-net.ne.jp> is original author.Daniel Berlin 
0403         also did some work on it (fixing it up for the later 2.3.x kernels, IIRC).
0404 
0405 * Fixed compile errors on 2.4.1 kernel (WD)
0406         Resolve rejected patches
0407         Accommodate changed NLS interface (util.h)
0408         Needed to include <linux/slab.h> in most files
0409         Makefile changes
0410         fs/Config.in changes
0411 
0412 * Tried to niceify the code using the ext2 fs as a guide
0413         Declare befs_fs_type using the DECLARE_FSTYPE_DEV() macro
0414 
0415 * Made it a configure option to turn on debugging (fs/Config.in)
0416 
0417 * Compiles on 2.4.7