18c2ecf20Sopenharmony_ciVersion 0.92 (2002-03-29) 28c2ecf20Sopenharmony_ci========== 38c2ecf20Sopenharmony_ci* Minor cleanup. Ran Lindent on the sources. 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ciVersion 0.92 (2002-03-27) 68c2ecf20Sopenharmony_ci========== 78c2ecf20Sopenharmony_ci* Fixed module makefile problem. It was not compiling all the correct 88c2ecf20Sopenharmony_ci source files! 98c2ecf20Sopenharmony_ci* Removed duplicated function definition 108c2ecf20Sopenharmony_ci* Fixed potential null pointer dereference when reporting an error 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ciVersion 0.91 (2002-03-26) 138c2ecf20Sopenharmony_ci========== 148c2ecf20Sopenharmony_ci* Oy! Fixed stupid bug that would cause an unresolved symbol error. 158c2ecf20Sopenharmony_ci Thanks to Laszlo Boszormenyi for pointing this out to me. 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciVersion 0.9 (2002-03-14) 188c2ecf20Sopenharmony_ci========== 198c2ecf20Sopenharmony_ci* Added Sergey S. Kostyliov's patch to eliminate memcpy() overhead 208c2ecf20Sopenharmony_ci from b+tree operations. Changes the befs_read_datastream() interface. 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci* Segregated the functions that interface directly with the linux vfs 238c2ecf20Sopenharmony_ci interface into their own file called linuxvfs.c. [WD] 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ciVersion 0.64 (2002-02-07) 268c2ecf20Sopenharmony_ci========== 278c2ecf20Sopenharmony_ci* Did the string comparison really right this time (btree.c) [WD] 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci* Fixed up some places where I assumed that a long int could hold 308c2ecf20Sopenharmony_ci a pointer value. (btree.c) [WD] 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci* Andrew Farnham <andrewfarnham@uq.net.au> pointed out that the module 338c2ecf20Sopenharmony_ci wouldn't work on older (<2.4.10) kernels due to an unresolved symbol. 348c2ecf20Sopenharmony_ci This is bad, since 2.4.9 is still the current RedHat kernel. I added 358c2ecf20Sopenharmony_ci a workaround for this problem (compatibility.h) [WD] 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci* Sergey S. Kostyliov made befs_find_key() use a binary search to find 388c2ecf20Sopenharmony_ci keys within btree nodes, rather than the linear search we were using 398c2ecf20Sopenharmony_ci before. (btree.c) [Sergey S. Kostyliov <rathamahata@php4.ru>] 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci* Made a debian package of the source for use with kernel-package. [WD] 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ciVersion 0.63 (2002-01-31) 458c2ecf20Sopenharmony_ci========== 468c2ecf20Sopenharmony_ci* Fixed bug in befs_find_brun_indirect() that would result in the wrong 478c2ecf20Sopenharmony_ci block being read. It was introduced when adding byteswapping in 488c2ecf20Sopenharmony_ci 0.61. (datastream.c) [WD] 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci* Fixed a longstanding bug in befs_find_key() that would result in it 518c2ecf20Sopenharmony_ci finding the first key that is a substring of the string it is searching 528c2ecf20Sopenharmony_ci for. For example, this would cause files in the same directory with 538c2ecf20Sopenharmony_ci names like file1 and file2 to mysteriously be duplicates of each other 548c2ecf20Sopenharmony_ci (because they have the same inode number). Many thanks to Pavel Roskin 558c2ecf20Sopenharmony_ci for reporting this serious bug!!! 568c2ecf20Sopenharmony_ci (btree.c) [WD] 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci* Added support for long symlinks, after Axel Dorfler explained up how 598c2ecf20Sopenharmony_ci they work. I had forgotten all about them. (inode.c, symlink.c) [WD] 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ci* Documentation improvements in source. [WD] 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci* Makefile fix for independent module when CONFIG_MODVERSION is set in 648c2ecf20Sopenharmony_ci kernel config [Pavel Roskin <proski@gnu.org>] 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ci* Compile warning fix for namei.c. [Sergey S. Kostyliov <rathamahata@php4.ru>] 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ciVersion 0.62 708c2ecf20Sopenharmony_ci========== 718c2ecf20Sopenharmony_ci* Fixed makefile for module install [WD] 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_ciVersion 0.61 (2002-01-20) 758c2ecf20Sopenharmony_ci========== 768c2ecf20Sopenharmony_ci* Made functions in endian.h to do the correct byteswapping, no matter 778c2ecf20Sopenharmony_ci the arch. [WD] 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci* Abbandoned silly checks for a NULL superblock pointer in debug.c. [WD] 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci* Misc code cleanups. Also cleanup of this changelog file. [WD] 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ci* Added byteswapping to all metadata reads from disk. 848c2ecf20Sopenharmony_ci Uses the functions from endian.h [WD] 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ci* Remove the typedef of struct super_block to vfs_sb, as it offended 878c2ecf20Sopenharmony_ci certain peoples' aesthetic sense. [WD] 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ci* Ditto with the befs_read_block() interface. [WD] 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ciVersion 0.6 (2001-12-15) 938c2ecf20Sopenharmony_ci========== 948c2ecf20Sopenharmony_ci* Cleanup of NLS functions (util.c) [WD] 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci* Make directory lookup/read use the NLS if an iocharset is provided. [WD] 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ci* Fixed stupid bug where specifying the uid or gid mount options as '0' 998c2ecf20Sopenharmony_ci would result in the filesystem using the on-disk uid and gid. [WD] 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ci* Added mount option to control debug printing. 1028c2ecf20Sopenharmony_ci The option is, simply enough, 'debug'. 1038c2ecf20Sopenharmony_ci (super.c, debug.c) [WD] 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ci* Removed notion of btree handle from btree.c. It was unnecessary, as the 1068c2ecf20Sopenharmony_ci linux VFS doesn't allow us to keep any state between calls. Updated 1078c2ecf20Sopenharmony_ci dir.c, namei.c befs_fs.h to account for it. [WD] 1088c2ecf20Sopenharmony_ci 1098c2ecf20Sopenharmony_ci* Improved handleing of overflow nodes when listing directories. 1108c2ecf20Sopenharmony_ci Now works for overflow nodes hanging off of nodes other than the root 1118c2ecf20Sopenharmony_ci node. This is the cleaner solution to Brent Miszalaski's problem. [WD] 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ci* Added new debug/warning/error print functions in debug.c. 1148c2ecf20Sopenharmony_ci More flexible. Will soon be controllable at mount time 1158c2ecf20Sopenharmony_ci (see TODO). [WD] 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_ci* Rewrote datastream position lookups. 1188c2ecf20Sopenharmony_ci (datastream.c) [WD] 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci* Moved the TODO list to its own file. 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ciVersion 0.50 (2001-11-13) 1248c2ecf20Sopenharmony_ci========== 1258c2ecf20Sopenharmony_ci* Added workaround for mis-understanding of the nature of the b+trees used 1268c2ecf20Sopenharmony_ci in directories. A cleaner solution will come after I've thought about it 1278c2ecf20Sopenharmony_ci for a while. Thanks to Brent Miszalaski for finding and reporting this bug. 1288c2ecf20Sopenharmony_ci (btree.c) [WD] 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_ci* Minor cleanups 1318c2ecf20Sopenharmony_ci 1328c2ecf20Sopenharmony_ci* Added test for "impossible" condition of empty internal nodes in 1338c2ecf20Sopenharmony_ci seekleaf() in btree.c [WD] 1348c2ecf20Sopenharmony_ci 1358c2ecf20Sopenharmony_ci* Implemented the abstracted read_block() in io.c [WD] 1368c2ecf20Sopenharmony_ci 1378c2ecf20Sopenharmony_ci* Cleaned up the inode validation in inode.c [WD] 1388c2ecf20Sopenharmony_ci 1398c2ecf20Sopenharmony_ci* Anton Altaparmakov figured out (by asking Linus :) ) what was causing the 1408c2ecf20Sopenharmony_ci hanging disk io problem. It turns out you need to have the sync_pages 1418c2ecf20Sopenharmony_ci callback defined in your address_space_ops, even if it just uses the 1428c2ecf20Sopenharmony_ci default linux-supplied implementation. Fixed. Works now. 1438c2ecf20Sopenharmony_ci (file.c) [WD] 1448c2ecf20Sopenharmony_ci 1458c2ecf20Sopenharmony_ci* Anton Altaparmakov and Christoph Hellwig alerted me to the fact that 1468c2ecf20Sopenharmony_ci filesystem code should be using GFP_NOFS instead of GFP_KERNEL as the 1478c2ecf20Sopenharmony_ci priority parameter to kmalloc(). Fixed. 1488c2ecf20Sopenharmony_ci (datastream.c, btree.c super.c inode.c) [WD] 1498c2ecf20Sopenharmony_ci 1508c2ecf20Sopenharmony_ci* Anton also told me that the blocksize is not allowed to be larger than 1518c2ecf20Sopenharmony_ci the page size in linux, which is 4k i386. Oops. Added a test for 1528c2ecf20Sopenharmony_ci (blocksize > PAGE_SIZE), and refuse to mount in that case. What this 1538c2ecf20Sopenharmony_ci practically means is that 8k blocksize volumes won't work without a major 1548c2ecf20Sopenharmony_ci restructuring of the driver (or an alpha or other 64bit hardware). [WD] 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_ci* Cleaned up the befs_count_blocks() function. Much smarter now. 1578c2ecf20Sopenharmony_ci And somewhat smaller too. [WD] 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ci* Made inode allocations use a slab cache 1608c2ecf20Sopenharmony_ci (super.c inode.c) [WD] 1618c2ecf20Sopenharmony_ci 1628c2ecf20Sopenharmony_ci* Moved the freeing of the private inode section from put_inode() to 1638c2ecf20Sopenharmony_ci clear_inode(). This fixes a potential free twice type bug. Put_inode() 1648c2ecf20Sopenharmony_ci can be called multiple times for each inode struct. [WD] 1658c2ecf20Sopenharmony_ci 1668c2ecf20Sopenharmony_ci* Converted all non vfs-callback functions to use befs_sb_info as the 1678c2ecf20Sopenharmony_ci superblock type, rather than struct super_block. This is for 1688c2ecf20Sopenharmony_ci portablity. [WD] 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_ci* Fixed a couple of compile warnings due to use of malloc.h, when slab.h 1718c2ecf20Sopenharmony_ci is the new way. (inode.c, super.c) [WD] 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_ci* Fixed erronous includes of linux/befs_fs_i.h and linux/befs_fs_sb.h 1748c2ecf20Sopenharmony_ci in inode.c [WD] 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ciVersion 0.45 (2001-10-29) 1778c2ecf20Sopenharmony_ci========== 1788c2ecf20Sopenharmony_ci* Added functions to get the private superblock and inode structures from 1798c2ecf20Sopenharmony_ci their enclosing public structures. Switched all references to the 1808c2ecf20Sopenharmony_ci private portions to use them. (many files) [WD] 1818c2ecf20Sopenharmony_ci 1828c2ecf20Sopenharmony_ci* Made read_super and read_inode allocate the private portions of those 1838c2ecf20Sopenharmony_ci structures into the generic pointer fields of the public structures 1848c2ecf20Sopenharmony_ci with kmalloc(). put_super and put_inode free them. This allows us not 1858c2ecf20Sopenharmony_ci to have to touch the definitions of the public structures in 1868c2ecf20Sopenharmony_ci include/linux/fs.h. Also, befs_inode_info is huge (because of the 1878c2ecf20Sopenharmony_ci symlink string). (super.c, inode.c, befs_fs.h) [WD] 1888c2ecf20Sopenharmony_ci 1898c2ecf20Sopenharmony_ci* Fixed a thinko that was corrupting file reads after the first block_run 1908c2ecf20Sopenharmony_ci is done being read. (datastream.c) [WD] 1918c2ecf20Sopenharmony_ci 1928c2ecf20Sopenharmony_ci* Removed fsync() hooks, since a read-only filesystem doesn't need them. 1938c2ecf20Sopenharmony_ci [Christoph Hellwig]. 1948c2ecf20Sopenharmony_ci 1958c2ecf20Sopenharmony_ci* Fixed befs_readlink() (symlink.c) [Christoph Hellwig]. 1968c2ecf20Sopenharmony_ci 1978c2ecf20Sopenharmony_ci* Removed all the Read-Write stuff. I'll redo it when it is time to add 1988c2ecf20Sopenharmony_ci write support (various files) [WD]. 1998c2ecf20Sopenharmony_ci 2008c2ecf20Sopenharmony_ci* Removed prototypes for functions who's definitions have been removed 2018c2ecf20Sopenharmony_ci (befs_fs.h) [WD]. 2028c2ecf20Sopenharmony_ci 2038c2ecf20Sopenharmony_ci 2048c2ecf20Sopenharmony_ciVersion 0.4 (2001-10-28) 2058c2ecf20Sopenharmony_ci========== 2068c2ecf20Sopenharmony_ci* Made it an option to use the old non-pagecache befs_file_read() for 2078c2ecf20Sopenharmony_ci testing purposes. (fs/Config.in) 2088c2ecf20Sopenharmony_ci 2098c2ecf20Sopenharmony_ci* Fixed unused variable warnings when compiling without debugging. 2108c2ecf20Sopenharmony_ci 2118c2ecf20Sopenharmony_ci* Fixed a bug where the inode and super_block didn't get their blockbits 2128c2ecf20Sopenharmony_ci fields set (inode.c and super.c). 2138c2ecf20Sopenharmony_ci 2148c2ecf20Sopenharmony_ci* Release patch version 11. AKA befs-driver version 0.4. 2158c2ecf20Sopenharmony_ci 2168c2ecf20Sopenharmony_ci* Thats right. New versioning scheme. 2178c2ecf20Sopenharmony_ci I've done some serious testing on it now (on my box anyhow), and it 2188c2ecf20Sopenharmony_ci seems stable and not outragously slow. Existing features are more-or-less 2198c2ecf20Sopenharmony_ci correct (see TODO list). But it isn't 1.0 yet. I think 0.4 gives me some 2208c2ecf20Sopenharmony_ci headroom before the big 1.0. 2218c2ecf20Sopenharmony_ci 2228c2ecf20Sopenharmony_ci 2238c2ecf20Sopenharmony_ci2001-10-26 2248c2ecf20Sopenharmony_ci========== 2258c2ecf20Sopenharmony_ci* Fixed date format in this file. Was I smoking crack? 2268c2ecf20Sopenharmony_ci 2278c2ecf20Sopenharmony_ci* Removed old datastream code from file.c, since it is nolonger used. 2288c2ecf20Sopenharmony_ci 2298c2ecf20Sopenharmony_ci* Generic_read_file() is now used to read regular file data. 2308c2ecf20Sopenharmony_ci It doesn't chew up the buffer cache (it does page io instead), and seems 2318c2ecf20Sopenharmony_ci to be about as fast (even though it has to look up each file block 2328c2ecf20Sopenharmony_ci indivdualy). And it knows about doing readahead, which is a major plus. 2338c2ecf20Sopenharmony_ci So it does i/o in much larger chunks. It is the correct linux way. It 2348c2ecf20Sopenharmony_ci uses befs_get_block() by way of befs_readpage() to find the disk offsets 2358c2ecf20Sopenharmony_ci of blocks, which in turn calls befs_fpos2brun() in datastream.c to do 2368c2ecf20Sopenharmony_ci the hard work of finding the disk block number. 2378c2ecf20Sopenharmony_ci 2388c2ecf20Sopenharmony_ci* Changed method of checking for a dirty filesystem in befs_read_super 2398c2ecf20Sopenharmony_ci (super.c). Now we check to see if log_start and log_end differ. If so, 2408c2ecf20Sopenharmony_ci the journal needs to be replayed, and the filesystem cannot be mounted. 2418c2ecf20Sopenharmony_ci 2428c2ecf20Sopenharmony_ci* Fixed an extra instance of MOD_DEC_USE_COUNT in super.c 2438c2ecf20Sopenharmony_ci 2448c2ecf20Sopenharmony_ci* Fixed a problem with reading the superblock on devices with large sector 2458c2ecf20Sopenharmony_ci sizes (such as cdroms) on linux 2.4.10 and up. 2468c2ecf20Sopenharmony_ci 2478c2ecf20Sopenharmony_ci2001-10-24 2488c2ecf20Sopenharmony_ci========== 2498c2ecf20Sopenharmony_ci* Fix nasty bug in converting block numbers to struct befs_inode_addr. 2508c2ecf20Sopenharmony_ci Subtle, because the old version was only sometimes wrong. 2518c2ecf20Sopenharmony_ci Probably responsible for lots of problems. (inode.c) 2528c2ecf20Sopenharmony_ci 2538c2ecf20Sopenharmony_ci* Fix bug with reading an empty directory. (btree.c and dir.c) 2548c2ecf20Sopenharmony_ci 2558c2ecf20Sopenharmony_ci* This one looks good. Release patch version 10 2568c2ecf20Sopenharmony_ci 2578c2ecf20Sopenharmony_ci2001-10-23 2588c2ecf20Sopenharmony_ci========== 2598c2ecf20Sopenharmony_ci* Added btree searching function. 2608c2ecf20Sopenharmony_ci 2618c2ecf20Sopenharmony_ci* Use befs_btree_find in befs_lookup (namei.c) 2628c2ecf20Sopenharmony_ci 2638c2ecf20Sopenharmony_ci* Additional comments in btree.c 2648c2ecf20Sopenharmony_ci 2658c2ecf20Sopenharmony_ci2001-10-22 2668c2ecf20Sopenharmony_ci========== 2678c2ecf20Sopenharmony_ci* Added B+tree reading functions (in btree.c). 2688c2ecf20Sopenharmony_ci Made befs_readdir() use them them instead of the cruft in index.c. 2698c2ecf20Sopenharmony_ci 2708c2ecf20Sopenharmony_ci2001-09-11 2718c2ecf20Sopenharmony_ci========== 2728c2ecf20Sopenharmony_ci* Converted befs_read_file() to use the new datastream code. 2738c2ecf20Sopenharmony_ci 2748c2ecf20Sopenharmony_ci* Finally updated the README file. 2758c2ecf20Sopenharmony_ci 2768c2ecf20Sopenharmony_ci* Added many comments. 2778c2ecf20Sopenharmony_ci 2788c2ecf20Sopenharmony_ci* Posted version 6 2798c2ecf20Sopenharmony_ci 2808c2ecf20Sopenharmony_ci* Removed byte-order conversion code. 2818c2ecf20Sopenharmony_ci I have no intention of supporting it, and it was very ugly. 2828c2ecf20Sopenharmony_ci Flow control with #ifdef (ugh). Maybe I'll redo it once 2838c2ecf20Sopenharmony_ci native byteorder works 100%. 2848c2ecf20Sopenharmony_ci 2858c2ecf20Sopenharmony_ci2001-09-10 2868c2ecf20Sopenharmony_ci========== 2878c2ecf20Sopenharmony_ci* Finished implementing read_datastream() 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ci* made befs_read_brun() more general 2908c2ecf20Sopenharmony_ci Supports an offset to start at and a max bytes to read 2918c2ecf20Sopenharmony_ci Added a wrapper function to give the old call 2928c2ecf20Sopenharmony_ci 2938c2ecf20Sopenharmony_ci2001-09-30 2948c2ecf20Sopenharmony_ci========== 2958c2ecf20Sopenharmony_ci* Discovered that the datastream handleing code in file.c is quite deficient 2968c2ecf20Sopenharmony_ci in several respects. For one thing, it doesn't deal with indirect blocks 2978c2ecf20Sopenharmony_ci 2988c2ecf20Sopenharmony_ci* Rewrote datastream handleing. 2998c2ecf20Sopenharmony_ci 3008c2ecf20Sopenharmony_ci* Created io.c, for io related functions. 3018c2ecf20Sopenharmony_ci Previously, the befs_bread() funtions lived in file.c 3028c2ecf20Sopenharmony_ci Created the befs_read_brun() function. 3038c2ecf20Sopenharmony_ci 3048c2ecf20Sopenharmony_ci 3058c2ecf20Sopenharmony_ci2001-09-07 3068c2ecf20Sopenharmony_ci========== 3078c2ecf20Sopenharmony_ci* Made a function to actually count the number of fs blocks used by a file. 3088c2ecf20Sopenharmony_ci And helper functions. 3098c2ecf20Sopenharmony_ci (fs/befs/inode.c) 3108c2ecf20Sopenharmony_ci 3118c2ecf20Sopenharmony_ci2001-09-05 3128c2ecf20Sopenharmony_ci========== 3138c2ecf20Sopenharmony_ci* Fixed a misunderstanding of the inode fields. 3148c2ecf20Sopenharmony_ci This fixed the problmem with wrong file sizes from du and others. 3158c2ecf20Sopenharmony_ci The i_blocks field of the inode struct is not the number of blocks for the 3168c2ecf20Sopenharmony_ci inode, it is the number of blocks for the file. Also, i_blksize is not 3178c2ecf20Sopenharmony_ci necessarily the size of the inode, although in practice it works out. 3188c2ecf20Sopenharmony_ci Changed to blocksize of filesystem. 3198c2ecf20Sopenharmony_ci (fs/befs/inode.c) 3208c2ecf20Sopenharmony_ci 3218c2ecf20Sopenharmony_ci* Permanently removed code that had been provisionally ifdefed out of befs_fs.h 3228c2ecf20Sopenharmony_ci 3238c2ecf20Sopenharmony_ci* Since we don't support access time, make that field zero, instead of 3248c2ecf20Sopenharmony_ci copying m_time. 3258c2ecf20Sopenharmony_ci (fs/befs/inode.c) 3268c2ecf20Sopenharmony_ci 3278c2ecf20Sopenharmony_ci* Added sanity check for inode reading 3288c2ecf20Sopenharmony_ci Make sure inode we got was the one we asked for. 3298c2ecf20Sopenharmony_ci (fs/befs/inode.c) 3308c2ecf20Sopenharmony_ci 3318c2ecf20Sopenharmony_ci* Code cleanup 3328c2ecf20Sopenharmony_ci Local pointers to commonly used structures in inode.c. 3338c2ecf20Sopenharmony_ci Got rid of abominations befs_iaddr2inode() and befs_inode2ino(). 3348c2ecf20Sopenharmony_ci Replaced with single function iaddr2blockno(). 3358c2ecf20Sopenharmony_ci (fs/befs/super.c) (fs/befs/inode.c) 3368c2ecf20Sopenharmony_ci 3378c2ecf20Sopenharmony_ci2001-09-01 3388c2ecf20Sopenharmony_ci========== 3398c2ecf20Sopenharmony_ci* Fixed the problem with statfs where it would always claim the disk was 3408c2ecf20Sopenharmony_ci half full, due to improper understanding of the statfs fields. 3418c2ecf20Sopenharmony_ci (fs/befs/super.c) 3428c2ecf20Sopenharmony_ci 3438c2ecf20Sopenharmony_ci* Posted verion 4 of the patch 3448c2ecf20Sopenharmony_ci 3458c2ecf20Sopenharmony_ci2001-09-01 3468c2ecf20Sopenharmony_ci========== 3478c2ecf20Sopenharmony_ci* Changed the macros in befs_fs.h to inline functions. 3488c2ecf20Sopenharmony_ci More readable. Typesafe. Better 3498c2ecf20Sopenharmony_ci (include/linux/befs_fs.h) 3508c2ecf20Sopenharmony_ci 3518c2ecf20Sopenharmony_ci* Moved type definitions from befs_fs.h to a new file, befs_fs_types.h 3528c2ecf20Sopenharmony_ci Because befs_fs_i.h and befs_fs_sb.h were including befs_fs.h for the 3538c2ecf20Sopenharmony_ci typedefs, and they are inlcuded in <linux/fs.h>, which has definitions 3548c2ecf20Sopenharmony_ci that I want the inline functions in befs_fs.h to be able to see. Nasty 3558c2ecf20Sopenharmony_ci circularity. 3568c2ecf20Sopenharmony_ci (include/linux/befs_fs.h) 3578c2ecf20Sopenharmony_ci 3588c2ecf20Sopenharmony_ci2001-08-30 3598c2ecf20Sopenharmony_ci========== 3608c2ecf20Sopenharmony_ci* Cleaned up some wording. 3618c2ecf20Sopenharmony_ci 3628c2ecf20Sopenharmony_ci* Added additional consitency checks on mount 3638c2ecf20Sopenharmony_ci Check block_size agrees with block_shift 3648c2ecf20Sopenharmony_ci Check flags == BEFS_CLEAN 3658c2ecf20Sopenharmony_ci (fs/befs/super.c) 3668c2ecf20Sopenharmony_ci 3678c2ecf20Sopenharmony_ci* Tell the kernel to only mount befs read-only. 3688c2ecf20Sopenharmony_ci By setting the SB_RDONLY flag in befs_read_super(). 3698c2ecf20Sopenharmony_ci Not that it was possible to write before. But now the kernel won't even try. 3708c2ecf20Sopenharmony_ci (fs/befs/super.c) 3718c2ecf20Sopenharmony_ci 3728c2ecf20Sopenharmony_ci* Got rid of kernel warning on mount. 3738c2ecf20Sopenharmony_ci The kernel doesn't like it if you call set_blocksize() on a device when 3748c2ecf20Sopenharmony_ci you have some of its blocks open. Moved the second set_blocksize() to the 3758c2ecf20Sopenharmony_ci very end of befs_read_super(), after we are done with the disk superblock. 3768c2ecf20Sopenharmony_ci (fs/befs/super.c) 3778c2ecf20Sopenharmony_ci 3788c2ecf20Sopenharmony_ci* Fixed wrong number of args bug in befs_dump_inode 3798c2ecf20Sopenharmony_ci (fs/befs/debug.c) 3808c2ecf20Sopenharmony_ci 3818c2ecf20Sopenharmony_ci* Solved lots of type mismatches in kprint()s 3828c2ecf20Sopenharmony_ci (everwhere) 3838c2ecf20Sopenharmony_ci 3848c2ecf20Sopenharmony_ci2001-08-27 3858c2ecf20Sopenharmony_ci========== 3868c2ecf20Sopenharmony_ci* Cleaned up the fs/Config.in entries a bit, now slightly more descriptive. 3878c2ecf20Sopenharmony_ci 3888c2ecf20Sopenharmony_ci* BeFS depends on NLS, so I made activating BeFS enable the NLS questions 3898c2ecf20Sopenharmony_ci (fs/nls/Config.in) 3908c2ecf20Sopenharmony_ci 3918c2ecf20Sopenharmony_ci* Added Configure.help entries for CONFIG_BEFS_FS and CONFIG_DEBUG_BEFS 3928c2ecf20Sopenharmony_ci (currently at fs/befs/Kconfig) 3938c2ecf20Sopenharmony_ci 3948c2ecf20Sopenharmony_ci2001-08-?? 3958c2ecf20Sopenharmony_ci========== 3968c2ecf20Sopenharmony_ci* Removed superblock locking calls in befs_read_super(). In 2.4, the VFS 3978c2ecf20Sopenharmony_ci hands us a super_block struct that is already locked. 3988c2ecf20Sopenharmony_ci 3998c2ecf20Sopenharmony_ci2001-08-13 4008c2ecf20Sopenharmony_ci========== 4018c2ecf20Sopenharmony_ci* Will Dyson <will_dyson@pobox.com> is now attempting to maintain this module 4028c2ecf20Sopenharmony_ci Makoto Kato <m_kato@ga2.so-net.ne.jp> is original author.Daniel Berlin 4038c2ecf20Sopenharmony_ci also did some work on it (fixing it up for the later 2.3.x kernels, IIRC). 4048c2ecf20Sopenharmony_ci 4058c2ecf20Sopenharmony_ci* Fixed compile errors on 2.4.1 kernel (WD) 4068c2ecf20Sopenharmony_ci Resolve rejected patches 4078c2ecf20Sopenharmony_ci Accommodate changed NLS interface (util.h) 4088c2ecf20Sopenharmony_ci Needed to include <linux/slab.h> in most files 4098c2ecf20Sopenharmony_ci Makefile changes 4108c2ecf20Sopenharmony_ci fs/Config.in changes 4118c2ecf20Sopenharmony_ci 4128c2ecf20Sopenharmony_ci* Tried to niceify the code using the ext2 fs as a guide 4138c2ecf20Sopenharmony_ci Declare befs_fs_type using the DECLARE_FSTYPE_DEV() macro 4148c2ecf20Sopenharmony_ci 4158c2ecf20Sopenharmony_ci* Made it a configure option to turn on debugging (fs/Config.in) 4168c2ecf20Sopenharmony_ci 4178c2ecf20Sopenharmony_ci* Compiles on 2.4.7 418