Domain NFS Version 2.3
Release Document
Manufacturing Part No. 019329-A01
This release document describes Domain NFS Version 2.3, which runs on
MC680x0-based workstations, and Domain NFS Version 2.3.p, which runs
on Series 10000 workstations. It also provides installation instruc-
tions and bug information. Throughout this document, the term "Domain
NFS Version 2.3" is used to refer to both Version 2.3 and Version
2.3.p, except where explicit differentiation is made.
Domain NFS 2.3
Copyright Hewlett-Packard Company 1992.
First Printing: January 1992.
UNIX is a registered trademark of UNIX System Laboratories, Inc.
NFS is a trademark of Sun Microsystems, Inc.
NOTICE
The information contained in this document is subject to change
without notice.
HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS
MATERIAL INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MER-
CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Hewlett-Packard
shall not be liable for errors contained herein or for incidental or
consequential damages in connection with the furnishing, performance
or use of this material.
Hewlett-Packard assumes no responsibility for the use or reliability
of its software on equipment that is not furnished by Hewlett-Packard.
This document contains proprietary information which is protected by
copyright. All rights reserved. No part of this document may be pho-
tocopied, reproduced, or translated to another language without the
prior written consent of Hewlett-Packard Company.
RESTRICTED RIGHTS LEGEND. Use, duplication or disclosure by government
is subject to restrictions as set forth in subdivision (c) (1) (ii) of
the Rights in Technical Data and Computer Software Clause at DFARS
252.227.7013. Hewlett-Packard Co., 3000 Hanover Street, Palo Alto, CA
94304
Page 2
CONTENTS
1. Overview of Domain NFS Version 2.3............................ 6
1.1 Product Enhancements..................................... 7
1.2 Product Compatibility Issues............................. 12
2. Installation Information...................................... 13
2.1 NFS Limited Client Software.............................. 13
2.2 Products on the Domain NFS Version 2.3 Installation
Media.................................................... 13
2.3 Important Installation Notes............................. 15
2.3.1 The /etc/rpclib Global Library................... 15
2.3.2 Including Domain NFS Man Pages in the whatis
Database......................................... 15
2.3.3 Running the Domain NFS Server on the Target
Node............................................. 15
2.3.4 Ensuring the Uniformity of IDs................... 16
2.3.5 Installing Domain NFS on Client Nodes............ 16
3. Documentation................................................. 17
3.1 Domain NFS Documentation................................. 17
3.2 Additions or Changes to Documentation.................... 17
3.3 Documentation Bugs....................................... 26
4. Bugs and Fixed Bugs........................................... 28
4.1 Known Limitations and Bugs............................... 28
4.1.1 Auxilliary Functions Limitation.................. 28
4.1.2 Transferring Large Files via Fast Clients........ 28
4.1.3 Listing Rights in Foreign File Systems........... 28
4.1.4 Changing the Attributes of a Mounted Direc-
tory............................................. 29
4.1.5 The /bin/df Command.............................. 29
4.1.6 The /bin/du Command.............................. 29
4.1.7 Duplicate i-node Values.......................... 29
4.1.8 Incorrect Modification Time...................... 29
4.1.9 Ownership of /etc/nfsd........................... 30
4.1.10 Remote Pathname Limitation....................... 30
4.1.11 The /etc/umount Command.......................... 30
4.1.12 Inaccurate Information in /etc/mtab.............. 31
4.1.13 Using execve(2).................................. 31
4.2 Fixed Bugs............................................... 31
4.2.1 Problems Using a C Shell......................... 32
4.2.2 The mountd Daemon................................ 32
4.2.3 The /bin/ls -l Command........................... 32
4.2.4 Hierarchical NFS Mounts.......................... 32
Page 3
4.2.5 ESTALE Error Code................................ 33
4.2.6 Timeouts with the mount Command.................. 33
4.2.7 The cp Command................................... 34
4.2.8 Change to the /etc/exports File.................. 34
4.2.9 Using the touch Command.......................... 34
4.2.10 The utime() Call................................. 34
4.2.11 The getattr() Call............................... 34
4.2.12 The setattr() Mode............................... 34
4.2.13 Protection Mode Mask............................. 34
4.2.14 Resolving Links.................................. 34
4.2.15 The /etc/umount Command.......................... 35
4.2.16 Using the /bin/mv Command........................ 35
4.2.17 Using the Display Manager (DM)................... 35
4.2.18 Filename Parsing................................. 35
4.2.19 Location of Temporary Files...................... 35
4.2.20 Unknown Requests................................. 35
4.2.21 Apollo File System ACLs.......................... 35
4.2.22 The /etc/nfsmount Exit Status.................... 36
4.2.23 Using the Domain Software Engineering Environ-
ment............................................. 36
4.2.24 Rewriting a File................................. 36
4.2.25 Sending the TCP/IP Hostname...................... 36
4.2.26 Use of Sockets................................... 36
4.2.27 The Foreign System mount Daemon.................. 37
4.2.28 Using /etc/mount -p.............................. 37
4.2.29 The Cleanup Handler.............................. 37
4.2.30 Faults........................................... 37
4.2.31 The Mount Table.................................. 37
Page 4
Domain NFS 2.3
Preface
This document contains information about Domain NFS Version 2.3.
We've organized this document as follows:
Chapter 1 Contains information about changed functionality and
new features of this version of Domain NFS, and
discusses issues relating to compatibility with earlier
versions.
Chapter 2 Explains how to install Domain NFS 2.3 on your system.
Chapter 3 Lists the documentation included with this version, and
provides information about this version that is not
included in the hardcopy documentation.
Chapter 4 Describes known bugs and limitations in this version,
and lists bugs that have been fixed in this version.
The normal software installation process places a version of this
release document in each node's /install/doc/apollo directory.
You may print the online copy of this document.
If your installation uses the SysV lp print daemon, use an lp command
similar to the following:
lp -dprinter_name pathname
where pathname is the pathname of the release notes, usually
/install/doc/apollo/nfs.v.2.3__notes (for MC680x0-based workstations)
/install/doc/apollo/nfs.v.2.3.p__notes (for Series 10000 workstations)
Note that there are two underscores before notes.
If your installation uses the Domain print system, use the following
Aegis /com/prf command:
prf pathname -pr printer_name -npag
If your installation uses the BSD lpd print daemon, use an lpr command
similar to the following:
lpr -Pprinter_name pathname
Preface Page 5
Domain NFS 2.3
Chapter 1
Overview of Domain NFS Version 2.3
NOTE: The system administrator for your site must establish uniform
user and group IDs on all hosts, as described in Appendix B of
"Using NFS on the Domain Network" (010414-A00), before anyone
installs Domain NFS software.
The Domain implementation of the Network File System (NFS) fully sup-
ports the standard NFS file access protocol. It allows users of
Apollo workstations and other systems to transparently access each
other's files.
Domain NFS offers some features not found in other NFS implementa-
tions. The Domain implementation of NFS lets users at foreign systems
mount the Domain network root directory (//), and thereby gain access
to files anywhere on a Domain network. Conversely, users at Apollo
workstations can mount foreign file systems in the network root direc-
tory and then share the same names when accessing those file systems.
Another Domain NFS feature is that remote file systems mounted by an
Apollo workstation (with the exception of hierarchical mounts) remain
mounted until you explicitly unmount them. Hierarchical mounts (over-
laying an NFS directory with another NFS mount point) disappear when
you reboot the machine.
To run Domain NFS software, you must have either the BSD or SysV
environment (or both) installed on your Apollo workstations, and the
workstations must be running TCP/IP software. Domain NFS Version 2.3
runs on systems with MC680x0 processors; Series 10000 systems are sup-
ported by Domain NFS Version 2.3.p.
See "Using NFS on the Domain Network" (010414-A00) for detailed infor-
mation about network configurations and software prerequisites.
Overview of Domain NFS Version 2.3 Page 6
Domain NFS 2.3
1.1 Product Enhancements
Domain NFS Version 2.3 offers enhanced client performance and a more
reliable client and server. The following enhancements are introduced
in this release:
o A new file, /etc/rc.nfs, consolidates the Domain NFS startup pro-
cedure. In order to run /etc/rc.nfs at boot time, make the fol-
lowing changes to the /etc/rc file:
1. Delete all NFS-related sections from the /etc/rc file.
Sections that mention mount, portmap, nfsd, and mountd are
NFS-related. The following shows the material that must be
removed from the /etc/rc file:
# Run portmap to locate SUN-RPC services.
# Portmap must fork and the parent exit, before mountd starts.
# Do not use "&" !
#
if [ -f /etc/portmap -a -f /etc/daemons/portmap ]; then
(echo " portmap /etc/portmap
fi
#
# Run mountd to receive remote mount requests. This requires
# portmap to be running.
#
if [ -f /etc/mountd -a -f /etc/daemons/mountd ]; then
(echo " mountd /etc/mountd &
fi
#
# Run the nfs server. This receives remote file system requests.
# It requires the portmapper and mount server.
#
if [ -f /etc/nfsd -a -f /etc/daemons/nfsd ]; then
(echo " nfsd /etc/nfsd &
fi
2. In the /etc/rc file, move the /etc/mount -a command from
its current position (just after clearing /tmp) so that it
follows the invocation of /etc/rc.local.
The following illustrates the placement of /etc/mount -a in
the /etc/rc file:
(/etc/umount -A ; /etc/mount -f `/etc/mother`; /etc/mount -a )
Move /etc/mount -a to a position immediately after the
Overview of Domain NFS Version 2.3 Page 7
Domain NFS 2.3
following:
# Start Syslogd and TCP services (before NCS services).
# See /etc/rc.local for instructions.
#
if [ -f /etc/rc.local ]; then
/etc/sys_sh /etc/rc.local
fi
Use the following syntax when you make this change:
# Mount file systems in /etc/fstab (now that tcpd is running)
#
if [ $SYSTYPE = "bsd4.3" ]; then
(/etc/mount -a )
fi
#
3. In the /etc/rc.local file, add the /etc/rc.nfs command
immediately before the command that starts /etc/inetd.
The /etc/inetd startup command looks like the following:
# Run inetd to manage internet daemons
# ftpd, rshd, rexecd, rlogind, and telnetd.
# Edit /etc/inetd.conf to specify which
# daemons are enabled. (bsd4.3 and sys5.3 only).
#
if [ -f /etc/inetd -a -f /etc/daemons/inetd ]; then
(echo " inetd /etc/inetd
fi
Immediately before the /etc/inetd startup, add the
/etc/rc.nfs command using the following syntax:
# Start up NFS services now that tcpd and routed are running.
#
if [ -f /etc/rc.nfs ]; then
/etc/rc.nfs
fi
o Domain NFS 2.3 enables users to have root access to Domain NFS
servers. Adding the -root option with a list of hostnames to
entries in the /etc/exports file enables root access to users
from the specified hostnames. If the -root option is not used,
then root access is disabled for the filesystem. See Chapter 3
or the online manpage for details about /etc/exports.
Overview of Domain NFS Version 2.3 Page 8
Domain NFS 2.3
o The exportfs command is now used to export file systems to Domain
NFS clients. It is invoked at boot time by the /etc/rc.nfs
script, and uses information contained in the /etc/exports file
to export a file system. The super-user can run exportfs at any
time to alter the list or characteristics of exported file sys-
tems. The /etc/xtab file lists currently exported file systems.
See the online man page for more information.
o The Domain NFS client now has a global attribute and file handle
cache. You can configure the fhCacheLifetime parameter using the
/sys/nfs/clntConfig utility. The /etc/rc.nfs file runs this
utility at boot time. Chapter 3 contains details about this and
other configurable client parameters.
o NFS services are now layered on the public interface to the
/lib/rpclib global library that is built from Sun 4.0 RPC
sources. The restructuring of NFS services that went along with
this change improves product performance and makes the server
dispatch much simpler and less fragile. The application program-
ming interface global library will not be documented nor sup-
ported for this release.
o The standard ONC 4.0 portmap replaces the older Domain portmap.
o Several changes to the client software provide greatly enhanced
performance. The enhanced performance is especially noticeable
when transferring large files.
o The server software now responds to a request using the same
socket that received the request. This makes it possible to
mount Apollo file systems from some other vendors' NFS clients
that require the server to receive and reply to requests using
the same socket.
o The /etc/mount and /etc/umount commands now accept internet
addresses as well as names. For example, the following commands
lines are equivalent:
/etc/mount juno:/ /mnt
/etc/mount 15.22.144.194:/ /mnt
o Improved security measures are included in this release. One new
feature it that the nfsGatewayTable now belongs to root. It is
writable only by root and it is now located in /etc.
Overview of Domain NFS Version 2.3 Page 9
Domain NFS 2.3
o Users who borrow NFS-mounted file systems from other Apollo nodes
(by referencing an NFS mount point on another Apollo node) must
use the new Domain automount utility, /etc/damd. See Chapter 3
for details about /etc/damd.
o The new -x option to nfsd enables you to access extended path-
names, such as Domain Software Engineering Environment (DSEE)
casehm files, across mount points. See Chapter 3 for more
details about the -x option.
o The nfsmount command now returns better error messages, including
reports of mountd or nfsd crashes on remote nodes.
o Version 2.3 of Domain NFS includes a new diagnostic tool that
traces all incoming requests and outgoing responses on both the
client and the server. You must be running the Display Manager
windowing system to use this tool. To run the trace option on
the server, kill the current nfsd daemons and use the following
command line to restart them:
/etc/nfsd [options] -t<level>
where
[options] are <number>, <name>, and <alias>, as described
in Chapter 3.
<level> is 1, 2, or 3. Trace level 1 displays remote
procedure calls and their status. Trace level 2 displays
several parameter values. Trace level 3 displays everything,
including read, write, and readdir buffers. The default is
level 1.
To run the trace option on a client, set the environment variable
NFSCLIENTTRACE, to assign the trace level and a filename for the
output. If you do not assign a filename, the output defaults to
stderr. The following example shows how to run the trace option
in a C shell:
Overview of Domain NFS Version 2.3 Page 10
Domain NFS 2.3
setenv NFSCLIENTTRACE <level>[:<filename>]
where
<level> is 1, 2, or 3. The default is 1.
<filename> is the pathname of a file assigned to storing
the output. The default is stderr.
For example, typing the following command line in a C shell
selects trace level 2 and sends the output to /tmp/nfs_trace_log:
setenv NFSCLIENTTRACE 2:/tmp/nfs_trace_log
The following enhancements were introduced at Domain NFS Version 2.2:
o The former single-process NFS server daemon was converted into a
multidaemon NFS server. This new feature allows users to run
multiple NFS server daemons on the same Apollo node, thereby
increasing the availability of the NFS server for multiple
requests.
o You can invoke nfsd with the -V option, which allows the use of
SysV semantics for chown and chgrp requests. The default
behavior is to follow BSD semantics.
o The NFS server can convert the Apollo root directory // to
/<name>/ when it appears in symbolic link text. This enables
foreign file system users to resolve such links correctly when
they mount // as <name>. Use the -a<name> option when invoking
nfsd to configure the nfsd translation of the leading // in link
text. If <name> has not been specified with the -a option, //
converts to /apollo/. If nfsd is invoked without the -a option,
// converts to /../ in link texts.
o It is now possible to overlay an NFS directory with an NFS mount
point. We refer to this capability as hierarchical NFS mounts.
o The mount and umount commands return more informative error mes-
sages when a request cannot be carried out, and the nfsmount and
nfsumount commands are more robust.
Overview of Domain NFS Version 2.3 Page 11
Domain NFS 2.3
1.2 Product Compatibility Issues
This section describes compatibility issues with previous versions of
Domain NFS and Domain/OS.
o We strongly recommend that all Domain NFS Clients and Servers be
upgraded to NFS 2.3.
o Domain NFS 2.3 is backwards compatible with all previous versions
of Domain NFS. However, now the Domain NFS client must always
appear in the remote server's /etc/exports file. This is con-
sistent with the NFS protocol.
o All prior versions of Domain NFS may not be able to access NFS
2.3 mount points.
o Domain NFS 2.3 is compatible with Domain/OS SR10.2 and greater.
o Domain NFS 2.3 is based on Sun 4.0 RPC. Previous Domain NFS
releases were based on Sun 3.0 RPC. Some incompatibilities
between the two RPC versions may occur when Domain NFS 2.3
clients work with NFS servers (Domain or others) that use an ear-
lier RPC version. For example, RPC 4.0 allows a user to belong
to 15 groups whereas RPC 3.0 allows a user to belong to a maximum
of 7 groups.
Overview of Domain NFS Version 2.3 Page 12
Domain NFS 2.3
Chapter 2
Installation Information
You can install Domain NFS 2.3 on a user node (a node equipped with
monitor and keyboard) or on a Domain Server Processor (DSP). The node
or DSP must be running the following software:
o Version SR10.2 or greater of Domain/OS (Domain NFS Version 2.3.p
requires a Series 10000 machine running SR10.2.p or greater.)
o A UNIX operating environment (BSD, SysV, or both)
o TCP/IP software
2.1 NFS Limited Client Software
When running the RAI Config Tool, selecting nfs_lc causes a subset of
the Domain NFS 2.3 product to be installed. The nfs_lc software is
intended for "limited client" nodes, which are nodes that:
o do not export file systems
o do not directly mount remote file systems
o do use mount points established by other nodes (sometimes called
"gateway nodes" in older documentation)
NOTE: Limited client nodes still require a Domain NFS license.
2.2 Products on the Domain NFS Version 2.3 Installation Media
The media contains the following product options for MC680x0-based
workstations:
Product Version Selection File(s) Override File(s)
nfs 2.3 aa.nfs ov.nfs
nfs_lc 2.3 aa.nfs_lc ov.nfs_lc
patch_m0357 1.0 aa.patch_m0357 ov.patch_m0357
NOTE: The patch, patch_m0357 1.0, must be installed on MC680x0-based
workstations that are running version SR10.3.x of the Domain
Operating System.
Installing Domain NFS Version 2.3 Page 13
Domain NFS 2.3
The media contains the following product options for Series 10000
workstations:
Product Version Selection File(s) Override File(s)
nfs 2.3.p aa.nfs ov.nfs
nfs_lc 2.3.p aa.nfs_lc ov.nfs_lc
patch_p0293 1.0.p aa.patch_p0293 ov.patch_p0293
NOTE: The patch, patch_p0293 1.0.p, must be installed on Series 10000
workstations that are running version SR10.3.x.p of the Domain
Operating System.
Selection and override files reside in the directory
//<authorized_area>/install/templates/apollo/<product_name>.v.<version>
where:
<authorized_area> is your authorized area
<product_name> is the product name (as listed in the first column
of the table above)
<version> is the version number (as listed in the second column
of the table above).
For directions about how to install this product and about the use of
selection and override files, see the manual "Installing Software with
Apollo's Release and Installation Tools" (Part No. 008860-A02 for
SR10.3.x and below. Part No. 008860-A03 for SR10.4.x and above).
NOTE: The user node or DSP must have a minimum of 1024 blocks of
available disk space (approximately 1 MB) for a successful
installation of this software.
To use Domain NFS, you must run TCP/IP. If you are not sure if TCP/IP
is running on the target system, contact your system administrator.
If the node on which you are installing Domain NFS does not have
TCP/IP and either the BSD or the SysV environment, the installation
procedure prints an error message and quits. Install the missing
software and retry the Domain NFS installation.
If the Domain NFS installation succeeds, you receive the following
message:
Installing Domain NFS Version 2.3 Page 14
Domain NFS 2.3
RAI install has successfully completed.
2.3 Important Installation Notes
This section provides additional installation instructions.
2.3.1 The /etc/rpclib Global Library
To use any NFS function, the /etc/rpclib global library must be
installed and the /etc/sys.conf file must contain the following entry:
lib rpclib, global, optional
This installation should automatically add the entry to sys.conf. If
the entry is not in /etc/sys.conf, use the following Korn shell or C
shell command (typed on a single line) to add it.
Korn shell command line:
fgrep rpclib \`node_data/etc/sys.conf ||
echo lib rpclib, global, optional >> \`node_data/etc/sys.conf
C shell command line:
fgrep rpclib \`node_data/etc/sys.conf; if ( $status )
echo lib rpclib, global, optional >> \`node_data/etc/sys.conf
Note that you must be root to modify sys.conf.
2.3.2 Including Domain NFS Man Pages in the whatis Database
To include the NFS man pages in the whatis database, log in as root
and run the /usr/lib/makewhatis utility.
2.3.3 Running the Domain NFS Server on the Target Node
Follow the steps below to run the NFS server on the target node. You
do not need to follow these steps if you plan to run only the NFS
client on the target node.
1. While logged in as root, issue the following UNIX command line
from the target node:
/bin/cp /sys/nfs/etc.exports.template \`node_data/etc/exports
Installing Domain NFS Version 2.3 Page 15
Domain NFS 2.3
2. Edit the target node's /etc/exports file to allow remote nodes
to mount all or part of the Domain // filesystem. If access to
files in system directories on the target node is restricted,
you may need to change the permissions on /etc/exports to edit
the file.
3. Issue the following UNIX commands from the target node:
/usr/bin/touch /etc/daemons/portmap
/usr/bin/touch /etc/daemons/mountd
/usr/bin/touch /etc/daemons/nfsd
/usr/bin/touch /etc/daemons/damd
4. Shut down and reboot the target node.
2.3.4 Ensuring the Uniformity of IDs
Run the /etc/syncids utility to ensure that all user and group IDs are
uniform on all Domain NFS hosts. For more information refer to the
"Establishing Uniform User and Group IDs" section of Appendix B in
"Using NFS on the Domain Network" (010414-A00).
2.3.5 Installing Domain NFS on Client Nodes
To use Version 2.3 components such as rpclib, you need to install
Domain NFS Version 2.3 on all nodes that act as NFS clients.
Installing Domain NFS Version 2.3 Page 16
Domain NFS 2.3
Chapter 3
Documentation
This chapter summarizes changes to hardcopy documentation.
You can call the Tech Pubs Connection with questions or comments about
any of our documentation, or to find out about new manuals.
o In the USA, call 1-800-441-2909
o Outside the USA, call (508) 256-6600 ext. 2434
To order manuals, call Apollo Direct Channel at 1-800-225-5290. Out-
side the USA, please contact your local sales office.
3.1 Domain NFS Documentation
Domain NFS is described in the following documentation:
o "Using NFS on the Domain Network" (010414-A00)
o "Domain NFS Version 2.3 Software Release Document" (019329-A01)
(this document)
Reference documentation for the NFS utilities and daemons is available
online via the man command in the BSD and SysV environments.
3.2 Additions or Changes to Documentation
Please note the following changes and additions to Domain NFS:
o Using the -r option with the mount daemon (mountd) improves
interoperability when running the -host option with the standard
ONC automount daemon. Using the -r option causes /.. to be
exported whenever / is exported.
Edit the following section of the /etc/rc.nfs file as shown, to
use the -r option with mountd:
Documentation Page 17
Domain NFS 2.3
if [ -x /etc/mountd -a -f /etc/daemons/mountd ] ; then
(print -n " mountd" >/dev/console)
/etc/mound -r &
fi
o Entries in the /etc/exports file can now use the -root, -anon,
and -access options. An entry has the following format:
<file_system> -<option>[,<option>] ...
where
<file_system> is the pathname of a file system.
<option> is one of the following, separated by commas.
anon=<uid>
If a request comes from an unknown user, use
<uid> as the effective user ID. Note that root users (uid
0) are always considered unknown by the NFS server
unless they are included in the root option.
If the anon option is absent, the NFS server treats requests from
unknown users as if they are from user.none.none. Setting
anon to 0 gives root access to everyone.
root=<hostname>[:<hostname>] ...
Give root access only to the root users from a
specified hostname. The default is for no hosts
to be granted root access.
access=<hostname>[:<hostname>] ...
Give mount access to each client listed. The default
allows any client to mount the given file system.
o You can configure the following client parameters by using the
new /sys/nfs/clntConfig utility:
flushInterval The interval at which borrowed mount points are
flushed from /etc/nfsGatewayTable. The initial
setting is 300 seconds (5 minutes). Disable
flushInterval by setting it to a negative number.
tempLifetime The lifetime of a borrowed mount point in
/etc/nfsGatewayTable. The initial setting is 600
seconds (10 minutes).
Documentation Page 18
Domain NFS 2.3
fhCacheLifetime The lifetime of a cached file handle or file
attribute in /tmp/nfs_data. The initial setting
is 30 seconds. This client parameter is started
by /etc/rc.nfs at boot time.
Use /sys/nfs/clntConfig by typing the following command line in a
UNIX shell:
/sys/nfs/clntConfig <param>=<time>,<param>=<time>,<param>=<time>
where:
<param> is the client parameter to be changed.
<time> is the amount of time in seconds.
The /sys/nfs/clntConfig program echos the before and after values
of all configurable parameters. Note that you can list the param-
eters in any order on the command line. If you do not list a
parameter, clntConfig uses the current setting. Do not enter
spaces before or after the commas and the equal signs. You must
run clntConfig as root to change the parameter settings.
o The nfsGatewayTable file now belongs to root, is writable only by
root, and is located in /etc.
o The /sys/mgrs/nfs_dlink and /sys/mgrs/nfs_flink type managers no
longer exist.
o Duplicate hierarchical mounts are no longer allowed.
o Domain NFS 2.3 offers greater security through the use of the
Domain automount daemon, /etc/damd. This new daemon changes the
way Domain NFS clients share mount information. At Version 2.3,
Domain clients share mount information with each other through
their /etc/mtab files instead of /etc/nfsGatewaytable. For exam-
ple, if a client on node A encounters a mount point on node B, it
reads node B's /etc/mtab file and attempts to mount the file sys-
tem through the assistance of the Domain automount daemon. Pre-
vious releases of Domain NFS allowed node A to copy the file han-
dle from the gateway object (or gateway table) on node B and
essentially impersonate node B.
The Domain NFS client waits up to 12 seconds for /etc/damd to
become available to handle a request. When /etc/damd is avail-
able, the client waits up to 12 seconds for /etc/damd to then
finish the request.
Documentation Page 19
Domain NFS 2.3
The automount daemon allows 2 to 8-second timeouts and 2 to 8
retries for the initial automount request. Any user-specified
timeout and retransmit settings greater than 8 default to 8 and
any less than 2 default to 2.
Like the other Domain NFS daemons, /etc/damd is started by the
/etc/rc.nfs script when /etc/daemons/damd is present. The fol-
lowing lines in /etc/rc.nfs pertain to the Domain automount dae-
mon:
if [ -x /etc/damd -a -f /etc/daemons/damd ] ; then
(print -n " damd" >/dev/console)
/etc/damd <option> &
fi
where
<option> is -e. This option allows /etc/damd to
obtain hierarchical mounts directly from a foreign node.
The base mount is always obtained from the Apollo node
that mounted the foreign node.
The following example describes the behavior of /etc/damd, when
it is started with the -e option.
//chick and //wiseguy are Apollo nodes. //expo is a foreign node.
Running the /etc/showmount -e expo command on either of the
Apollo nodes results in the following output:
export list for expo:
/ everyone
/usr everyone
/files everyone
Suppose //chick mounts "expo:/" as follows:
/etc/mount -o soft,timeo=30,retrans=4,root expo:/ //expo
Documentation Page 20
Domain NFS 2.3
If a user on //wiseguy accesses a file under //expo, then the
automount daemon on //wiseguy first reads the following line from
mtab (BSD) or mnttab (SysV) on //chick:
expo:/ //expo nfs root,timeo=30,retrans=4,rw
then the automount daemon inquires about the export list from
//expo and mounts the following file systems locally on
//wiseguy. Timeout and retransmission values are the same as the
root mount (in this case, the timeout is 3 seconds and the
retransmission is 4 retries).
//expo/
//expo/usr
//expo/files
Running the Domain automount daemon is optional. By creating or
deleting /etc/daemons/damd, you can choose whether or not to bor-
row mount points. To remain compatible with previous Domain NFS
releases, borrowed mount points are still not entered into a
node's /etc/mtab file, and Domain NFS 2.3 clients can borrow
mount points from 2.1 and 2.2 clients. However, 2.1 and 2.2
clients cannot borrow hierarchical mount points from 2.3 clients.
The Domain automounter does not preclude the use of the standard
ONC automounter.
o The NFSCLIENTVERBOSE environment variable enables the Domain
automount daemon (damd) to write error and informational messages
to a client's stderr. This information may help determine the
most efficient values to use when mounting foreign machines or
when setting the clntConfig values.
Use the following command line to set the NFSCLIENTVERBOSE
environment variable in a C shell:
setenv NFSCLIENTVERBOSE 1
The following command line sets the NFSCLIENTVERBOSE environment
variable in a Korn shell:
export NFSCLIENTVERBOSE=1
The following example shows the output to stderr when a user on
an Apollo node (//venus) first accesses a foreign node (//pluto),
whose / directory has been mounted on an Apollo node (//merc).
Note that //pluto has exported /, /usr, and /files to everyone
and damd was started with the -e option.
Documentation Page 21
Domain NFS 2.3
DAMD: mounting pluto:/ on //merc/sys/node_data/pluto.nfs_root
DAMD: mounting pluto:/usr on //merc/sys/node_data/
pluto.nfs_root/usr
DAMD: mounting pluto:/files on //merc/sys/node_data/
pluto.nfs_root/files
Note that damd writes to the terminal attached to stderr. The
terminal for a standard display manager pad is /dev/display,
which creates a new display manager pad each time it is called.
The may be annoying for long-term NFSCLIENTVERBOSE usage. Run-
ning a terminal emulator such as the vt100, or using an xterm
eliminates this potential annoyance.
o Domain NFS 2.2 introduced a server with a parent process, a child
dispatcher process, and a user-specified number of child daemons
(specified when invoking nfsd). The child processes do not try
to recover from a fault or signal. Instead, the processes die,
the operating system cleans up, and then the parent can create
new child processes. The fault is logged in the nfs_error_log
file located in /sys/node_data/system_logs.
o Domain NFS Version 2.2 introduced the option of running addi-
tional daemons on the server node. Running additional daemons
increases the availability of the server to more than one client
at a time. The default number of configurable daemons on a
server node is one. The maximum number is nine. You always see
two daemons plus the number of daemons that you configure. Edit
the following section in the /etc/rc.nfs file to configure the
number of additional daemons to run on the server:
if [ -x /etc/nfsd -a -f /etc/daemons/nfsd ] ; then
(print -n " nfsd" >/dev/console)
/etc/nfsd <number> &
fi
where
<number> is a number from 2 to 9 that specifies how many
additional daemons to run on the server. The default number is 1.
o The Domain NFS daemon, nfsd, follows BSD semantics for chown
requests unless you specify SysV semantics by invoking nfsd with
the -V option. To use the -V option, edit the /etc/rc.nfs file as
shown in the following example:
Documentation Page 22
Domain NFS 2.3
if [ -x /etc/nfsd -a -f /etc/daemons/nfsd ] ; then
(print -n " nfsd" >/dev/console)
/etc/nfsd <number> -V &
fi
where
<number> is a number from 2 to 9 that specifies how many
daemons to run on the server. The default number is 1.
SysV allows either the super-user or the owner of a file to
change the ownership of the file. BSD allows only the super-user
to change ownership.
o Use the -a<name> option when you invoke nfsd to configure the
Apollo server's translation of the leading // in link text to
foreign clients. The default <name> is apollo, which converts
the Apollo root directory // to /apollo/. To use the -a<name>
option, edit the /etc/rc.nfs file as follows:
if [ -x /etc/nfsd -a -f /etc/daemons/nfsd ] ; then
(print -n " nfsd" >/dev/console)
/etc/nfsd <number> -a<name> &
fi
where
<name> is the name the Apollo server should use when
translating the leading // in link text for foreign
clients. If <name> is left blank, the default /apollo/
is used.
<number> is a number from 2 to 9 that specifies how many
daemons to run on the server. The default number is 1.
For example, foreign clients can use /hello/us as the link to
//us by modifying the /etc/rc.nfs file as shown in the following
line:
/etc/nfsd <number> -ahello &
If nfsd is invoked without the -a option, // converts to /../ in
link texts.
Documentation Page 23
Domain NFS 2.3
o Use the -x<alias> option when you invoke nfsd to enable foreign
clients to process extended pathnames, such as case history
manager (casehm) files created by DSEE (Domain Software Engineer-
ing Environment). The <alias> argument represents a one charac-
ter alias for / and defaults to % if nothing is specified after
-x. Choose a character alias that does not conflict with any
pathnames you access. To use the -x<alias> option, edit the
/etc/rc.nfs file as follows:
if [ -x /etc/nfsd -a -f /etc/daemons/nfsd ] ; then
(print -n " nfsd" >/dev/console)
/etc/nfsd <number> -a<name> -x<alias> &
fi
where
<number> is a number from 2 to 9 that specifies how many
daemons to run on the server. The default number is 1.
<name> is the name the Apollo server should use when
translating the leading // in link text for foreign
clients. If <name> is left blank, the default /apollo/
is used.
<alias> is the one character alias the Apollo server should
use for / so that foreign clients can specify DSEE library
versions and branches. If <alias> is left blank, the default
(%) is used.
The following example assumes that nfsd was started using the
default argument to the -x option. Suppose source:/ is mounted
from the foreign machine as follows:
/etc/mount source:/ /source
Then running the following command line from the foreign machine
lets the user read the SR10.3 version of errno.h:
more /source/dsee_library/errno.h%[sr10.3]
o If a network is using named, the server's /etc/exports file
should include the fully qualified node names of the hosts
authorized to remotely mount the file systems listed there. It
is sufficient to include only the node name if the network is not
using named.
Documentation Page 24
Domain NFS 2.3
For example, if your network is using named and you want to
include porter as an authorized host for the //alewife file sys-
tem, you need to include the following line in the server's
/etc/exports file:
//alewife -access=porter<.xx.xxxx.xxx>
where:
porter<.xx.xxxx.xxx> is the fully qualified node name for porter.
Use the /bin/nslookup tool to find out the fully qualified node
name for hosts residing on the Domain system.
o Domain NFS 2.2 and above require that you be root to mount and
unmount file systems. For compatibility with previous versions
of Domain NFS, which did not restrict mount and umount to root,
set the ISUID bit after installing Domain NFS, as shown in the
following example:
su root
/etc/chown root /etc/nfs*mount
chmod 04711 /etc/nfs*mount
exit
o As of Version 2.1, Domain NFS supports the UNIX executable calls
execl, execle, execlp, execv, execve, and execvp. These calls
are listed as unsupported in Table 4-1 of "Using NFS on the
Domain Network" (010414-A00).
Documentation Page 25
Domain NFS 2.3
3.3 Documentation Bugs
Please note the following inaccurate or missing information in "Using
NFS on the Domain Network" (010414-A00).
o The "Related Manuals" section of the Preface refers to an order
number for the Domain NFS Software Release Document that is no
longer available (010415). The new part number for the hardcopy
Release Document is 019329-A01.
o The Domain automount (damd) daemon is not documented in the
manual. Page 1-5 should include a client daemon (damd) among the
list of Domain NFS software components.
o The nfs_dlink and nfs_flink type managers no longer exist. They
are referred to on page 1-5.
o Page 1-6 lists the NFS utility commands that reside in /etc. The
following utility should be added to the list:
exportsfs export file systems
Page 1-6 should also mention the clntConfig utility that resides
in /sys/nfs.
o Page 1-6 states that the man command should be run from within
one of the UNIX shell process windows. This list should include
the BSD Bourne shell and the SysV Korn shell, in addition to the
ones already listed there.
o The Extended Pathnames section (section 2.4.4) on page 2-15
states that most NFS implementations on foreign systems cannot
process extended pathnames. This is no longer true. Use the -x
option when invoking nfsd to enable foreign clients to use
extended pathnames.
o The super-user limitation discussed on page 2-16 is no longer
valid. Use the root option in the /etc/exports file to allow
root access across mount points.
o Pages 4-1 and 4-7 incorrectly state that Domain NFS software sup-
ports Domain/OS name_$ calls for accessing and modifying files
and directories located in foreign file systems. Table 4-2
incorrectly lists name_$ calls. Domain/OS name_$ calls do not
work on NFS mounted objects; use ios_$ calls instead.
Documentation Page 26
Domain NFS 2.3
o The description for the exports file on page A-2 and the nfsd
daemon on page A-11 are incomplete. Refer to the online man
pages for complete information about exports and nfsd.
o The timeo argument to the -o option (BSD) or -f option (SysV) in
the mount command description on pages A-5 and A-9 should state
that there is a 60-second limit on the transmission timeout.
o Page C-3 states that you cannot access DSEE casehm files. DSEE
casehm files use extended pathnames. Invoking nfsd with the -x
option enables you to access them.
Documentation Page 27
Domain NFS 2.3
Chapter 4
Bugs and Fixed Bugs
This Chapter discusses limitations and known bugs in Domain NFS Ver-
sion 2.3.
4.1 Known Limitations and Bugs
Domain NFS 2.3 has the following known bugs and limitations.
4.1.1 Auxilliary Functions Limitation
The standard NFS file-sharing protocol is fully supported; however,
all the common auxilliary NFS functions such as PCNFS, XDR/RPC
Libraries, and NIS are not supported. The source code for some of
these functions is in the public domain. Information is available from
the Apollo Domain User's Society (ADUS).
4.1.2 Transferring Large Files via Fast Clients
Performance of the Domain NFS server may degrade dramatically with
some NFS client implementations in situations where a large number of
back-to-back frames are placed on the ethernet. This might occur, for
instance, in writing large files to the Domain NFS server. The prob-
lem is due to Domain TCP/IP losing packets.
The problem will be fixed in Domain/OS SR10.4. As a temporary wor-
karound, you can limit the number of frames in a "train" by specifying
a 1k write buffer size (instead of the 8k default size) when mounting
the Apollo file system. For example, use the following command line
to mount the Apollo /doc file system with a 1k write buffer size:
/etc/mount -o wsize=1024 pubs:/doc /doc
4.1.3 Listing Rights in Foreign File Systems
The Aegis /com/ld -a command does not list your access rights to files
in foreign file systems. Use the UNIX /bin/ls -l command to obtain
this information.
Bugs and Fixed Bugs Page 28
Domain NFS 2.3
4.1.4 Changing the Attributes of a Mounted Directory
The IOS layer does not receive enough information to decide whether
the operation is to be applied to the gateway object itself or to the
remote NFS directory (APR 000DCA7B).
4.1.5 The /bin/df Command
When issued on an Apollo system, the /bin/df command does not work on
foreign file systems.
4.1.6 The /bin/du Command
When issued on an Apollo system, the /bin/du command does not work on
foreign file systems.
When used in conjunction with Domain NFS between two Apollo systems,
the /bin/du command gives incorrect information (APR 000DD063).
4.1.7 Duplicate i-node Values
The i-node values of files in Domain NFS mounted directory may not be
unique. The Domain/OS file structure does not use i-node values. In
response to i-node value requests, Domain/OS returns the files' modi-
fied time as the i-node value. Two files report the same i-node value
if their modified times are identical. A workaround for this bug is
to change the modified times of the files on the remote system so that
they are no longer identical (APRs 000DCB70 and 000DD153).
4.1.8 Incorrect Modification Time
Domain/OS SR10.3 changes the modification time of a file when the file
is closed. Files that are accessed through Domain NFS for reading or
writing remain open until they are not accessed for a specific amount
of time (currently, 6 seconds). This may result in the Domain NFS
client application seeing an incorrect modification time (the time the
file closed instead of the time the file was written). For example,
the emacs file editor frequently notices that the file on disk is
newer than the copy in its buffer.
Bugs and Fixed Bugs Page 29
Domain NFS 2.3
4.1.9 Ownership of /etc/nfsd
The /etc/nfsd daemon acquires the user ID of the last user to access
the Domain/OS file system via NFS from a remote station. As a result,
the unprivileged user has temporary ownership over /etc/nfsd; hence,
it may kill the process and disable all remote NFS accesses (APR
000DD015).
4.1.10 Remote Pathname Limitation
For nodes running SR10.3 or an earlier version of Domain/OS, the
ios_$inq_path_name_lc() call limits a remote pathname to 255 charac-
ters. You cannot change to a remote directory that has a pathname
greater than 255 characters, if that directory is at least one level
down from the mounted directory. If you attempt to change to such a
directory, you risk crashing the shell. Nodes running Domain/OS
SR10.3.5 (PSKQ3_91) or greater, do not have this remote pathname limi-
tation.
4.1.11 The /etc/umount Command
When the same remote file system is mounted two or more times on a
single host system, the umount command acts unreliably. The problem
is that umount always derives the file system name from the user-
specified information and passes that information on to nfsmount when
it executes nfsmount. If the same remote file system is mounted two or
more times, the file-system name is ambiguous.
The default behavior of nfsumount when given an ambiguous specifica-
tion is to unmount the last mounted system meeting that specification.
This may lead to unexpected behavior. For example, suppose juno:/ is
mounted as follows:
/etc/mount juno:/ /finance
/etc/mount juno:/ /law
The following command line would then result in the unmounting of /law
instead of /finance:
/etc/umount /finance
A simple workaround is to use nfsmount directly. For example, to
unmount /finance from the example above, use the following command
line:
/etc/nfsumount /finance
Bugs and Fixed Bugs Page 30
Domain NFS 2.3
4.1.12 Inaccurate Information in /etc/mtab
The delmntent(2) system call may incorrectly update /etc/mtab when a
secondary overlaying hierarchical mount is unmounted. For example,
assume the following mounted file systems:
/etc/mount -o soft snow:/ /snow
/etc/mount -o soft snow:/news /snow/news
/etc/mount -o hard snow:/news /snow/news
If /snow/news is unmounted as shown below, then the file system,
/snow/news that was mounted with the "hard" option is correctly
removed, but /etc/mtab may incorrectly show that the file system
/snow/news that was mounted with the "soft" option was removed
instead.
/etc/umount /snow/news
4.1.13 Using execve(2)
At Domain/OS SR10.3 or earlier, the execve(2) call does not execute
scripts through a /-relative remote link; nor does it handle pathnames
that climb back over the mount point (through use of one or more /..
components). For example, given the following situation, executing
script1 or script2 fails:
echo "echo hello!" > /script
/etc/mount juno:/ /law
cd /law
ln -s /script script1
ln -s ../script script2
The following command lines, however, succeed:
cat script1
cat script2
This execve(2) call problem is fixed in Domain/OS SR10.3.5 (PSKQ3_91).
4.2 Fixed Bugs
This section documents the bugs fixed in Domain NFS Version 2.3 and
Version 2.2. Domain NFS 2.3 contains the following fixed bugs and
also incorporates all the bug fixes made in previous releases and
patches of Domain NFS.
Bugs and Fixed Bugs Page 31
Domain NFS 2.3
4.2.1 Problems Using a C Shell
Various problems, including access violations, no longer occur when
using Domain NFS in a C Shell.
4.2.2 The mountd Daemon
The mountd daemon no longer allows clients to subvert the /etc/exports
file by specifying subdirectories ending in "/..".
4.2.3 The /bin/ls -l Command
The /bin/ls -l command gave incorrect information when used in con-
junction with Domain NFS between two Apollo systems (APR 000DD062).
4.2.4 Hierarchical NFS Mounts
Until Version 2.2 of NFS, it was not possible to overlay an NFS direc-
tory with an NFS mount point. This capability, which we refer to as
hierarchical NFS mounts, was incorporated into Domain NFS at Version
2.2.
In versions of Domain NFS prior to version 2.2, NFS mounts used dedi-
cated NFS gateway objects. It was not possible to overlay an existing
NFS directory because an NFS gateway object had to actually be
created. For example, if you mounted sun as
mount sun:/ /sun
(assuming that the file /sun did not already exist) and then attempted
to overlay the NFS directory /sun/usr with the command
mount sun:/usr /sun/usr FAILS FOR NFS 2.1
then the attempt failed, with the message
mount: nfsmount returned in error
With Domain NFS 2.2 and above, this command no longer fails. Once you
have created an initial NFS mount point, such as
mount sun:/ /sun
you can overlay that NFS directory (or the NFS mount point), as in
mount sun:/usr /sun/usr
Bugs and Fixed Bugs Page 32
Domain NFS 2.3
You can even overlay the directory or mount point with a completely
unrelated file system, such as
mount vax:/LIB /sun/usr
Since a hierarchical mount overlays an existing NFS directory, the
directory /sun/usr must exist. Domain NFS hierarchical mount points
only overlay existing NFS directories. They cannot overlay native
Domain directories.
Domain NFS hierarchical mounts, unlike pre-Version 2.2 Domain NFS
gateway object mounts, do not survive boots. All information about NFS
hierarchical mounts is kept only in memory and no state of hierarchi-
cal mounts is kept. You can, however, make a specific tree mount
structure available once the machine has booted by putting the
appropriate hierarchical mount entries in /etc/fstab. Then, those NFS
hierarchical mounts get executed at boot time by init.
For backward compatibility, the pre-Version 2.2 NFS mount gateway
objects remain until they are explicitly unmounted. Only the
hierarchical mounts vanish when you reboot a node. You can operate
without any restrictions on existing NFS gateway objects created by
previous NFS versions. You can also use a Version 2.2 or Version 2.3
NFS mount that contains hierarchical mounts from previous NFS ver-
sions, but you can only operate on the original gateway object. The
hierarchical mounts within it are only visible from a node running
Version 2.2 or Version 2.3 (APR 000DC1A5).
4.2.5 ESTALE Error Code
Domain NFS now returns the ESTALE error code on systems running
Domain/OS SR10.3 and above. ESTALE is returned if the file on the
remote system is moved, removed, or otherwise altered while the file
is processed locally. The NFS file handle for that file is no longer
valid on the server (APR 000DD84B).
4.2.6 Timeouts with the mount Command
The timeo argument to the -o option (BSD) or -f option (SysV) of the
mount command now works as documented (APRs 000DD155 and 000DDEEE).
Bugs and Fixed Bugs Page 33
Domain NFS 2.3
4.2.7 The cp Command
The -p option of the UNIX cp command now works as documented (APR
5B546717).
4.2.8 Change to the /etc/exports File
Entries in the /etc/exports file may now be continued over several
lines (APRs 000DDF1E, 000DDF94, and 000DD323). The command showmount
-e prints the contents of this file.
4.2.9 Using the touch Command
The touch command now works correctly for files in mounted file sys-
tems. Protections are no longer expanded (APR 000DCD72), and the date
is correctly recorded (APRs 5B542E4B, 000DE33D, 000DE33C, and
000DDF2C).
4.2.10 The utime() Call
The utime() call correctly modifies the timestamp (APRs 000DD538 and
5B54A671).
4.2.11 The getattr() Call
NFSD correctly returns micro-second values in a get attribute opera-
tion (APR 000DDEDD).
4.2.12 The setattr() Mode
NFSD correctly interprets the setattr() mode value (APR 000DE061).
4.2.13 Protection Mode Mask
The umask file-creation mode mask is not ignored when you create files
on foreign file systems (APR 000DD30C).
4.2.14 Resolving Links
Certain pathnames that include links are now correctly resolved (APR
000DE262).
Bugs and Fixed Bugs Page 34
Domain NFS 2.3
4.2.15 The /etc/umount Command
The -a option for the /etc/umount command properly unmounts all the
file systems described in /etc/fstab (APR 000DD15E).
4.2.16 Using the /bin/mv Command
Using the /bin/mv command to move a file from a foreign file system to
an NFS mounted file system no longer scrambles permissions (APR
000DD19f).
4.2.17 Using the Display Manager (DM)
The DM can now be used to read and edit NFS mounted files (APRS
000DD238, 000DD30D, 000DD687 and 5B547603).
4.2.18 Filename Parsing
NFS filename parsing is fixed so that the "." in a pathname is handled
correctly (APR 000DD492).
4.2.19 Location of Temporary Files
The temporary files nfs_data and nfsstat.dat are located in the /tmp
directory instead of in /systmp or /system_logs directories (APR
000DD8C6).
4.2.20 Unknown Requests
The server daemon nfsd would sometimes reject unknown requests (uid,
gid), causing the server to hang. This has been changed so that
unknown (uid, gid) is now treated as user.none. Unknown uids and gids
are logged in `node_data/system_logs/nfs_error_log with the offending
client's internet address. This fix is only for systems running
Domain/OS 10.3 in conjunction with Domain NFS 2.2 or greater. Users
running SR10.2 or earlier versions should use the Apollo
/etc/import_passwd utilities to make sure that uids and gids are
synced across all the internets that are accessed by Domain NFS (APRs
000DDAE3, 000DD8C3, and 5B549CA7).
4.2.21 Apollo File System ACLs
Occasionally, objects created on the Apollo file system had incorrect
ACLs; this has been fixed (APRs 000DDF86 and 000DE061).
Bugs and Fixed Bugs Page 35
Domain NFS 2.3
4.2.22 The /etc/nfsmount Exit Status
The /etc/nfsmount command would exit with a zero status whenever the
mount failed. This has been fixed so that /etc/nfsmount exits with a
nonzero status when the mount fails. /etc/mount examines the exit
status of /etc/nfsmount and exits with the appropriate status (APR
000DE06F). This fix is only for systems running Domain/OS 10.3 in
conjuction with Domain NFS 2.2 or 2.3. There is no workaround for
users running Domain/OS 10.2 or less.
4.2.23 Using the Domain Software Engineering Environment
Foreign machines were not able to use the Domain Software Engineering
Environment (DSEE) in conjunction with Domain NFS to access files
linked to an Apollo system (APR 5B54FC08). Domain NFS 2.2 enables you
to configure the Apollo server's translation of the leading // in link
text to foreign clients. When you invoke nfsd use the -a<name> option
to specify the name the Apollo server should use when translating the
leading // in link text. If <name> is left blank, the default name
apollo is used, which converts the Apollo root directory // to
/apollo/. If nfsd is invoked without the -a option, // converts to
/../ in link texts. To invoke nfsd with the -a option, edit the fol-
lowing line in the /etc/rc file as shown:
/etc/nfsd <number> -a<name> &
4.2.24 Rewriting a File
An Apollo file that is mounted on a foreign file system no longer
becomes truncated to zero bytes when a user who is not the owner but
has write permission rewrites the file (APRs 000DCBD5 and 000DE285).
4.2.25 Sending the TCP/IP Hostname
Domain NFS now sends the correct TCP/IP hostname when accessing a
remote computer (APR 000DE2F8).
4.2.26 Use of Sockets
Domain NFS now uses a single socket instead of changing to a new
socket each time an error occurs on the socket (APR 5B54692A).
Bugs and Fixed Bugs Page 36
Domain NFS 2.3
4.2.27 The Foreign System mount Daemon
Foreign computer systems no longer need to run the mount daemon with
the -n option because Domain NFS now sends the mount request from a
privileged port; however, all other NFS requests are sent from an
unprivileged port so remote servers should not turn on port checking
for their NFS servers. Note that the security checking offered by
many other vendors normally includes port checking in addition to run-
ning the mount daemon without the -n option.
4.2.28 Using /etc/mount -p
The -p option to the BSD /etc/mount command now works as documented.
4.2.29 The Cleanup Handler
The static cleanup handler sometimes failed to completely clean up. We
now have a parent and a child nfsd daemon. All processing is done by
the child. The child no longer attempts to recover from a fault or
signal. Instead, the child processes die, the operating system cleans
up, and the parent can then create a new child if the fault is not too
serious. (APRs 000DD5FE, 5B54BC7F, 5B54E4C9).
4.2.30 Faults
NFS type-manager ios calls no longer inhibit faults across an entire
open operation. Faults are now only inhibited across sections of code
that perform atomically, so the cleanup handler can recover grace-
fully.
4.2.31 The Mount Table
The mount table is now correctly updated by mount and umount (APR
5B54DD66).