Messages in this thread | | | Date | Tue, 01 Aug 2000 16:36:08 -0600 | From | "Jeff V. Merkey" <> | Subject | [ANNOUNCE] NWFS 2.4.2 File System and Tools Source Code Released |
| |
NWFS 2.4.2 is available at 207.109.151.240. 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 CEO, TRG NWFS 2.4.2 RELEASE NOTES ------------------------
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 207.109.151.240.
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).
ENHANCEMENTS -------------
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 file:
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
BUILDING NWFS -------------
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_CONVERT 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
| |