.* .* $Header: D:/ext2-os2/doc/RCS/changes.im,v 1.2 1995/08/17 09:44:14 Willm Exp Willm $ .* .* Linux ext2 file system driver for OS/2 2.x and WARP - Allows OS/2 to .* access your Linux ext2fs partitions as normal drive letters. .* OS/2 implementation : Copyright (C) 1995 Matthieu WILLM .* .* This program is free software; you can redistribute it and/or modify .* it under the terms of the GNU General Public License as published by .* the Free Software Foundation; either version 2 of the License, or .* (at your option) any later version. .* .* This program is distributed in the hope that it will be useful, .* but WITHOUT ANY WARRANTY; without even the implied warranty of .* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .* GNU General Public License for more details. .* .* You should have received a copy of the GNU General Public License .* along with this program; if not, write to the Free Software .* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. .******************************************************************************* .*** VII - History of changes *** .******************************************************************************* .nameit symbol=titre_700 text='History of changes' .nameit symbol=titre_701 text='From 0.1 to 0.2' .nameit symbol=titre_702 text='From 0.2 to 0.3' .nameit symbol=titre_703 text='From 0.3 to 0.4' :h1.&titre_700. :p. This chapter describes the changes between each release of ext2-os2 :ol compact. :li.:link reftype=hd refid=701.&titre_701.:elink. :li.:link reftype=hd refid=702.&titre_702.:elink. :li.:link reftype=hd refid=703.&titre_703.:elink. :eol. :h2 id=701.&titre_701. :ul compact. :li.DOS sessions can now access ext2fs partitions. WinOS2 sessions can also, but they crash randomly and I couldn't figure out why yet ! :li.The per volume disk cache size is now user configurable from 64 Kb to 60 * 64 Kb. However it is not evident that a huge disk cache will improve performance significantly : the cache lookup algorithm is still primitive (single LRU list). :li.Sources are now included :li.FS_FINDFIRST, FS_FINDNEXT and FS_FINDFROMNAME now use the same lookup routine :li.The directory entry cache is now implemented (identical to the Linux one) :li.readdir() now uses the original ext2_readdir() routine instead of a quick (and somewhat dirty) rewrite :li.FS_FSINFO now returns a 'true' volume serial number instead of garbage. This volume serial number is a CRC checksum of sector 0. :li.FS_MOUNT now checks for a previous instance of the volume to be mounted, instead of remounting blindly a previously mounted volume. :li.FS_MOUNT with MOUNT_RELEASE flag now closes the volume and frees memory :li.brelse() no longer produces a system halt (trap D) when receiving a NULL buffer : it now ignores it like its Linux counterpart :li.Direct access opens (OPEN_FLAGS_DASD) are now supported in both read only and readwrite modes :li.Write capabilities added : :ul compact. :li.FS_MKDIR and FS_RMDIR implemented :li.FS_SHUTDOWN implemented :li.FS_OPENCREATE in writeonly and readwrite mode implemented :li.FS_WRITE implemented :li.FS_DELETE implemented :eul. :li.FS_CLOSE now calls ext2_release_file() when the last instance of a file is closed :li."-cache&colon.<disk cache size>" Command line parameters added to set the per volume disk cache size :li."-q" command line parameter added (quiet initialisation) :li."-rw" command line parameter added (write access allowed) :li.The memory I-node management routines (iput() iget() ...) are now a port of their Linux counterparts instead of a rewrite. :li.Linux scheduling and semaphore management routines (sleep_on(), wake_up() down() up() ...) have been rewritten using ProcBlock/ProcRun device helpers instead of FSH_SEMxxx : now their behaviour should be identical to their Linux counterparts. :li.The mount process is now almost identical as in ext2fs. :li.When OS/2 mounts a ext2fs partition, it sets the mount count to the maximum to force Linux to autocheck ext2fs partitions "touched" by OS/2. :li.Buffer head structures now *NEVER* reach segment boundaries : this avoids TREMENDOUS problems with some ext2fs routines (ext2_add_entry() ...) which do some pointer arithmetics which simply don't work in a 16&colon.16 memory model. :eul. :h2 id=702.&titre_702. :ul compact. :li.There is now a translation from Linux error codes (those in linux/errno.h) to &OS2. error codes (bseerr.h). Now for instance, cmd.exe says "Directory not empty" instead of "Cannot find message 65503". This translation currently occurs in FS_READ, FS_WRITE, FS_RMDIR , FS_DELETE, FS_MOVE and FS_MKDIR. :li.FS_COPY() is now supported (in fact emulated by the &OS2. kernel). It was just a matter of returning ERROR_CANNOT_COPY from FS_COPY() - this makes the kernel emulate the copy operation - instead of ERROR_NOT_SUPPORTED. This applies only to copy operations inside or between &EXT2FS. partitions. :li.Some cleanup in the code, by removing much direct ext2fs call and replacing them by Linux VFS style calls (inode->i_op->read() for instance instead of ext2_file_read()). This would ease te work of people trying to port other Linux file systems to OS/2. :li.FS_MOVE is now implemented. :li.Corrected a bug in FS_DevHelp_ProcBlock : register di was not preserved across the call, causing some random trap D. :li.Corrected a bug in read_inode when in DASD mode (OPEN_FLAGS_DASD) : some I-node fields are now properly initialized ; This was preventing FS_READ to work on a direct access handle (inode->i_mode was 0 and FS_READ reported "not a regular file"). :li.Suppressed strict locking of buffers : now buffers can be used more than once, conforming to Linux buffers (no more mutex in getblk and brelse), some ext2fs routines do rely on it (ext2_rename) ... ext2-os2 on OS/2 for SMP is not for tomorrow !! :li.Added -no_auto_fsck command line switch to disable the forced e2fsck when Linux mounts a partition "touched" by OS/2. :li.Added code to close remaining open files at shutdown. Normally they shouldn't be any, but the WPS lets some pending search handles (DosFindxxx) ; this could result in file system corruption (a search handle on a directory later deleted for instance : the deletion is not committed until all references to the directory are closed). :li.Synchronous files (OPEN_FLAGS_WRITE_THROUGH and OPEN_FLAGS_NO_CACHE) should be now handled correctly. :eul. :h2 id=703.&titre_703. :ul compact. :li.Corrected a bug in FS_MOUNT that caused a system halt (trap D) when loading the WinOS2 file manager and ext2-os2 not being the last IFS statement in CONFIG.SYS :li.Corrected a bug in FS_CLOSE that caused some random file system corruption : ext2_release_file() was not correctly called. :li.Now FS_OPENCREATE opens only regular files, as it seems to be the default &OS2. behaviour. (FS_OPENCREATE no longer opens directories). :li.Added the -trace option to ext2-os2.exe : ext2d.exe is no longer necessary. :li.Now ext2-os2.exe correctly ends conversation with the IFS when being closed. :li.ext2flt has been upgraded from V1.2 to V1.2b :li.During shutdown the flush mechanism could be disturbed if other activity (lw daemon ...) was taking place (resulting in potential file and/or file system corruption). This has been corrected. :li.The famous random trap D at CS&colon.EIP=<any cs>&colon.142e occuring at boot time should now be corrected ... It was in fact a trap occuring inside the Microsoft Visual C++ runtime library, only under retail OS/2 kernel (no trap at all under kernel debugger !). After having taken 5 or 6 system dumps I realized it was because somewhere an INT 21h call was issued inside the vsprintf() routine. I changed vsprintf() for the Linux kernel one. :eul.