[LWN Logo]
Date:	Tue, 01 Aug 2000 16:36:08 -0600
From:	"Jeff V. Merkey" <jmerkey@timpanogas.com>
To:	linux-kernel@vger.rutgers.edu
Subject: [ANNOUNCE] NWFS 2.4.2 File System and Tools Source Code Released

This is a multi-part message in MIME format.
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

NWFS 2.4.2 is available at  This release fixes bugs
reported last week with permissions and adds implements notify_change()
to get arund the kupdate problems with write_inode().  This release is
has also been brought current with Linux 2.4.0-test5 changes.

Jeff Merkey
Content-Type: text/plain; charset=us-ascii;
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;


NWFS is a work in progress.  TRG will continue to develop enhancements
and new features to NWFS in the future.  You are encouraged to report
bugs or requests for feature enhancements to jmerkey@timpanogas.com

This release supports Linux Kernels 2.0 and 2.2 and 2.4.  NWFS 2.4.2
source code can be downloaded from www.timpanogas.com or FTP at

This is an interim release that contains bug fixes.  The next major 
release (2.5) uses a rapid mounting scheme with a journal that allows
NetWare volumes to be mounted rapidly and demand-paged rather than
needing to read the entire volume directory and name hashes into memory.  
The 2.5 version reduces memory usage to @ 1/80th of what we are using 
at present.   2.5 also supports files up to 256 tera-bytes in size 
depending on the OS architecture (Linux looks like 16 TB max).


This Release adds notify_change() support and corrects permissions problems
and blocksize problem bug reports and problems with permissions 
getting lost by kupdate bugs.  NWFS originally had only implemented 
write_inode() instead of notify_change() [which the docs state 
is the fall-through case for notify_change()], however, there
appears to be some holes in the VFS where permissions can get
lost if notify_change() in not instrumented.  

This release of the tools code will also force partition alignment when 
partitions are created under Linux with the NWFS Tools.

NetWare will always allocate the first partition on a device to start 
on 0 + SectorsPerTrack, which may not be block aligned with the 
defined block sizes in Linux.  NWFS allows partitions that are not 
block aligned to be read, but only if LOGICAL_BLOCK_SIZE is set to 512 
byte blocks.  This can cause conflicts with some Linux filesystems 
(like EXT2) that by default use a block size of 1024.  

The tools will create partitions aligned on cylinder boundries 
to allow NWFS on Linux to use any Linux block size selections 
between 512, 1024, 2048, and 4096. However, on NetWare partitions 
created by Native NetWare, you may need to set LOGICAL_BLOCK_SIZE 
in the NWFS driver to 512 if you want to read NetWare partitions 
created by NetWare that may have been created on a non-block 
aligned boundry using the SPT method. If you are migrating NetWare
volumes to Linux, or plan to use NWFS volumes created under Linux 
on NetWare, you will want to set the TRUE_NETWARE_MODE flag in 
globals.h and build NWCONFIG and the tools with this setting so 
partitions will use the SPT method rather than cylinder aligning
the partitions.  If this flag is set, the LOGICAL_BLOCK_SIZE will
default to 512 so the NWFS driver can read these partitions since 
they may not be block-aligned the way Linux wants to see them.

NetWare supports variable length sector requests, so this concept 
of hard coded block sizes is alien to NetWare.  

Also, some folks reported seeing noisy messages in the /var/log/messages

modprobe--can't locate module block-major-13
modprobe--can't locate module block-major-47
modprobe--can't locate module block-major-13
modprobe--can't locate module block-major-47

NWFS has to scan all the devices reported on the gendisk_head to build
a segmentation and mirroring map of devices on the system since NetWare
volumes can be mirrored or multi-segmented and span disks, and I 
have to probe for minor devices and attempt to open them all.  Linux will
report on some systems that devices are present when they are not.
THe message is generated from blkdev_open when I attempt to open
one of these devices -- the messages are benign and 'noisy', so 
ignore them.

This release is current with Linux 2.4 as of 2.4.0-test5.  The 
additional parameters to write_inode(, int wait) and changes to the 
timer_list structure and dentry structures have been updated, along 
with the change to support the b_private field in the buffer_head 
structure rather than the b_dev_id field.  We also have added
the cleanup calls for kmem_cache_destroy() for 2.4.  The BUG() at line 
186, filemap.c problem is not fixed as of this release if you 
attempt to remove symbolic links from an NWFS volume under 
Linux 2.4.0-test5


The globals.h file contains the following table of options:

#define  WINDOWS_NT_RO    0
#define  WINDOWS_NT       0
#define  WINDOWS_NT_UTIL  0
#define  WINDOWS_98_UTIL  0
#define  LINUX_20         0
#define  LINUX_22         1
#define  LINUX_24         0
#define  LINUX_UTIL       0
#define  DOS_UTIL         0

select build environment (you can only select one at a time).  

There are makefiles included for different kernel configurations.  To
make the NWFS driver for Linux, select one of the following.  The
makefiles support modversioned kernels and naked kernels.

#define  LINUX_20         0
#define  LINUX_22         1
#define  LINUX_24         0

make -f nwfs.mak         This will make an NWFS driver SMP-no  MODVER-no
make -f nwfsmod.mak      This will make an NWFS driver SMP-no  MODVER-yes
make -f nwfssmp.mak      This will make an NWFS driver SMP-yes MODVER-no
make -f nwmodsmp.mak     This will make an NWFS driver SMP-yes MODVER-yes

The Linux versions are supported under the GCC Linux compiler
To make the Linux tools:

#define  LINUX_UTIL       1

make -f util.mak

The DOS versions are supported under the DJ Delorie GCC MS-DOS compiler.
To make the MS-DOS tools:

#define  DOS_UTIL       1

make -f util.mak

The Windows NT/2000 versions are supported under Microsoft C++ 5.0 or higher
To make the WIndows NT/2000 tools:

#define  WINDOWS_NT_UTIL       1

nmake /f utilms.mak


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/