[lkml]   [2000]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectNWFS Source Code Posted at

    The Open Source Release of NWFS 2.2 for the Linux 2.0 and 2.2 kernels is
    posted to our site at and Included
    are the release notes. 2.4 will be posted Wednesday, March 29, 2000 at
    7:00 a.m. Eastern Time.

    Jeff Merkey
    CEO, TRG

    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

    This release supports Linux Kernels 2.0 and 2.2. 2.3 support will be
    released Wednesday, January 29, 2000 at 7:00 a.m. Eastern Time
    at and will also be avialable via FTP at

    New To This Release:

    1. Full Asynch IO Manager (SMP)
    2. NetWare-ish LRU Mirrored Block Cache.
    3. Handle Based Virtual Partition Mirroring and Hotfixing Engine (NWVP).
    4. Full SMP Support (and we even tested it).


    There is a bug related to the interaction between NWFS and the 2.2 VFS
    during "rm -r <directory>" operations where readdir from within rm is
    getting confused and reading partial dentry blocks during recursive
    delete operations. The VFS interface for NWFS is contained in create.c,
    dir.c, inode.c, file.c, mmap.c, nwvfs.c, and super.c. The side affect
    is that you will get a "directory not empty" message and have to
    repeat the "rm -r" operation a couple of times until all the files
    have been deleted. Anyone out there with VFS 2.2 knowledge is welcome
    to point out any apparent defects in the NWFS VFS interface for Linux.
    2.3 also is manifesting similiar behavior at present.

    There still may be deadlocks in the file system when boundry or low
    memory conditions occur. If you encounter one, rebuild with DEBUG_DEADLOCKS
    set to 1 in the globals.h file. You will be able to hit Control-C
    and get a message about where the deadlock occurred. email your
    /var/log/messages file to (after compressing it
    first) and we will get it fixed if anyone runs across any deadlocks
    our testing scenarios did not expose.

    At present, we are implementing hard links linux-style. The method used
    by NetWare NFS is extremely ackward, and implementations between NetWare
    versions are different. There is a HARD_LINKED flag however for files,
    which allows vrepair under NetWare to fixup hard-linked directory records
    during mount.

    The NetWare NFS implementation of hard links does not allow the data stream
    to "float" between inodes as is done in linux. NetWare creates a root
    directory record, chains the data stream to it, and if it gets deleted,
    all the hard links lose their links to the data. I have implemented
    hard links linux-style, but probably should create some mapping layer to
    move the root around when someone deletes it.


    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

    The LINUX_20 and LINUX_22 File System driver options are the only
    driver versions covered under this particular release. Select
    either LINUX_20 or LINUX_22 and set to 1 in globals.h (you can only
    select one at a time).

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

    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 list has gotten very short, and few items remain (less platform
    optimization work) for closure for NWFS on Linux relative to
    providing all the features of the Native NetWare File System.
    Tuning and performance work is always on-going.

    1. Implement Macintosh Data Fork Support and integrate with HFS code
    on 2.2 and 2.3 for the Linux Macintosh File Service.

    2. Implement 255 character name support in the extended directory for
    NFS and LONG namespaces (current is 80 character).

    3. Implement extensible parent hash skip lists for rapid positional
    numeric probes of the parent hash (like readdir and lookup like to do).

    4. Add deleted block sequence number engine for salvageable file
    system (rename Command needs to support -2 deleted file directory).

    5. Implement splay tree for hash buckets on name hashes instead of
    linked lists for better search times.

    6. Implement hash in aio manager for rapid indexing during add io
    requests (will do today).

    7. Finish Netware hard link support NetWare NFS style instead of
    linux style (very ackward implementation).

    8. Implement cpu_to_le32(), etc. macros and test on IA64, Sparc64, and

     \ /
      Last update: 2005-03-22 13:57    [W:0.026 / U:25.892 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site