Metropoli BBS
VIEWER: changes.im MODE: TEXT (ASCII)
.*
.* $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.


[ RETURN TO DIRECTORY ]