Linux Today: Linux News On Internet Time.
Search Linux Today
Linux News Sections:  Developer -  High Performance -  Infrastructure -  IT Management -  Security -  Storage -
Linux Today Navigation
LT Home
Contribute
Contribute
Link to Us
Linux Jobs


More on LinuxToday


JFS for Linux Beta 3 released

Apr 30, 2001, 20:30 (9 Talkback[s])

westdb2 writes:

IBM has posted the newest beta version of their enterprise filesystem, JFS For Linux. Probably not ready for the data center yet but getting there fast.

IBM's Journaled File System (JFS) for Linux beta 3 version 0.3.0
Team members
Steve Best       sbest@us.ibm.com
Dave Kleikamp    shaggy@us.ibm.com  
Ben Rafanello    benr@us.ibm.com
Barry Arndt      barndt@us.ibm.com


Release April 30, 2001 beta 3 (version 0.3.0)

This is our thirtieth release of IBM's Enterprise JFS technology port to Linux.
Beta 1 was release 0.1.0 on 12/8/2000, Beta 2 was release 0.2.0 on 3/7/2001 and
Beta 3 was release 0.3.0 on 4/30/2001.
  
The first drop on February 2, 2000 (jfs-0.0.1.tar.gz) had the following 
functionality (enough to allow other developers to evaluate and potentially 
contribute to this project):

 - MKFS functional and able to format an existing or newly created partition for JFS.
 - mount/unmount functional
 - able to view the self(.) and parent (..) directories entries. 

The second drop on February 28, 2000 (jfs-0.0.2.tar.gz) had fixes for MKFS and the 
following utilities logredo, xchkdmp, xpeek are functional. 
The file system was able
to mkdir, create files and directories were working (and rm, rmdir). 

The third drop on March 24, 2000 (jfs-0.0.3.tar.gz) provided read and write capability 
for the file system. Also, support for hard and soft links are functional.  

The fourth drop on March 29,2000 (jfs-0.0.4.tar.gz) provided rename capability for 
the file system and fixes for write problems. 

The fifth drop on April 6, 2000 (jfs-0.0.5.tar.gz) provided mknod capability for the 
file system. 
                                                              
The sixth drop on April 21, 2000 (jfs-0.0.6.tar.gz) provided fixes for the file system
and utilities.

The seventh drop on May 11, 2000 (jfs-0.0.7.tar.gz) provided changes to the file system
to be able to work on the development kernel 2.3.99-pre6. Drop 7 contains fixes for the
file system to be built within the kernel. 

The eighth drop on June 20, 2000 (jfs-0.0.8.tar.gz) provided fixes for the file system 
and changes to the file system to be able to work on the development kernel 2.4.0-test1-ac21.
In the utility area: fsck and logdump are functional.

The ninth drop on July 13, 2000 (jfs-0.0.9.tar.gz) has the meta-data of the file system 
using the page cache. In the utility area: fixes for fsck.jfs and xpeek are included.

The tenth drop on August 11, 2000  provided fixes for the file system
and changes to the file system to be able to work on the development kernel 2.4.0-test5.
In the utility area: fixes for fsck.jfs are included. The utility portion of extendfs has
been ported (still need to port the file system portion for extendfs). Man pages have
been written for the utilities. The compiler warnings have been removed from all of the
utilities.

The eleventh drop on September 1, 2000  provided fixes for the file system
and changes to the file system to be able to work on the development kernel 2.4.0-test7.
The utility portion of defrag has been ported (still need to port the file system portion
for defrag). 

The twelfth drop on September 15, 2000 (jfs-0.0.12.tar.gz) provided the Transaction
Manager Log I/O routines.

The thirteenth drop on September 29, 2000 (jfs-0.0.13.tar.gz) provided case-sensitive
support. In the utility area: fsck.jfs has the support for block/character special files.
Note: The JFS partition must be formatted/reformatted using mkfs.jfs created by drop 13 
for case-sensitive to work.

The fourteenth drop on October 4, 2000 (jfs-0.0.14.tar.gz) included a fix to the file
system for not mounting a JFS partition if the size of the partition is > 4G on 2.2.x
series of the kernel.

The fifteenth drop on October 9, 2000 (jfs-0.0.15.tar.gz) included the Transaction
Manager routines (Initialize, Begin, Locks, End). The file system has fixes and
changes to the file system to be able to work on the development kernel 2.4.0-test9.
The utility xchklog has been ported.

The sixteenth drop on October 27, 2000 (jfs-0.0.16.tar.gz) included the Transaction
Manager routines (Commit, Buffer Management, Abort). The file system and utilities
have fixes included. 

The seventeenth drop on November 10, 2000 (jfs-0.0.17.tar.gz) has the transaction
sub operations back into the file system operations. The file system is now journaling
appropriate file system operations. The file system is temporary doing synchronous logging
(which slows down operations that are logged) to make sure that the transaction processing
is right. Asynchronous logging will be added shortly. The file system has fixes and changes 
to the file system to be able to work on the development kernel 2.4.0-test10.

The eighteenth drop on November 15, 2000 (jfs-0.0.18.tar.gz) included fixes to the file
system.

The nineteenth drop on December 4, 2000 (jfs-0.0.19.tar.gz) is now doing asynchronous
logging. The file system has fixes and changes to the file system to be able to work
on the development kernel 2.4.0-test11. 

The twentieth drop on December 8, 2000 (jfs-0.1.0.tar.gz beta) included fixes to the file
system.

The twenty-first drop on December 14, 2000 (jfs-0.1.1.tar.gz) included a fsck fix
to handle sparse files correctly. The file system has fixes and changes to the file
system to be able to work on the development kernel 2.4.0-test12 and 2.2.18 kernel.

The twenty-second drop on January 5, 2001 (jfs-0.1.2.tar.gz) included fixes to the 
file system. The file system has changes to able to work on the 2.4.0 kernel.

The twenty-third drop on January 12, 2001 (jfs-0.1.3.tar.gz) included fixes to the
file system. Fsck now supports fifo correctly.

The twenty-fourth drop on January 26, 2001 (jfs-0.1.4.tar.gz) included fixes to the
file system. The new feature in the file system is "Lazy Commit" which increases
performance while going asynchronous logging. The main makefile for the utilities
now has an install option. 

The twenty-fifth drop on February 7, 2001 (jfs-0.1.5.tar.gz) included fixes to the
file system. 

The twenty-sixth drop on February 26, 2001 (jfs-0.1.6.tar.gz) included fixes to the
file system. The log manager no longer uses the page cache for log pages, this 
eliminates dead-locks that were occurring in the log manager. The file system has
general work done to remove SMP dead-lock problems. Fsck now supports default values
passed by fstab correctly.

The twenty-seventh drop on March 07, 2001 (beta 2) (jfs-0.2.0.tar.gz) included fixes to the
file system. This drop contains jfsprogs.spec that can be used to create RPM for the
JFS utilities. The file system has general work done to remove SMP and UP hang related problems.
The file system performance has been increased by changes to extent inode cache. 

 
The twenty-eighth drop on March 21, 2001 (jfs-0.2.1.tar.gz) included fixes to the
file system.  The file system has been changed to use standard types. 


The twenty-ninth drop on April 02, 2001 (jfs-0.2.2.tar.gz) included fixes to the
file system.  The utilities have been changed to use standard types.

The thirtieth drop on April 30, 2001 (jfs-0.3.0.tar.gz) includes fixes to the 
file system. The rest of the utilities have been changed to use standard types.
Both the file system and the utilities have been changed to use endian macros,
so that JFS will now store the meta-data as little endian when running on all
architectures, with this change you must re-formatted all of the JFS partitions
using the new mkfs.jfs included in this drop, if you are running on a big-endian system.

Drop 30 has the temporary restriction that the block size must be 4K. MKFS.jfs defaults
the block size to 4K.
JFS has a common source tree that can be built on 2.2.16 - 2.2.19 and 2.4.0 - 2.4.3.

We will continue with the port and make incremental drops as we have more function 
working. 

There is a anonymous cvs access available for the JFS tree. The steps below are
what is needed to pull the JFS cvs tree from the oss.software.ibm.com server.

id anoncvs
password anoncvs

CVSROOT should be set to :pserver:anoncvs@oss.software.ibm.com:/usr/cvs/jfs
cvs checkout linux-2.2.12


The reference source code is available in the fs/jfs/ref and fs/jfs/ref_utils sub 
directories. The header files for the reference source code are available in the
include/linux/jfs/ref. The reference source code is now available in the jfsref.tar.gz
file. The code included in the define statement, #ifdef _STILL_TO_PORT, indicates 
the source has not been ported yet.

The following files in the kernel source tree have been changed so JFS can be built.
The source tar ball now contains each of the files below with the extension of the 
kernel level it is associated with. As an example, there are now three Config.in files
named Config.in-2.2.16, Config.in-2.2.18 and Config.in-2.4.0. 
If you use the tar ball to build JFS you must rename each of the kernel files to the 
file names listed below. The standard kernel from www.kernel.org is the source of the 
kernel files that are included in the jfs tar files. 

In sub dir fs Config.in, Makefile, filesystem.c
In sub dir fs/nls Config.in
In sub dir arch/i386 defconfig
In sub dir Documentation Configure.help
In sub dir Documentation/filesystems 00-INDEX
In sub dir include/linux fs.h
In sub dir linux MAINTAINERS
In sub dir linux/kernel/ksyms.c

Please backup the above files before the JFS patch file is added to the kernel source 
tree. There are three new header files in the sub dir include/linux named jfs_fs.h,
jfs_fs_i.h,and jfs_fs_sb.h. All other JFS files are located in the include/linux/jfs
or fs/jfs sub dirs.

Our development team has used the Linux kernel levels 2.2.16-2.2.19 and 
2.4.0 - 2.4.3 kernels with gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) 
for our port so far. A goal of the JFS team is to have JFS run on all architectures
that Linux supports, there is no architecture specific code in JFS. JFS has been run
on the following architectures (x86, PowerPC, Alpha, s/390, ARM) so far. 

To make JFS build, during the "make config" step of building the kernel answer y to
the Prompt for development and/or incomplete code/drivers in the Code maturity level
options section. In the Filesystems section use the m for the answer to 
JFS filesystem support (experimental) (CONFIG_JFS_FS) [Y/m/n?]

Note: If you are use JFS on the 2.2.x series of the kernel you must rebuild the kernel
and run that rebuilt kernel for JFS to build/run. The reason for this change is that
JFS needs to export symbols. 

Build in /usr/src/linux with the command:


make modules
make modules_install

If you rebuild jfs.o after having mounted and unmounted a partition, "modprobe -r jfs" 
will unload the old module.

For the file system debugging messages are being written to /var/log/messages.

To use the jfsprogs.spec located in sub dir linux/fs/jfs/utils/SPECS you need to update
the version of JFS in the spec file, also the corresponding jfs-x.x.x-patch.tar.gz file
must be in the SOURCES directory of your system. Now it's time to begin the build. First,
change into the directory holding jfsprogs.spec file:

cd /usr/src/linux/fs/jfs/SPECS

Next, start the build with a rpm -b command:

rpm -ba jfsprogs.spec

The a following the -b option directs RPM to perform all phases of the build process.


The second way to build the utilities for JFS (mkfs, xpeek, logredo, xchkdmp, fsck, logdump, xchklog). 

Build in /usr/src/linux/fs/jfs/utils with the command:

make
make install

One of results of this build is a program called mkfs.jfs. 
To format a JFS partition use the following command.

     mkfs -t jfs device-name

will result in the specified device being formatted.



******************************************************************************************
**                                                                                      **
********** Like all new file systems please only use this code on a test system. *********
**                                                                                      **
**                                                                                      **
******************************************************************************************


If you used any previous release of JFS, please format your JFS partition with the new 
mkfs.jfs.


JFS today:

  
- Utilities:
  Function in drop 1
   - MKFS.JFS builds on 2.2.12
   - MKFS successfully formats a new partition for JFS
   
  Function and Fixes in drop 2
   - MKFS supports all parameters now
   - MKFS has fixes from release pre-alpha 0.0.1
          mkfs.jfs results in segmentation fault if no arguments are specified
          mkfs.jfs hangs on invocation
    
   - XPEEK, utility to PEEK and POKE JFS on-disk data/structures
   
  Function and Fixes in drop 5
   - MKFS.jfs has a fix to support -l option correctly. 
   
  Function and Fixes in drop 6
   - libfs has compiler warning fixes and a bug fix 
   
  Function in drop 8
   - fsck.jfs successfully checks and repairs a jfs partition
   - logdump, utility that dumps the contents of the journal log. 
   
  Function and Fixes in drop 9
IBM's Journaled File System (JFS) for Linux beta 3 version 0.3.0
Team members
Steve Best       sbest@us.ibm.com
Dave Kleikamp    shaggy@us.ibm.com  
Ben Rafanello    benr@us.ibm.com
Barry Arndt      barndt@us.ibm.com


Release April 30, 2001 beta 3 (version 0.3.0)

This is our thirtieth release of IBM's Enterprise JFS technology port to Linux.
Beta 1 was release 0.1.0 on 12/8/2000, Beta 2 was release 0.2.0 on 3/7/2001 and
Beta 3 was release 0.3.0 on 4/30/2001.
  
The first drop on February 2, 2000 (jfs-0.0.1.tar.gz) had the following 
functionality (enough to allow other developers to evaluate and potentially 
contribute to this project):

 - MKFS functional and able to format an existing or newly created partition for JFS.
 - mount/unmount functional
 - able to view the self(.) and parent (..) directories entries. 

The second drop on February 28, 2000 (jfs-0.0.2.tar.gz) had fixes for MKFS and the 
following utilities logredo, xchkdmp, xpeek are functional. The file system was able
to mkdir, create files and directories were working (and rm, rmdir). 

The third drop on March 24, 2000 (jfs-0.0.3.tar.gz) provided read and write capability 
for the file system. Also, support for hard and soft links are functional.  

The fourth drop on March 29,2000 (jfs-0.0.4.tar.gz) provided rename capability for 
the file system and fixes for write problems. 

The fifth drop on April 6, 2000 (jfs-0.0.5.tar.gz) provided mknod capability for the 
file system. 
                                                              
The sixth drop on April 21, 2000 (jfs-0.0.6.tar.gz) provided fixes for the file system
and utilities.

The seventh drop on May 11, 2000 (jfs-0.0.7.tar.gz) provided changes to the file system
to be able to work on the development kernel 2.3.99-pre6. Drop 7 contains fixes for the
file system to be built within the kernel. 

The eighth drop on June 20, 2000 (jfs-0.0.8.tar.gz) provided fixes for the file system 
and changes to the file system to be able to work on the development kernel 2.4.0-test1-ac21.
In the utility area: fsck and logdump are functional.

The ninth drop on July 13, 2000 (jfs-0.0.9.tar.gz) has the meta-data of the file system 
using the page cache. In the utility area: fixes for fsck.jfs and xpeek are included.

The tenth drop on August 11, 2000  provided fixes for the file system
and changes to the file system to be able to work on the development kernel 2.4.0-test5.
In the utility area: fixes for fsck.jfs are included. The utility portion of extendfs has
been ported (still need to port the file system portion for extendfs). Man pages have
been written for the utilities. The compiler warnings have been removed from all of the
utilities.

The eleventh drop on September 1, 2000  provided fixes for the file system
and changes to the file system to be able to work on the development kernel 2.4.0-test7.
The utility portion of defrag has been ported (still need to port the file system portion
for defrag). 

The twelfth drop on September 15, 2000 (jfs-0.0.12.tar.gz) provided the Transaction
Manager Log I/O routines.

The thirteenth drop on September 29, 2000 (jfs-0.0.13.tar.gz) provided case-sensitive
support. In the utility area: fsck.jfs has the support for block/character special files.
Note: The JFS partition must be formatted/reformatted using mkfs.jfs created by drop 13 
for case-sensitive to work.

The fourteenth drop on October 4, 2000 (jfs-0.0.14.tar.gz) included a fix to the file
system for not mounting a JFS partition if the size of the partition is > 4G on 2.2.x
series of the kernel.

The fifteenth drop on October 9, 2000 (jfs-0.0.15.tar.gz) included the Transaction
Manager routines (Initialize, Begin, Locks, End). The file system has fixes and
changes to the file system to be able to work on the development kernel 2.4.0-test9.
The utility xchklog has been ported.

The sixteenth drop on October 27, 2000 (jfs-0.0.16.tar.gz) included the Transaction
Manager routines (Commit, Buffer Management, Abort). The file system and utilities
have fixes included. 

The seventeenth drop on November 10, 2000 (jfs-0.0.17.tar.gz) has the transaction
sub operations back into the file system operations. The file system is now journaling
appropriate file system operations. The file system is temporary doing synchronous logging
(which slows down operations that are logged) to make sure that the transaction processing
is right. Asynchronous logging will be added shortly. The file system has fixes and changes 
to the file system to be able to work on the development kernel 2.4.0-test10.

The eighteenth drop on November 15, 2000 (jfs-0.0.18.tar.gz) included fixes to the file
system.

The nineteenth drop on December 4, 2000 (jfs-0.0.19.tar.gz) is now doing asynchronous
logging. The file system has fixes and changes to the file system to be able to work
on the development kernel 2.4.0-test11. 

The twentieth drop on December 8, 2000 (jfs-0.1.0.tar.gz beta) included fixes to the file
system.

The twenty-first drop on December 14, 2000 (jfs-0.1.1.tar.gz) included a fsck fix
to handle sparse files correctly. The file system has fixes and changes to the file
system to be able to work on the development kernel 2.4.0-test12 and 2.2.18 kernel.

The twenty-second drop on January 5, 2001 (jfs-0.1.2.tar.gz) included fixes to the 
file system. The file system has changes to able to work on the 2.4.0 kernel.

The twenty-third drop on January 12, 2001 (jfs-0.1.3.tar.gz) included fixes to the
file system. Fsck now supports fifo correctly.

The twenty-fourth drop on January 26, 2001 (jfs-0.1.4.tar.gz) included fixes to the
file system. The new feature in the file system is "Lazy Commit" which increases
performance while going asynchronous logging. The main makefile for the utilities
now has an install option. 

The twenty-fifth drop on February 7, 2001 (jfs-0.1.5.tar.gz) included fixes to the
file system. 

The twenty-sixth drop on February 26, 2001 (jfs-0.1.6.tar.gz) included fixes to the
file system. The log manager no longer uses the page cache for log pages, this 
eliminates dead-locks that were occurring in the log manager. The file system has
general work done to remove SMP dead-lock problems. Fsck now supports default values
passed by fstab correctly.

The twenty-seventh drop on March 07, 2001 (beta 2) (jfs-0.2.0.tar.gz) included fixes to the
file system. This drop contains jfsprogs.spec that can be used to create RPM for the
JFS utilities. The file system has general work done to remove SMP and UP hang related problems.
The file system performance has been increased by changes to extent inode cache. 

 
The twenty-eighth drop on March 21, 2001 (jfs-0.2.1.tar.gz) included fixes to the
file system.  The file system has been changed to use standard types. 


The twenty-ninth drop on April 02, 2001 (jfs-0.2.2.tar.gz) included fixes to the
file system.  The utilities have been changed to use standard types.

The thirtieth drop on April 30, 2001 (jfs-0.3.0.tar.gz) includes fixes to the 
file system. The rest of the utilities have been changed to use standard types.
Both the file system and the utilities have been changed to use endian macros,
so that JFS will now store the meta-data as little endian when running on all
architectures, with this change you must re-formatted all of the JFS partitions
using the new mkfs.jfs included in this drop, if you are running on a big-endian system.

Drop 30 has the temporary restriction that the block size must be 4K. MKFS.jfs defaults
the block size to 4K.
JFS has a common source tree that can be built on 2.2.16 - 2.2.19 and 2.4.0 - 2.4.3.

We will continue with the port and make incremental drops as we have more function 
working. 

There is a anonymous cvs access available for the JFS tree. The steps below are
what is needed to pull the JFS cvs tree from the oss.software.ibm.com server.

id anoncvs
password anoncvs

CVSROOT should be set to :pserver:anoncvs@oss.software.ibm.com:/usr/cvs/jfs
cvs checkout linux-2.2.12


The reference source code is available in the fs/jfs/ref and fs/jfs/ref_utils sub 
directories. The header files for the reference source code are available in the
include/linux/jfs/ref. The reference source code is now available in the jfsref.tar.gz
file. The code included in the define statement, #ifdef _STILL_TO_PORT, indicates 
the source has not been ported yet.

The following files in the kernel source tree have been changed so JFS can be built.
The source tar ball now contains each of the files below with the extension of the 
kernel level it is associated with. As an example, there are now three Config.in files
named Config.in-2.2.16, Config.in-2.2.18 and Config.in-2.4.0. 
If you use the tar ball to build JFS you must rename each of the kernel files to the 
file names listed below. The standard kernel from www.kernel.org is the source of the 
kernel files that are included in the jfs tar files. 

In sub dir fs Config.in, Makefile, filesystem.c
In sub dir fs/nls Config.in
In sub dir arch/i386 defconfig
In sub dir Documentation Configure.help
In sub dir Documentation/filesystems 00-INDEX
In sub dir include/linux fs.h
In sub dir linux MAINTAINERS
In sub dir linux/kernel/ksyms.c

Please backup the above files before the JFS patch file is added to the kernel source 
tree. There are three new header files in the sub dir include/linux named jfs_fs.h,
jfs_fs_i.h,and jfs_fs_sb.h. All other JFS files are located in the include/linux/jfs
or fs/jfs sub dirs.

Our development team has used the Linux kernel levels 2.2.16-2.2.19 and 
2.4.0 - 2.4.3 kernels with gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) 
for our port so far. A goal of the JFS team is to have JFS run on all architectures
that Linux supports, there is no architecture specific code in JFS. JFS has been run
on the following architectures (x86, PowerPC, Alpha, s/390, ARM) so far. 

To make JFS build, during the "make config" step of building the kernel answer y to
the Prompt for development and/or incomplete code/drivers in the Code maturity level
options section. In the Filesystems section use the m for the answer to 
JFS filesystem support (experimental) (CONFIG_JFS_FS) [Y/m/n?]

Note: If you are use JFS on the 2.2.x series of the kernel you must rebuild the kernel
and run that rebuilt kernel for JFS to build/run. The reason for this change is that
JFS needs to export symbols. 

Build in /usr/src/linux with the command:


make modules
make modules_install

If you rebuild jfs.o after having mounted and unmounted a partition, "modprobe -r jfs" 
will unload the old module.

For the file system debugging messages are being written to /var/log/messages.

To use the jfsprogs.spec located in sub dir linux/fs/jfs/utils/SPECS you need to update
the version of JFS in the spec file, also the corresponding jfs-x.x.x-patch.tar.gz file
must be in the SOURCES directory of your system. Now it's time to begin the build. First,
change into the directory holding jfsprogs.spec file:

cd /usr/src/linux/fs/jfs/SPECS

Next, start the build with a rpm -b command:

rpm -ba jfsprogs.spec

The a following the -b option directs RPM to perform all phases of the build process.


The second way to build the utilities for JFS (mkfs, xpeek, logredo, xchkdmp, fsck, logdump, xchklog). 

Build in /usr/src/linux/fs/jfs/utils with the command:

make
make install

One of results of this build is a program called mkfs.jfs. 
To format a JFS partition use the following command.

     mkfs -t jfs device-name

will result in the specified device being formatted.



******************************************************************************************
**                                                                                      **
********** Like all new file systems please only use this code on a test system. *********
**                                                                                      **
**                                                                                      **
******************************************************************************************


If you used any previous release of JFS, please format your JFS partition with the new 
mkfs.jfs.


JFS today:

  
- Utilities:
  Function in drop 1
   - MKFS.JFS builds on 2.2.12
   - MKFS successfully formats a new partition for JFS
   
  Function and Fixes in drop 2
   - MKFS supports all parameters now
   - MKFS has fixes from release pre-alpha 0.0.1
          mkfs.jfs results in segmentation fault if no arguments are specified
          mkfs.jfs hangs on invocation
    
   - XPEEK, utility to PEEK and POKE JFS on-disk data/structures
   
  Function and Fixes in drop 5
   - MKFS.jfs has a fix to support -l option correctly. 
   
  Function and Fixes in drop 6
   - libfs has compiler warning fixes and a bug fix 
   
  Function in drop 8
   - fsck.jfs successfully checks and repairs a jfs partition
   - logdump, utility that dumps the contents of the journal log. 
   
  Function and Fixes in drop 9
   - fixes for fsck.jfs and xpeek have been done. 

  Function and Fixes in drop 10
   - fixes for fsck.jfs 
   - man pages for utilities 
   - extendfs utility part has been ported (still need to port FS portion)
   - compiler warnings have been removed.
   
  Function and Fixes in drop 11
   - defrag utility part has been ported (still need to port FS portion)
   
  Function and Fixes in drop 13
   - fsck.jfs supports block special files and character special files (Jitterbug problem #28)
   
  Function and Fixes in drop 15
   - ported xchklog utility, extracts a log from fsck.
   
  Function and Fixes in drop 16
   - fixes for fsck.jfs to handle case-sensitive support correctly (Jitterbug problem #36)
   - cleanup changes for the utilities

  Function and Fixes in drop 18
   - cleanup changes for the utilities
   
  Function and Fixes in drop 21
   - fix in fsck to handle sparse files correctly
   
  Function and Fixes in drop 23
   - fix in fsck to handle fifo correctly
   
  Function and Fixes in drop 24
   - man pages updates for the utilities
   - install option for utilities
   
  Function and Fixes in drop 26
   - man page updates for fsck
   - fsck now supports default options passed by fstab correctly
    
  Function and Fixes in drop 27
   - new jfsprogs.spec file
   - fix in fsck for hard links
   - fix for unicode conversion problem
   
  Function and Fixes in drop 29
   - cleanup changes for the utilities   
   - Code cleanup to use standard types
   
  Function and Fixes in drop 30 
   - added endian macros support 
   - Code cleanup to use standard types (part 2)
   - mkfs now clears out the 1st 4k bytes of the partition
   
  
    
- JFS:
  Function in drop 1   
   - builds on 2.2.12 
   - successfully MOUNTs & UMOUNTs
   - limited READ capability (i.e. LS is operational)
   - other system commands (i.e. DF, CHOWN, CHMOD, etc. working limited)
   
  Function and Fixes in drop 2
     - Write capabilities are operational
      - MKDIR
      - CREATE file
      - RMDIR
      - RM
     - Problems fixed from release pre-alpha 0.0.1
       using 2.2.14 jfs_imap.c:3004: `event' undeclared (first use in this function)
      
  Function and Fixes in drop 3
   - WRITE a file
   - READ a file 
   - Support for hard and soft links
   
  Function and Fixes in drop 4
   - MV
   - Executables can now be started from a jfs partition
   - Problems while writing files have been fixed

  Function and Fixes in drop 5
   - added support for special files (mknod)
   - alpha changes have been included

  Function and Fixes in drop 6
   - Jitterbug problem 9 du output is incorrect on jfs
   - Jitterbug problem 11 unresolved symbol jfs_rwlock_lock on SMP build
   
  Function and Fixes in drop 7
   - moved JFS upto the 2.3.x development kernel (2.3.99-pre6)
   - Jitterbug problem 14 can't build JFS within the kernel 

  Function and Fixes in drop 8
   - moved JFS upto the 2.4.0 development kernel (2.4.0-test1-ac21)
   - Jitterbug problem 17 undefined: jfs_rdwrlock_lock
   - PowerPC build problem
 
  Function and Fixes in drop 9
   - moved JFS upto the 2.4.0 development kernel (2.4.0-test3)
   - moved meta-data from buffer cache to page cache
   - fixes for the file system are included
   
  Function and Fixes in drop 10
   - moved JFS upto the 2.4.0 development kernel (2.4.0-test5)
   - fixes for the file system are included 
   
  Function and Fixes in drop 11
   - moved JFS upto the 2.4.0 development kernel (2.4.0-test7)
   - fixes for the file system are included
   - start of journaling code has been included (jfs_txnmgr.h)
   - WIP of log manager (jfs_logmgr.c) 

  Function and Fixes in drop 12
   - Transaction Manager Log I/O -> Write log records is functional
   
  Function and Fixes in drop 13
   - case-sensitive support has been added
   
  Function and Fixes in drop 14
   - JFS mount error 22 is fixed (Jitterbug problem #30)

  Function and Fixes in drop 15
   - Following Transaction Manager routines are functional
            Initialize        -> Initialize transaction manager
            Begin             -> Start a transaction
            Locks             -> Acquire/release locks
            End               -> End a transaction
   - moved JFS upto the 2.4.0 development kernel (2.4.0-test9)
   - Fixed 2.2.x series block write problem.
   
  Function and Fixes in drop 16
   - Following Transaction Manager routines are functional
         Commit            -> Commit the transaction
         Buffer Management -> Update inode, directory, extent
         Abort             -> Stop the commit from occurring
   - File System build problem on 2.2.x series of the kernel (Jitterbug #35)
   - Fixed case-sensitive bug in the filesystem (Jitterbug #36)
   

  Function and Fixes in drop 17
   - Added transaction sub operations back into the file system operations.
   - The file system is now journaling appropriate file system operations.
   - moved JFS upto the 2.4.0 development kernel (2.4.0-test10)    
   
  Function and Fixes in drop 18
   - symlink fix
   - inode corruption problem
   
  Function and Fixes in drop 19
   - Added asynchronous logging support back into the file system.
   - moved JFS upto the 2.4.0 development kernel (2.4.0-test11) 
   - Fixes to transaction related hang problems.  

  Function and Fixes in drop 20
   - Fix to remove memory on module cleanup

  Function and Fixes in drop 21
   - Fix so fsck doesn't report the message 
     Secondary file/directory allocation structure(2) is not a correct redundant copy of primary structure.
   - Fix for setup of finish_aync_io
   - moved JFS upto the 2.4.0 development kernel (2.4.0-test12) 
   - moved JFS upto the 2.2.18 kernel 
          
  Function and Fixes in drop 22

   - moved JFS upto the 2.4.0 kernel
   - Fix to do transaction processing for mknod correctly
   - Fix for spinlock.h needed on 2.2.18 ppc
   
  Function and Fixes in drop 23
   - Fix for undefined BUG() in 2.2.x series
   - Fix for 2.2 kernels, struct pipe_inode_info overlays the file system dependent portion of the inode structure. 
    
  Function and Fixes in drop 24
   - rmmod jfs fix
   - Implemented "Lazy Commit" - asynchronous logging enhancement to increase performance
   - Removed ino_t from on-disk structures (fixes a mount problem) 

  Function and Fixes in drop 25  
   - Fix for deadlocks by putting IWRITE_LOCK/UNLOCK within jfs_delete_inode
   - Fix to handle removing a link to an inode that isn't the last link.
   - Fixes to general transaction processing SMP related hangs.

  Function and Fixes in drop 26  
   - Fix for file writes on 2.2.x series of the kernel 
   - Change to log pages, so they no longer use the page cache.
   - Fixes to general transaction processing SMP related dead-lock problems

  Function and Fixes in drop 27  
   - Report error on read_metapage failure in jfs_readlink
   - Report correct error in jfs_lookup if VFS fails to locate the inode
   - Fix for a buffer overrun problem in jfs_readlink when compiled for linux-2.2
   - Fix to support fsync call correctly (jitterbug #57)
   - Fixes to general SMP related dead-lock problems
   - Fix to define BUG() if 2.2 and !i386
   - Fixes to general UP related hangs
   - Changes to handling the inode extent cache increase the performance of the file system
   
  Function and Fixes in drop 28  
   - Added ifdef IS_KIOBUFIO so JFS will be if kiobufs is in the kernel. Kiobufs has changed
     the # of parameters for generic_make_request()
   - Make jfsFYI a module parameter
        insmod jfs.o jfsFYI=1 will turn on JFS FYI messages without having to recompile this 
        option is only supported on the 2.4.x kernel level.
   - Defines cleanup_module() in terms of exit_jfs_fs() 
   - Fix to jfs_read_super, if get_empty_inode returns NULL cleanup correctly
   - Code cleanup to use standard types
   

  Function and Fixes in drop 29  
   - Fix for assert(iagp->wmap[extno] & mask); (line #2875) in jfs_imap while running dbench
   - Fixed hang on scsi
   - added /proc/fs/jfs/jfsFYI (2.4.* kernels only)
                echo 1 > /proc/fs/jfs/jfsFYI  ; Turns on very verbose output to syslog
                echo 0 > /proc/fs/jfs/jfsFYI  ; Turns it back off

   Notes:
        - IMPORTANT:  If building jfs.o as a module on 2.2.* kernels, you will have to rebuild and 
          install the kernel to add wake_up_process to ksyms.c.  Not needed on 2.4.* kernels.
          
  Function and Fixes in drop 30 
   - Added endian macros support
   - Fixed dbench hang 
   - jfs fails SPEC SFS validation on both NFSv2/NFSv3, fix to not add null-terminator to the symlink
     value and accounting for it in the size.
   - Fixed a bug where a casting of a 32 bit block # wasn't correct when a 64 bit value is needed.
        xtLookup messages where display in the /var/log/messages (i.e of a message is below)  
        xtLookup: lstart (0x80000) >= size (0x80000) 
        
  Notes: release 0.3.0 requires a re-format of the JFS partition, if the system architecture is
         big-endian (i.e. s/390, PowerPC, etc.) 
         - Still seeing hangs on 2.2.* SMP kernels
 

   
   
JFS TODO list:

Plans for our near term development items

Drop 31
   - fix jitterbug 10 rm -rf fails on a big directory
   - Test booting from JFS partition
   - bug fixes
   
Drop 32
   - get defrag capabilities operational in the FS
   - get extendfs capabilities operational in the FS
   - test EXTENDFS utility, for growing JFS partitions
   - test defrag utility, calls file system to defrag the file system.
   - Test JFS with LVM
   - bug fixes
   
Drop 33 

   - add support for block sizes (512,1024,2048)
   - bug fixes
    
Longer term work items

   - Integrate with LVM
   - Integrate with SnapFS Snapshot file system
   - add support to shrink the file system
   - add support for logfile on dedicated partition
   - get access control list functionality operational
   - get extended attributes functionality operational
   - add quota support

    


Please send bugs, comments, cards and letters to linuxjfs@us.ibm.com.

The JFS mailing list can be subscribed to by using the link labeled "Mail list Subscribe"
at our web page http://oss.software.ibm.com/developerworks/opensource/jfs/.
   - fixes for fsck.jfs and xpeek have been done. 

  Function and Fixes in drop 10
   - fixes for fsck.jfs 
   - man pages for utilities 
   - extendfs utility part has been ported (still need to port FS portion)
   - compiler warnings have been removed.
   
  Function and Fixes in drop 11
   - defrag utility part has been ported (still need to port FS portion)
   
  Function and Fixes in drop 13
   - fsck.jfs supports block special files and character special files (Jitterbug problem #28)
   
  Function and Fixes in drop 15
   - ported xchklog utility, extracts a log from fsck.
   
  Function and Fixes in drop 16
   - fixes for fsck.jfs to handle case-sensitive support correctly (Jitterbug problem #36)
   - cleanup changes for the utilities

  Function and Fixes in drop 18
   - cleanup changes for the utilities
   
  Function and Fixes in drop 21
   - fix in fsck to handle sparse files correctly
   
  Function and Fixes in drop 23
   - fix in fsck to handle fifo correctly
   
  Function and Fixes in drop 24
   - man pages updates for the utilities
   - install option for utilities
   
  Function and Fixes in drop 26
   - man page updates for fsck
   - fsck now supports default options passed by fstab correctly
    
  Function and Fixes in drop 27
   - new jfsprogs.spec file
   - fix in fsck for hard links
   - fix for unicode conversion problem
   
  Function and Fixes in drop 29
   - cleanup changes for the utilities   
   - Code cleanup to use standard types
   
  Function and Fixes in drop 30 
   - added endian macros support 
   - Code cleanup to use standard types (part 2)
   - mkfs now clears out the 1st 4k bytes of the partition
   
  
    
- JFS:
  Function in drop 1   
   - builds on 2.2.12 
   - successfully MOUNTs & UMOUNTs
   - limited READ capability (i.e. LS is operational)
   - other system commands (i.e. DF, CHOWN, CHMOD, etc. working limited)
   
  Function and Fixes in drop 2
     - Write capabilities are operational
      - MKDIR
      - CREATE file
      - RMDIR
      - RM
     - Problems fixed from release pre-alpha 0.0.1
       using 2.2.14 jfs_imap.c:3004: `event' undeclared (first use in this function)
      
  Function and Fixes in drop 3
   - WRITE a file
   - READ a file 
   - Support for hard and soft links
   
  Function and Fixes in drop 4
   - MV
   - Executables can now be started from a jfs partition
   - Problems while writing files have been fixed

  Function and Fixes in drop 5
   - added support for special files (mknod)
   - alpha changes have been included

  Function and Fixes in drop 6
   - Jitterbug problem 9 du output is incorrect on jfs
   - Jitterbug problem 11 unresolved symbol jfs_rwlock_lock on SMP build
   
  Function and Fixes in drop 7
   - moved JFS upto the 2.3.x development kernel (2.3.99-pre6)
   - Jitterbug problem 14 can't build JFS within the kernel 

  Function and Fixes in drop 8
   - moved JFS upto the 2.4.0 development kernel (2.4.0-test1-ac21)
   - Jitterbug problem 17 undefined: jfs_rdwrlock_lock
   - PowerPC build problem
 
  Function and Fixes in drop 9
   - moved JFS upto the 2.4.0 development kernel (2.4.0-test3)
   - moved meta-data from buffer cache to page cache
   - fixes for the file system are included
   
  Function and Fixes in drop 10
   - moved JFS upto the 2.4.0 development kernel (2.4.0-test5)
   - fixes for the file system are included 
   
  Function and Fixes in drop 11
   - moved JFS upto the 2.4.0 development kernel (2.4.0-test7)
   - fixes for the file system are included
   - start of journaling code has been included (jfs_txnmgr.h)
   - WIP of log manager (jfs_logmgr.c) 

  Function and Fixes in drop 12
   - Transaction Manager Log I/O -> Write log records is functional
   
  Function and Fixes in drop 13
   - case-sensitive support has been added
   
  Function and Fixes in drop 14
   - JFS mount error 22 is fixed (Jitterbug problem #30)

  Function and Fixes in drop 15
   - Following Transaction Manager routines are functional
            Initialize        -> Initialize transaction manager
            Begin             -> Start a transaction
            Locks             -> Acquire/release locks
            End               -> End a transaction
   - moved JFS upto the 2.4.0 development kernel (2.4.0-test9)
   - Fixed 2.2.x series block write problem.
   
  Function and Fixes in drop 16
   - Following Transaction Manager routines are functional
         Commit            -> Commit the transaction
         Buffer Management -> Update inode, directory, extent
         Abort             -> Stop the commit from occurring
   - File System build problem on 2.2.x series of the kernel (Jitterbug #35)
   - Fixed case-sensitive bug in the filesystem (Jitterbug #36)
   

  Function and Fixes in drop 17
   - Added transaction sub operations back into the file system operations.
   - The file system is now journaling appropriate file system operations.
   - moved JFS upto the 2.4.0 development kernel (2.4.0-test10)    
   
  Function and Fixes in drop 18
   - symlink fix
   - inode corruption problem
   
  Function and Fixes in drop 19
   - Added asynchronous logging support back into the file system.
   - moved JFS upto the 2.4.0 development kernel (2.4.0-test11) 
   - Fixes to transaction related hang problems.  

  Function and Fixes in drop 20
   - Fix to remove memory on module cleanup

  Function and Fixes in drop 21
   - Fix so fsck doesn't report the message 
     Secondary file/directory allocation structure(2) is not a correct redundant copy of primary structure.
   - Fix for setup of finish_aync_io
   - moved JFS upto the 2.4.0 development kernel (2.4.0-test12) 
   - moved JFS upto the 2.2.18 kernel 
          
  Function and Fixes in drop 22

   - moved JFS upto the 2.4.0 kernel
   - Fix to do transaction processing for mknod correctly
   - Fix for spinlock.h needed on 2.2.18 ppc
   
  Function and Fixes in drop 23
   - Fix for undefined BUG() in 2.2.x series
   - Fix for 2.2 kernels, struct pipe_inode_info overlays the file system dependent portion of the inode structure. 
    
  Function and Fixes in drop 24
   - rmmod jfs fix
   - Implemented "Lazy Commit" - asynchronous logging enhancement to increase performance
   - Removed ino_t from on-disk structures (fixes a mount problem) 

  Function and Fixes in drop 25  
   - Fix for deadlocks by putting IWRITE_LOCK/UNLOCK within jfs_delete_inode
   - Fix to handle removing a link to an inode that isn't the last link.
   - Fixes to general transaction processing SMP related hangs.

  Function and Fixes in drop 26  
   - Fix for file writes on 2.2.x series of the kernel 
   - Change to log pages, so they no longer use the page cache.
   - Fixes to general transaction processing SMP related dead-lock problems

  Function and Fixes in drop 27  
   - Report error on read_metapage failure in jfs_readlink
   - Report correct error in jfs_lookup if VFS fails to locate the inode
   - Fix for a buffer overrun problem in jfs_readlink when compiled for linux-2.2
   - Fix to support fsync call correctly (jitterbug #57)
   - Fixes to general SMP related dead-lock problems
   - Fix to define BUG() if 2.2 and !i386
   - Fixes to general UP related hangs
   - Changes to handling the inode extent cache increase the performance of the file system
   
  Function and Fixes in drop 28  
   - Added ifdef IS_KIOBUFIO so JFS will be if kiobufs is in the kernel. Kiobufs has changed
     the # of parameters for generic_make_request()
   - Make jfsFYI a module parameter
        insmod jfs.o jfsFYI=1 will turn on JFS FYI messages without having to recompile this 
        option is only supported on the 2.4.x kernel level.
   - Defines cleanup_module() in terms of exit_jfs_fs() 
   - Fix to jfs_read_super, if get_empty_inode returns NULL cleanup correctly
   - Code cleanup to use standard types
   

  Function and Fixes in drop 29  
   - Fix for assert(iagp->wmap[extno] & mask); (line #2875) in jfs_imap while running dbench
   - Fixed hang on scsi
   - added /proc/fs/jfs/jfsFYI (2.4.* kernels only)
                echo 1 > /proc/fs/jfs/jfsFYI  ; Turns on very verbose output to syslog
                echo 0 > /proc/fs/jfs/jfsFYI  ; Turns it back off

   Notes:
        - IMPORTANT:  If building jfs.o as a module on 2.2.* kernels, you will have to rebuild and 
          install the kernel to add wake_up_process to ksyms.c.  Not needed on 2.4.* kernels.
          
  Function and Fixes in drop 30 
   - Added endian macros support
   - Fixed dbench hang 
   - jfs fails SPEC SFS validation on both NFSv2/NFSv3, fix to not add null-terminator to the symlink
     value and accounting for it in the size.
   - Fixed a bug where a casting of a 32 bit block # wasn't correct when a 64 bit value is needed.
        xtLookup messages where display in the /var/log/messages (i.e of a message is below)  
        xtLookup: lstart (0x80000) >= size (0x80000) 
        
  Notes: release 0.3.0 requires a re-format of the JFS partition, if the system architecture is
         big-endian (i.e. s/390, PowerPC, etc.) 
         - Still seeing hangs on 2.2.* SMP kernels
 

   
   
JFS TODO list:

Plans for our near term development items

Drop 31
   - fix jitterbug 10 rm -rf fails on a big directory
   - Test booting from JFS partition
   - bug fixes
   
Drop 32
   - get defrag capabilities operational in the FS
   - get extendfs capabilities operational in the FS
   - test EXTENDFS utility, for growing JFS partitions
   - test defrag utility, calls file system to defrag the file system.
   - Test JFS with LVM
   - bug fixes
   
Drop 33 

   - add support for block sizes (512,1024,2048)
   - bug fixes
    
Longer term work items

   - Integrate with LVM
   - Integrate with SnapFS Snapshot file system
   - add support to shrink the file system
   - add support for logfile on dedicated partition
   - get access control list functionality operational
   - get extended attributes functionality operational
   - add quota support

    


Please send bugs, comments, cards and letters to linuxjfs@us.ibm.com.

The JFS mailing list can be subscribed to by using the link labeled "Mail list Subscribe"
at our web page http://oss.software.ibm.com/developerworks/opensource/jfs/.