Wikis > JFS

Journaled File System Installable File System Driver


Please read the ReadMe before installing and using this software.

Known Problems

Transaction log defect

Due to a defect in version 1.09.05 and earlier, there is a slight possibility that corrupted file system integrity might exist on some JFS volumes. This defect was corrected in version 1.09.06, but simply upgrading to version 1.09.06 or later will not resolve this file system integrity issue. You must do a full chkdsk (chkdsk /f from the command line) on all JFS volumes to clean up any abnormalities after upgrading to version 1.09.06 or later. Otherwise you could see problems in the future.

IPE when an empty directory is encountered during boot

During the initial basedev loading portion of the boot process, an IPE can occur if an empty directory is searched for a required file. This defect was corrected in version 1.09.08. However the installer in version 1.09.08 only installed the driver files, but did not also update the os2boot on an existing JFS boot volume. This means that any newly created boot volumes would have the fix, but existing volumes would not. Version 1.09.09 and later will automatically update an existing os2boot in addition to installing the driver files. This defect only affects the initial boot phase and does not affect a booted running system.

Cache read-ahead hang

The Cache Read-Ahead Hang occurs when the requested read size for a DosRead is greater than the cache size, and the remaining file data to read is greater than the cache size, and there is already at least one block of file data in the cache. The read-ahead algorithm will attempt to read-ahead more blocks than will fit in the cache and will hang. This can happen in a number of ways, but the most common way is to open the file twice and attempt to read more than the cache size in a single operation. For the default cache size, this size is about a 64 MB file. If the JFS cache size was changed by the /CACHE: option then the size required to produce the hang will vary according to the cache size specified. The cache read-ahead hang will not occur if there are no blocks from the file already in the cache. For example if the file is only opened once and immediately read. The hang also will not happen if the read size is less than the cache size, regardless of cache content, and regardless of the file size. This defect was corrected in version 1.09.09.

Crash recovery

The JFS file system is a robust file system that maintains a transaction log during normal operations. This allows for a very quick recovery after a normal system crash by redoing the last transactions that may have been lost during the crash.  The log redo operation is normally the first step of a full check disk operation, but during a normal system startup after a crash, by default the system only runs log redo. If the log redo is successful the rest of the check disk operations are skipped. The log redo simply re-executes any disk operations that were lost when the system crashed. It does not perform any kind of file system consistency check. It simply returns the file system to the state it was before the crash. The log redo cannot and does not find and correct file system corruptions that may already exist in the file system. If the file system was corrupt before the file system was used, then it will remain corrupt after the log redo.

For most normal use situations, this log redo operation is sufficient to recover from ordinary system crashes. It is quick and safe. However, after particularly serious crashes, especially those involving file system issues, you should probably run a full chkdsk (chkdsk /f) on the affected volume. Developers and other users who crash their systems often or for abnormal reasons should use the “+” modifier for the /AUTOCHECK parameter to catch file system corruptions early before they compound and become uncorrectable.

Submitting Tickets

Reporting bugs and requesting new features is done through the ticket system. You can view existing tickets, add comments to them and create new tickets using the corresponding buttons at the top of every page. If you want to submit a new bug or request a feature, please use the Search function first to make sure there is no ticket for the same problem already created.

This entry last updated: by David Azarewicz