ChangeLog 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417
  1. Version 0.92 (2002-03-29)
  2. ==========
  3. * Minor cleanup. Ran Lindent on the sources.
  4. Version 0.92 (2002-03-27)
  5. ==========
  6. * Fixed module makefile problem. It was not compiling all the correct
  7. source files!
  8. * Removed duplicated function definition
  9. * Fixed potential null pointer dereference when reporting an error
  10. Version 0.91 (2002-03-26)
  11. ==========
  12. * Oy! Fixed stupid bug that would cause an unresolved symbol error.
  13. Thanks to Laszlo Boszormenyi for pointing this out to me.
  14. Version 0.9 (2002-03-14)
  15. ==========
  16. * Added Sergey S. Kostyliov's patch to eliminate memcpy() overhead
  17. from b+tree operations. Changes the befs_read_datastream() interface.
  18. * Segregated the functions that interface directly with the linux vfs
  19. interface into their own file called linuxvfs.c. [WD]
  20. Version 0.64 (2002-02-07)
  21. ==========
  22. * Did the string comparision really right this time (btree.c) [WD]
  23. * Fixed up some places where I assumed that a long int could hold
  24. a pointer value. (btree.c) [WD]
  25. * Andrew Farnham <andrewfarnham@uq.net.au> pointed out that the module
  26. wouldn't work on older (<2.4.10) kernels due to an unresolved symbol.
  27. This is bad, since 2.4.9 is still the current RedHat kernel. I added
  28. a workaround for this problem (compatibility.h) [WD]
  29. * Sergey S. Kostyliov made befs_find_key() use a binary search to find
  30. keys within btree nodes, rather than the linear search we were using
  31. before. (btree.c) [Sergey S. Kostyliov <rathamahata@php4.ru>]
  32. * Made a debian package of the source for use with kernel-package. [WD]
  33. Version 0.63 (2002-01-31)
  34. ==========
  35. * Fixed bug in befs_find_brun_indirect() that would result in the wrong
  36. block being read. It was introduced when adding byteswapping in
  37. 0.61. (datastream.c) [WD]
  38. * Fixed a longstanding bug in befs_find_key() that would result in it
  39. finding the first key that is a substring of the string it is searching
  40. for. For example, this would cause files in the same directory with
  41. names like file1 and file2 to mysteriously be duplicates of each other
  42. (because they have the same inode number). Many thanks to Pavel Roskin
  43. for reporting this serious bug!!!
  44. (btree.c) [WD]
  45. * Added support for long symlinks, after Axel Dorfler explained up how
  46. they work. I had forgotten all about them. (inode.c, symlink.c) [WD]
  47. * Documentation improvements in source. [WD]
  48. * Makefile fix for independent module when CONFIG_MODVERSION is set in
  49. kernel config [Pavel Roskin <proski@gnu.org>]
  50. * Compile warning fix for namei.c. [Sergey S. Kostyliov <rathamahata@php4.ru>]
  51. Version 0.62
  52. ==========
  53. * Fixed makefile for module install [WD]
  54. Version 0.61 (2002-01-20)
  55. ==========
  56. * Made functions in endian.h to do the correct byteswapping, no matter
  57. the arch. [WD]
  58. * Abbandoned silly checks for a NULL superblock pointer in debug.c. [WD]
  59. * Misc code cleanups. Also cleanup of this changelog file. [WD]
  60. * Added byteswapping to all metadata reads from disk.
  61. Uses the functions from endian.h [WD]
  62. * Remove the typedef of struct super_block to vfs_sb, as it offended
  63. certain peoples' aesthetic sense. [WD]
  64. * Ditto with the befs_read_block() interface. [WD]
  65. Version 0.6 (2001-12-15)
  66. ==========
  67. * Cleanup of NLS functions (util.c) [WD]
  68. * Make directory lookup/read use the NLS if an iocharset is provided. [WD]
  69. * Fixed stupid bug where specifying the uid or gid mount options as '0'
  70. would result in the filesystem using the on-disk uid and gid. [WD]
  71. * Added mount option to control debug printing.
  72. The option is, simply enough, 'debug'.
  73. (super.c, debug.c) [WD]
  74. * Removed notion of btree handle from btree.c. It was unnecessary, as the
  75. linux VFS doesn't allow us to keep any state between calls. Updated
  76. dir.c, namei.c befs_fs.h to account for it. [WD]
  77. * Improved handleing of overflow nodes when listing directories.
  78. Now works for overflow nodes hanging off of nodes other than the root
  79. node. This is the cleaner solution to Brent Miszalaski's problem. [WD]
  80. * Added new debug/warning/error print functions in debug.c.
  81. More flexible. Will soon be controllable at mount time
  82. (see TODO). [WD]
  83. * Rewrote datastream positon lookups.
  84. (datastream.c) [WD]
  85. * Moved the TODO list to its own file.
  86. Version 0.50 (2001-11-13)
  87. ==========
  88. * Added workaround for mis-understanding of the nature of the b+trees used
  89. in directories. A cleaner solution will come after I've thought about it
  90. for a while. Thanks to Brent Miszalaski for finding and reporting this bug.
  91. (btree.c) [WD]
  92. * Minor cleanups
  93. * Added test for "impossible" condition of empty internal nodes in
  94. seekleaf() in btree.c [WD]
  95. * Implemented the abstracted read_block() in io.c [WD]
  96. * Cleaned up the inode validation in inode.c [WD]
  97. * Anton Altaparmakov figured out (by asking Linus :) ) what was causing the
  98. hanging disk io problem. It turns out you need to have the sync_pages
  99. callback defined in your address_space_ops, even if it just uses the
  100. default linux-supplied implementation. Fixed. Works now.
  101. (file.c) [WD]
  102. * Anton Altaparmakov and Christoph Hellwig alerted me to the fact that
  103. filesystem code should be using GFP_NOFS instead of GFP_KERNEL as the
  104. priority parameter to kmalloc(). Fixed.
  105. (datastream.c, btree.c super.c inode.c) [WD]
  106. * Anton also told me that the blocksize is not allowed to be larger than
  107. the page size in linux, which is 4k i386. Oops. Added a test for
  108. (blocksize > PAGE_SIZE), and refuse to mount in that case. What this
  109. practicaly means is that 8k blocksize volumes won't work without a major
  110. restructuring of the driver (or an alpha or other 64bit hardware). [WD]
  111. * Cleaned up the befs_count_blocks() function. Much smarter now.
  112. And somewhat smaller too. [WD]
  113. * Made inode allocations use a slab cache
  114. (super.c inode.c) [WD]
  115. * Moved the freeing of the private inode section from put_inode() to
  116. clear_inode(). This fixes a potential free twice type bug. Put_inode()
  117. can be called multiple times for each inode struct. [WD]
  118. * Converted all non vfs-callback functions to use befs_sb_info as the
  119. superblock type, rather than struct super_block. This is for
  120. portablity. [WD]
  121. * Fixed a couple of compile warnings due to use of malloc.h, when slab.h
  122. is the new way. (inode.c, super.c) [WD]
  123. * Fixed erronous includes of linux/befs_fs_i.h and linux/befs_fs_sb.h
  124. in inode.c [WD]
  125. Version 0.45 (2001-10-29)
  126. ==========
  127. * Added functions to get the private superblock and inode structures from
  128. their enclosing public structures. Switched all references to the
  129. private portions to use them. (many files) [WD]
  130. * Made read_super and read_inode allocate the private portions of those
  131. structures into the generic pointer fields of the public structures
  132. with kmalloc(). put_super and put_inode free them. This allows us not
  133. to have to touch the definitions of the public structures in
  134. include/linux/fs.h. Also, befs_inode_info is huge (becuase of the
  135. symlink string). (super.c, inode.c, befs_fs.h) [WD]
  136. * Fixed a thinko that was corrupting file reads after the first block_run
  137. is done being read. (datastream.c) [WD]
  138. * Removed fsync() hooks, since a read-only filesystem doesn't need them.
  139. [Christoph Hellwig].
  140. * Fixed befs_readlink() (symlink.c) [Christoph Hellwig].
  141. * Removed all the Read-Write stuff. I'll redo it when it is time to add
  142. write support (various files) [WD].
  143. * Removed prototypes for functions who's definitions have been removed
  144. (befs_fs.h) [WD].
  145. Version 0.4 (2001-10-28)
  146. ==========
  147. * Made it an option to use the old non-pagecache befs_file_read() for
  148. testing purposes. (fs/Config.in)
  149. * Fixed unused variable warnings when compiling without debugging.
  150. * Fixed a bug where the inode and super_block didn't get their blockbits
  151. fields set (inode.c and super.c).
  152. * Release patch version 11. AKA befs-driver version 0.4.
  153. * Thats right. New versioning scheme.
  154. I've done some serious testing on it now (on my box anyhow), and it
  155. seems stable and not outragously slow. Existing features are more-or-less
  156. correct (see TODO list). But it isn't 1.0 yet. I think 0.4 gives me some
  157. headroom before the big 1.0.
  158. 2001-10-26
  159. ==========
  160. * Fixed date format in this file. Was I smoking crack?
  161. * Removed old datastream code from file.c, since it is nolonger used.
  162. * Generic_read_file() is now used to read regular file data.
  163. It doesn't chew up the buffer cache (it does page io instead), and seems
  164. to be about as fast (even though it has to look up each file block
  165. indivdualy). And it knows about doing readahead, which is a major plus.
  166. So it does i/o in much larger chunks. It is the correct linux way. It
  167. uses befs_get_block() by way of befs_readpage() to find the disk offsets
  168. of blocks, which in turn calls befs_fpos2brun() in datastream.c to do
  169. the hard work of finding the disk block number.
  170. * Changed method of checking for a dirty filesystem in befs_read_super
  171. (super.c). Now we check to see if log_start and log_end differ. If so,
  172. the journal needs to be replayed, and the filesystem cannot be mounted.
  173. * Fixed an extra instance of MOD_DEC_USE_COUNT in super.c
  174. * Fixed a problem with reading the superblock on devices with large sector
  175. sizes (such as cdroms) on linux 2.4.10 and up.
  176. 2001-10-24
  177. ==========
  178. * Fix nasty bug in converting block numbers to struct befs_inode_addr.
  179. Subtle, because the old version was only sometimes wrong.
  180. Probably responsible for lots of problems. (inode.c)
  181. * Fix bug with reading an empty directory. (btree.c and dir.c)
  182. * This one looks good. Release patch version 10
  183. 2001-10-23
  184. ==========
  185. * Added btree searching function.
  186. * Use befs_btree_find in befs_lookup (namei.c)
  187. * Additional comments in btree.c
  188. 2001-10-22
  189. ==========
  190. * Added B+tree reading functions (in btree.c).
  191. Made befs_readdir() use them them instead of the cruft in index.c.
  192. 2001-09-11
  193. ==========
  194. * Converted befs_read_file() to use the new datastream code.
  195. * Finally updated the README file.
  196. * Added many comments.
  197. * Posted version 6
  198. * Removed byte-order conversion code.
  199. I have no intention of supporting it, and it was very ugly.
  200. Flow control with #ifdef (ugh). Maybe I'll redo it once
  201. native byteorder works 100%.
  202. 2001-09-10
  203. ==========
  204. * Finished implementing read_datastream()
  205. * made befs_read_brun() more general
  206. Supports an offset to start at and a max bytes to read
  207. Added a wrapper function to give the old call
  208. 2001-09-30
  209. ==========
  210. * Discovered that the datastream handleing code in file.c is quite deficient
  211. in several respects. For one thing, it doesn't deal with indirect blocks
  212. * Rewrote datastream handleing.
  213. * Created io.c, for io related functions.
  214. Previously, the befs_bread() funtions lived in file.c
  215. Created the befs_read_brun() function.
  216. 2001-09-07
  217. ==========
  218. * Made a function to actually count the number of fs blocks used by a file.
  219. And helper functions.
  220. (fs/befs/inode.c)
  221. 2001-09-05
  222. ==========
  223. * Fixed a misunderstanding of the inode fields.
  224. This fixed the problmem with wrong file sizes from du and others.
  225. The i_blocks field of the inode struct is not the number of blocks for the
  226. inode, it is the number of blocks for the file. Also, i_blksize is not
  227. necessarily the size of the inode, although in practice it works out.
  228. Changed to blocksize of filesystem.
  229. (fs/befs/inode.c)
  230. * Permanently removed code that had been provisionally ifdefed out of befs_fs.h
  231. * Since we don't support access time, make that field zero, instead of
  232. copying m_time.
  233. (fs/befs/inode.c)
  234. * Added sanity check for inode reading
  235. Make sure inode we got was the one we asked for.
  236. (fs/befs/inode.c)
  237. * Code cleanup
  238. Local pointers to commonly used structures in inode.c.
  239. Got rid of abominations befs_iaddr2inode() and befs_inode2ino().
  240. Replaced with single function iaddr2blockno().
  241. (fs/befs/super.c) (fs/befs/inode.c)
  242. 2001-09-01
  243. ==========
  244. * Fixed the problem with statfs where it would always claim the disk was
  245. half full, due to improper understanding of the statfs fields.
  246. (fs/befs/super.c)
  247. * Posted verion 4 of the patch
  248. 2001-09-01
  249. ==========
  250. * Changed the macros in befs_fs.h to inline functions.
  251. More readable. Typesafe. Better
  252. (include/linux/befs_fs.h)
  253. * Moved type definitions from befs_fs.h to a new file, befs_fs_types.h
  254. Because befs_fs_i.h and befs_fs_sb.h were including befs_fs.h for the
  255. typedefs, and they are inlcuded in <linux/fs.h>, which has definitions
  256. that I want the inline functions in befs_fs.h to be able to see. Nasty
  257. circularity.
  258. (include/linux/befs_fs.h)
  259. 2001-08-30
  260. ==========
  261. * Cleaned up some wording.
  262. * Added additional consitency checks on mount
  263. Check block_size agrees with block_shift
  264. Check flags == BEFS_CLEAN
  265. (fs/befs/super.c)
  266. * Tell the kernel to only mount befs read-only.
  267. By setting the MS_RDONLY flag in befs_read_super().
  268. Not that it was possible to write before. But now the kernel won't even try.
  269. (fs/befs/super.c)
  270. * Got rid of kernel warning on mount.
  271. The kernel doesn't like it if you call set_blocksize() on a device when
  272. you have some of its blocks open. Moved the second set_blocksize() to the
  273. very end of befs_read_super(), after we are done with the disk superblock.
  274. (fs/befs/super.c)
  275. * Fixed wrong number of args bug in befs_dump_inode
  276. (fs/befs/debug.c)
  277. * Solved lots of type mismatches in kprint()s
  278. (everwhere)
  279. 2001-08-27
  280. ==========
  281. * Cleaned up the fs/Config.in entries a bit, now slightly more descriptive.
  282. * BeFS depends on NLS, so I made activating BeFS enable the NLS questions
  283. (fs/nls/Config.in)
  284. * Added Configure.help entries for CONFIG_BEFS_FS and CONFIG_DEBUG_BEFS
  285. (Documentation/Configure.help)
  286. 2001-08-??
  287. ==========
  288. * Removed superblock locking calls in befs_read_super(). In 2.4, the VFS
  289. hands us a super_block struct that is already locked.
  290. 2001-08-13
  291. ==========
  292. * Will Dyson <will_dyson@pobox.com> is now attempting to maintain this module
  293. Makoto Kato <m_kato@ga2.so-net.ne.jp> is original author.Daniel Berlin
  294. also did some work on it (fixing it up for the later 2.3.x kernels, IIRC).
  295. * Fixed compile errors on 2.4.1 kernel (WD)
  296. Resolve rejected patches
  297. Accomodate changed NLS interface (util.h)
  298. Needed to include <linux/slab.h> in most files
  299. Makefile changes
  300. fs/Config.in changes
  301. * Tried to niceify the code using the ext2 fs as a guide
  302. Declare befs_fs_type using the DECLARE_FSTYPE_DEV() macro
  303. * Made it a configure option to turn on debugging (fs/Config.in)
  304. * Compiles on 2.4.7