Erez Zadok [Fri, 2 Jan 2004 22:33:01 +0000 (22:33 +0000)]
updates
Erez Zadok [Fri, 2 Jan 2004 21:01:34 +0000 (21:01 +0000)]
* INSTALL, README.autofs: remove forced text-mode.
Erez Zadok [Fri, 2 Jan 2004 20:51:06 +0000 (20:51 +0000)]
* doc/am-utils.texi: fix Amd book URL.
Erez Zadok [Fri, 2 Jan 2004 20:07:22 +0000 (20:07 +0000)]
* Makefile.am (EXTRA_DIST): include new mirror files in tarball.
Erez Zadok [Fri, 2 Jan 2004 20:02:46 +0000 (20:02 +0000)]
* AUTHORS, BUGS, README, README.y2k, configure.in,
doc/am-utils.texi: revisions to use newer URLs for Web site, FTP,
and mailing lists.
* MIRRORS.{html,txt}: updates.
* doc/Makefile.am: install mirror lists officially.
Erez Zadok [Thu, 1 Jan 2004 22:30:00 +0000 (22:30 +0000)]
* tasks: things to do after migrating ftp/Web sites.
Erez Zadok [Thu, 1 Jan 2004 03:04:29 +0000 (03:04 +0000)]
fake version upgrade
Erez Zadok [Thu, 1 Jan 2004 03:01:50 +0000 (03:01 +0000)]
fake version upgrade
Erez Zadok [Thu, 1 Jan 2004 03:00:41 +0000 (03:00 +0000)]
* fsinfo/fsinfo.8: fixed typo (unbalanced []) in man page. Bug
report from Eric S. Raymond <esr@thyrsus.com>.
* Makefile.am (EXTRA_DIST_M4): exclude removed file
m4/macros/struct_nfs_fh3.m4 from distro.
Rainer Orth [Fri, 24 Oct 2003 21:43:54 +0000 (21:43 +0000)]
* libamu/xdr_func.c (xdr_am_nfs_fh3): Use AM_FHSIZE3 instead of
FHSIZE3 (may be undefined).
Ion Badulescu [Fri, 24 Oct 2003 14:34:40 +0000 (14:34 +0000)]
Compile fix for Solaris7 with LDAP:
* include/am_defs.h: moved the ldap headers before am_nfs_prot.h
to facilitate using ldap types in it
* conf/nfs_prot/nfs_prot_sunos5_7.h: add a couple of ldap
definitions that Sun left out of their headers
Ion Badulescu [Fri, 24 Oct 2003 04:50:17 +0000 (04:50 +0000)]
* conf/nfs_prot/nfs_prot_*.h: remove all NFSv3-related
definitions, they are now defined globally
* libamu/xdr_func.c: unconditionally define all xdr functions
needed for NFSv3, but with an am_ prefix to prevent namespace
collisions
* amd/amfs_host.c, amd/ops_nfs.c, amd/srvr_nfs.c,
libamu/mount_fs.c: added the am_ prefix to all
structures and functions having to do with NFSv3 to prevent
namespace collisions
* include/am_utils.h: moved definition of am_nfs_handle to ...
* include/am_xdr_func.h: ... here. Also define AM_FHSIZE3,
am_nfs_fh3, AM_NFSPROC3_LOOKUP, am_nfsstat3, am_fhandle3,
am_mountstat3, am_mountres3_ok, am_mountres3, am_filename3,
am_diropargs3, am_LOOKUP3args, am_LOOKUP3resok, am_LOOKUP3resfail,
am_LOOKUP3res here; remove cross-platform compile helper macros
AMU_LOOKUP3RES_*.
* include/am_defs.h: include am_xdr_func.h before am_utils.h to
provide definitions for NFS filehandles
* amd/amd.h: removed declaration for xdr_mountres3
* doc/am-utils.text: minor warning fix
* BUGS: document the autoconf warnings when trying to compile
system header files in isolation
* m4/macros/struct_nfs_fh3.m4: removed, not needed
* configure.in: check if struct mounta has the optptr field;
removed all NFSv3-related checks, we implement everything
internally now
* conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_2_free): don't
touch mnt->optptr unless HAVE_MOUNTA_OPTPTR is defined
Ion Badulescu [Wed, 22 Oct 2003 20:04:41 +0000 (20:04 +0000)]
* BUGS: document the limitations of bind mounts on Linux
Ion Badulescu [Tue, 21 Oct 2003 23:31:52 +0000 (23:31 +0000)]
* buildall: added support for -i (make install)
Rainer Orth [Thu, 16 Oct 2003 16:58:00 +0000 (16:58 +0000)]
* NEWS: New minor port i386-pc-solaris2.10 (Solaris 10).
* INSTALL: Mention its test status.
Erez Zadok [Thu, 16 Oct 2003 05:03:25 +0000 (05:03 +0000)]
* amd/ops_nfs.c (nfs_init): declare as static to match forward
definition at top of file.
* conf/nfs_prot/nfs_prot_{hpux11, netbsd1_4,openbsd,aix5_2}.h:
added missing definitions for LOOKUP3res, diropargs3, etc.
* libamu/xdr_func.c (xdr_LOOKUP3res, xdr_am_nfs_fh3),
libamu/mount_fs.c (compute_nfs_args), amd/ops_nfs.c
(got_nfs_fh_mount, got_nfs_fh_webnfs, prime_nfs_fhandle_cache,
webnfs_lookup), amd/amfs_host.c (fetch_fhandle): Attempt to
cleanup some inconsistencies with how we treat NFSv3 file handles.
Whenever we need to get data out of a filehandle given to us, we
assume that it uses the OS's native fhandle structure
(often struct nfs_fh3). When we store the fhandle data for our
own use, however, we store it in one of two ways. The first, is
that we use the system's default nfs_fh3 structure; the second is
that we define out own struct am_nfs_fh3 in nfs_prot.h (and go
through an elaborate autoconf song-and-dance to "discover" it as a
native fh3 handle structure). It appears that we do the latter,
instead of using the system's default fhandle structure, simply to
avoid extra malloc's and free's, because whereas nfsv2's fhandle
structure is a simple 32-byte buffer, nfsv3's fhandle structures
often just define a "char *" for the fhandle data, and the caller
must malloc/free the space inside as needed. Our code was never
written with constructor/destructor callbacks for these nfsv3
filehandles. Moreover, we carefully wrote our own am_nfs_fh3
structure so IT JUST SO HAPPENS to align with most (hopefully all)
of the fhandle structures for v3: first four bytes are the length
fields and the next four bytes are the fhandle data. Sigh.
Having this inconsistent use of v3 filehandles can be a real bear,
because we simply cannot avoid using the system's default fhandle
structure indirectly, through things like diropargs3 in
xdr_diropargs3(), which has inside of it a reference to the
system's default nfs_fh3 structure. ANYWAY, the current fix I've
come up with is to generalize the way we dereference field names
within the nfs_fh3 structure (whether ours or the system's) and
the same for the system's LOOKUP3res structure. I'm not pleased
with this fix; I'd rather we don't use our own am_nfs_fh3
structure at all.
* libamu/xdr_func.c (xdr_am_nfs_fh3): always definine this
function if we have NFS3, because we often use our own,
incompatible am_nfs_fh3 structure.
* include/am_xdr_func.h: We cannot use the native system's
xdr_nfs_fh3 because we are defining our own incompatible
am_hfs_fh3 structure for some systems.
* include/am_xdr_func.h: Define default values for field names of
struct nfs_fh3 and LOOKUP3res.
* doc/am-utils.texi (debug_options Parameter): minor typo fixed.
* conf/nfs_prot/nfs_prot_freebsd3.h: FreeBSD uses different fields
names for struct nfs_fh3 and LOOKUP3res, so override the default
names here.
* configure.in: AMU_CHECK_FS_MNTENT(nfs3) test before
AMU_STRUCT_NFS_FH3, because the latter depends on the former.
* amd/ops_nfs.c (prime_nfs_fhandle_cache): add {} to disambiguate
and clarify if-the-else clauses.
Ion Badulescu [Tue, 14 Oct 2003 00:47:40 +0000 (00:47 +0000)]
* amd/get_args.c (get_version_string): change "Built by" to
"Configured by", and add a new "Built by" line using the variables
below
* m4/update_build_version (vers): add BUILD_USER, BUILD_HOST, and
BUILD_DATE to build_version.h
* amd/mntfs.c (locate_mntfs): fix restarted filesystems: mf_fo
must be initialized even for them, otherwise we lose opt_sublink
(and perhaps other options as well)
Ion Badulescu [Tue, 14 Oct 2003 00:08:13 +0000 (00:08 +0000)]
* amd/amfs_generic.c (amfs_bgmount): The fix for the mf_fo NULL
pointer dereferencing was a bit too aggressive and could end up
not processing the sublink option if the filesystem was already
mounted. Report from Rainer Orth.
Ion Badulescu [Sun, 12 Oct 2003 00:49:44 +0000 (00:49 +0000)]
Fix restarted filesystem by disabling the amfs_inherit filesystem
and moving the restarting logic into the generic code. The old
code is still there, will be removed sometime in the near future.
* amd/mntfs.c (locate_mntfs): disable amfs_inherit and simply
return the pointer to the restarted filesystem
(free_mntfs): check for the MFF_RESTART flag instead of the
amfs_inherit ops
* amd/autil.c (mf_mounted): remove the MFF_RESTART flag once the
filesystem is use
* amd/amfs_nfsx.c (amfs_nfsx_init): only call fs_init() if the
filesystem is not being restarted
(amfs_nfsx_remount): if the filesystem is already mounted,
short-circuit the code and just continue
* amd/amfs_generic.c (amfs_bgmount): only call fs_init() if the
filesystem is not being restarted; remove hack that was used to
work around an amfs_inherit problem
Ion Badulescu [Sat, 11 Oct 2003 06:02:04 +0000 (06:02 +0000)]
don't try to move configure to configure.old if it doesn't exist
Rainer Orth [Thu, 9 Oct 2003 20:33:44 +0000 (20:33 +0000)]
Use WebNFS to obtain file handles for mount(2).
* NEWS: Document WebNFS support.
* configure.in: Check for public mount option.
* include/am_compat.h (MNTTAB_OPT_PUBLIC): Define if missing.
* doc/am-utils.texi (opts Option): Renamed webnfs to public,
update description.
* amd/amd.h (FSF_WEBNFS): New mntfs flag.
* include/am_utils.h (RPC_XID_WEBNFS): New XID type.
* amd/amfs_host.c (amfs_host_mount, amfs_host_umounted): Reject
WebNFS mount/umount attempts.
* amd/ops_nfs.c (got_nfs_fh_mount): Renamed from got_nfs_fh.
(got_nfs_fh_webnfs): New function.
(flush_nfs_fhandle_cache): Don't invalidate port for WebNFS servers.
(prime_nfs_fhandle_cache): Likewise.
Remove unconditional return of public file handle for WebNFS, but
get NFS file handles via mountd or WebNFS instead.
(webnfs_lookup): New function.
(nfs_umounted): Don't inform mountd if MFF_WEBNFS.
* amd/rpc_fwd.c (fwd_packet, fwd_reply): Send/receive WebNFS
packets.
* amd/srvr_nfs.c (recompute_portmap): Don't contact portmap for
WebNFS servers.
Mention host in info message.
(find_nfs_srvr): Handle public mount option.
Prefer NFSv3/tcp if the client supports it.
Allow port mount option to override default or result from portmap
lookup.
* libamu/xdr_func.c (xdr_diropargs3, xdr_filename3,
xdr_LOOKUP3args, xdr_LOOKUP3res, xdr_LOOKUP3resfail,
xdr_LOOKUP3resok, xdr_nfs_fh3, xdr_nfsstat3): New functions.
* include/am_xdr_func.h: Declare them.
* configure.in: Check for them.
* conf/nfs_prot/nfs_prot_linux.h: Provide missing NFSv3
definitions and types.
Rainer Orth [Thu, 9 Oct 2003 19:31:12 +0000 (19:31 +0000)]
Support IRIX 6 private mount option.
* configure.in (AC_CHECK_MNTTAB_OPTS): Check for private option
name string.
(AC_CHECK_MNT2_NFS_OPTS): Check for private NFS mount option (IRIX 6).
* aux/macros/header_templates.m4 (MNTTAB_OPT_PRIVATE,
MNT2_NFS_OPT_PRIVATE): Provide templates.
* include/am_compat.h (MNTTAB_OPT_PRIVATE): Define if missing.
* doc/am-utils.texi (opts Option): Document it.
Rainer Orth [Thu, 9 Oct 2003 19:26:49 +0000 (19:26 +0000)]
* doc/am-utils.texi (opts Option): Fix Tru64 UNIX name in proplist
mount option.
Rainer Orth [Thu, 9 Oct 2003 19:23:06 +0000 (19:23 +0000)]
* libamu/mount_fs.c (compute_nfs_args) [HAVE_NFS_ARGS_T_FH_LEN]:
Don't reference removed fh3.
Rainer Orth [Thu, 9 Oct 2003 19:18:52 +0000 (19:18 +0000)]
* NEWS: New minor port sparc-sun-solaris2.10 (Solaris 10).
* INSTALL: Mention test status of various ports.
Describe IRIX 6 autofs status.
Ion Badulescu [Thu, 9 Oct 2003 05:13:56 +0000 (05:13 +0000)]
* NEWS: updated
* amd/amfs_generic.c (amfs_bgmount): don't use mf_fo until after
we've done all the tests and we know we have a valid and mountable
mntfs. Otherwise we could end up dereferencing null pointers.
* amd/amd.h: fixed a copy&paste comment bug
* amd/am_ops.c (ops_match): minor code cleanup
* doc/am-utils.texi: fixed various typos; added warning about the
racy nature of nfsx; removed duplicated listing of debug options;
added paragraph about signals supported by hlfsd; removed the long
list of (maybe) supported platforms since it duplicates the list
in INSTALL.
Rainer Orth [Thu, 2 Oct 2003 17:41:31 +0000 (17:41 +0000)]
Simplify FD_SET etc. use.
* include/am_defs.h (FD_SET, FD_ISSET, FD_CLR, FD_ZERO): Provide
if missing.
(rpc_pending_now, run_rpc): Use them.
* configure.in: Check for fds_bits field in fd_set.
* amd/nfs_start.c (run_rpc): Use it.
Rainer Orth [Thu, 2 Oct 2003 17:13:22 +0000 (17:13 +0000)]
Forgotten in previous commit.
Rainer Orth [Thu, 2 Oct 2003 16:53:51 +0000 (16:53 +0000)]
Improve RPC XID handling.
* amd/rpc_fwd.c (fwd_packet, fwd_reply): Always log xid.
Convert xid to/from host/network byte order.
Rainer Orth [Thu, 2 Oct 2003 16:29:27 +0000 (16:29 +0000)]
Use NFS V2/V3 file handles instead of mount results.
* include/am_utils.h (am_nfs_fhandle): Use NFS V2/V3 file handles
only, not MOUNTPROC_MNT results.
* amd/amfs_host.c (fetch_fhandle): Use local variables to store
MOUNTPROC_MNT results.
* amd/autil.c (amfs_mount): Use new am_nfs_fhandle_t.
* amd/ops_nfs.c (struct fh_cache): New member fh_status.
(got_nfs_fh): Use local variables to store MOUNTPROC_MNT results.
Store MOUNTPROC_MNT errors in fh_status.
(prime_nfs_fhandle_cache): Get fh_error from fh_status.
* hlfsd/hlfsd.c (main): Use new am_nfs_fhandle_t.
* libamu/mount_fs.c (compute_nfs_args): Copy NFS V2/V3 file
handles straight from new am_nfs_fhandle_t.
Rainer Orth [Thu, 2 Oct 2003 16:03:45 +0000 (16:03 +0000)]
* amd/clock.c (CID_ALLOC): Remove unused argument.
(timeout): Likewise.
* amd/ops_nfs.c (FHID_ALLOC): Remove unused argument.
(prime_nfs_fhandle_cache): Likewise.
(call_mountd): Use UDPMSGSIZE instead of magic constant.
* amd/rpc_fwd.c (XID_ALLOC): Remove unused argument.
(fwd_packet): Likewise.
Handle TLOOK error from t_rcvudata().
Ion Badulescu [Wed, 1 Oct 2003 02:45:12 +0000 (02:45 +0000)]
slightly different #ifdef structuring, no real code changes
Ion Badulescu [Wed, 1 Oct 2003 01:50:27 +0000 (01:50 +0000)]
* NEWS: updated
* libamu/mount_fs.c (mount_fs): don't try to recreate the mount
point if the mount fails with ENOENT: in the best case we would be
papering over a bug, and in the worst case we could cause a
deadlock (with autofs). If there are races, they need to be
exposed and fixed properly.
* conf/autofs/autofs_solaris_v1.h,
conf/autofs/autofs_solaris_v2_v3.h,
conf/autofs/autofs_linux.h: (AUTOFS_NFSX_FS_FLAGS): autofs
semantics don't allow us to mount nfsx directly onto an autofs
mountpoint, so disallow it
* amd/amfs_nfsx.c (amfs_nfsx_match): more restrictive sanity check
to avoid trying to memmove(foo, bar, (unsigned)-1) due to invalid
map entries...
(amfs_nfsx_cont): amfs_retry does most of the cleanup work for us
in the upper layer, so don't do anything else beside wakeup() on
success
(amfs_nfsx_remount): only create the mountpoints as we need them,
avoids creating them on the wrong filesystem in the case of
hierarchical mounts; fix crash-generating typo (m should really be
mf and I swear I hate single-character variable names)
* amd/amfs_generic.c (amfs_cont): one more dlog
(amfs_bgmount): amazingly enough, even foreground mounts can be
backgrounded (in the case of nfsx), so account for this
possibility and permit retries
* m4/macros/check_autofs_style.m4 (AMU_AUTOFS_PROT_HEADER): define
and AC_SUBST it as ${top_builddir}/amu_autofs_prot.h
* amd/Makefile.am ($(amd_OBJECTS) $(EXTRA_amd_OBJECTS)): depend on
@AMU_AUTOFS_PROT_HEADER@
Ion Badulescu [Wed, 1 Oct 2003 01:48:03 +0000 (01:48 +0000)]
updated with the nfsx fix
Ion Badulescu [Wed, 1 Oct 2003 01:47:40 +0000 (01:47 +0000)]
There is still a bug in nfsx when combined with restarted
filesystems, because they both use the mf_private field and stomp
on each other's data. I'm going to look into that next, I think I have
an elegant solution for it. -Ion
* libamu/mount_fs.c (mount_fs): don't try to recreate the mount
point if the mount fails with ENOENT: in the best case we would be
papering over a bug, and in the worst case we could cause a
deadlock (with autofs). If there are races, they need to be
exposed and fixed properly.
* conf/autofs/autofs_solaris_v1.h,
conf/autofs/autofs_solaris_v2_v3.h,
conf/autofs/autofs_linux.h: (AUTOFS_NFSX_FS_FLAGS): autofs
semantics don't allow us to mount nfsx directly onto an autofs
mountpoint, so disallow it
* amd/amfs_nfsx.c (amfs_nfsx_match): more restrictive sanity check
to avoid trying to memmove(foo, bar, (unsigned)-1) due to invalid
map entries...
(amfs_nfsx_cont): amfs_retry does most of the cleanup work for us
in the upper layer, so don't do anything else beside wakeup() on
success
(amfs_nfsx_remount): only create the mountpoints as we need them,
avoids creating them on the wrong filesystem in the case of
hierarchical mounts; fix crash-generating typo (m should really be
mf and I swear I hate single-character variable names)
* amd/amfs_generic.c (amfs_cont): one more dlog
(amfs_bgmount): amazingly enough, even foreground mounts can be
backgrounded (in the case of nfsx), so account for this
possibility and permit retries
* m4/macros/check_autofs_style.m4 (AMU_AUTOFS_PROT_HEADER): define
and AC_SUBST it as ${top_builddir}/amu_autofs_prot.h
* amd/Makefile.am ($(amd_OBJECTS) $(EXTRA_amd_OBJECTS)): depend on
@AMU_AUTOFS_PROT_HEADER@
Erez Zadok [Tue, 30 Sep 2003 01:22:11 +0000 (01:22 +0000)]
* minor new port mipsel-unknown-linux-rhPS2 (Linux on Sony
PlayStation 2)
* amd/srvr_nfs.c (find_nfs_srvr): don't run code that expects
"char protocols[]" unless MNTTAB_OPT_PROTO is defined.
Rainer Orth [Fri, 26 Sep 2003 20:15:12 +0000 (20:15 +0000)]
Consolidate alloca support.
* amd/amq_svc.c: Move alloca support ...
* include/am_defs.h: ... here.
* amd/conf_parse.y: Remove alloca support.
* fsinfo/fsi_gram.y: Likewise.
Rainer Orth [Thu, 25 Sep 2003 22:26:10 +0000 (22:26 +0000)]
Handle Solaris 10.
* m4/macros/check_nfs_prot_headers.m4
(AMU_CHECK_NFS_PROT_HEADERS): Don't use wildcards for
sunos5.[0-3], solaris 2.[0-3], there were no micro releases.
Explicitly match sunos5*, solaris2* for Solaris 8 and beyond.
* m4/macros/os_cflags.m4 (AMU_OS_CFLAGS): Dont use wildcards for
solaris2.[0-5], sunos5.[0-5], but explicitly handle Solaris 2.5
micro releases to cope with Solaris 2.5.1.
Explicitly match solaris2*, sunos5*.
Rainer Orth [Thu, 25 Sep 2003 20:19:07 +0000 (20:19 +0000)]
* amd/amq_svc.c: Provide alloca prerequisites.
* conf/transp/transp_tli.c (register_autofs_service): Fix typo.
Ion Badulescu [Wed, 24 Sep 2003 02:44:38 +0000 (02:44 +0000)]
* minor new port: x86_64-unknown-linux-rh2.9.5AS. (Red Hat
Enterprise Linux 3.0 beta running on a 64-bit AMD64 platform)
Ion Badulescu [Mon, 22 Sep 2003 19:43:13 +0000 (19:43 +0000)]
* conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): compile fix
Ion Badulescu [Sat, 20 Sep 2003 03:19:47 +0000 (03:19 +0000)]
* amd/amfs_nfsl.c (amfs_nfsl_match): checking opt_fs is not always
enough, we should lstat() the sublink if it's defined.
(amfs_nfsl_ffserver): ditto
(ALL): Removed some obsolete comments. The nfsl code is now little
more than a very straight-forward switch between link and nfs.
* amd/amfs_link.c (amfs_link_match): more up-to-date explanation
for the prepend-the-dot hack for type link; also, the sublink is
already normalized and absolute, so take advantage of that
* amd/amfs_generic.c (amfs_lookup_one_mntfs): the sublink is
already normalized and absolute, so take advantage of that
* amd/am_ops.c (ops_match): normalize the sublink here, early into
the matching process
Ion Badulescu [Sat, 20 Sep 2003 01:09:04 +0000 (01:09 +0000)]
* amd/autil.c (am_mounted): be consistent and accept both
"nounmount" and "noumount" as pseudo mount options (same as
"unmount" and "umount" nearby)
Ion Badulescu [Sat, 20 Sep 2003 00:53:00 +0000 (00:53 +0000)]
* amd/Makefile.am (build_version.h): fixed dependencies (depends
on amd_OBJECTS, not OBJECTS -- which doesn't even exist)
Erez Zadok [Fri, 19 Sep 2003 23:38:23 +0000 (23:38 +0000)]
* amd/amq_subr.c (amqproc_export_1_svc): force double casting to
avoid gcc-3.3 complaints on Solaris 9 about "dereferencing
type-punned pointer will break strict-aliasing rules".
Ion Badulescu [Wed, 17 Sep 2003 19:20:24 +0000 (19:20 +0000)]
* Released beta version 6.1b4
Ion Badulescu [Tue, 16 Sep 2003 23:45:12 +0000 (23:45 +0000)]
* doc/am-utils.texi (opts Option): removed documentation for old
ignore_portmapper mount option, documented the new webnfs option
Ion Badulescu [Tue, 16 Sep 2003 04:14:36 +0000 (04:14 +0000)]
* NEWS: webnfs support
* amd/srvr_nfs.c (find_nfs_srvr): set MFF_WEBNFS if the "webnfs"
(former "ignore_portmapper") mount option is present
* amd/ops_nfs.c (prime_nfs_fhandle_cache): generate a public
filehandle (all zeros) if MFF_WEBNFS is set
(nfs_umounted): don't talk to mountd if MFF_WEBNFS is set
* amd/amd.h (MFF_WEBNFS): new flag, obvious meaning
Ion Badulescu [Sat, 13 Sep 2003 23:07:55 +0000 (23:07 +0000)]
* amd/srvr_nfs.c: renamed np_xid to global_xid; sanitized the
NPXID_ALLOC macro and renamed it to XID_ALLOC; renamed start_ping
to create_ping_payload; renamed nfs_pinged to
nfs_keepalive_callback; renamed nfs_timed_out to
nfs_keepalive_timeout; renamed nfs_srvr_port to get_mountd_port;
made ping_buf and ping_len arrays with one element for each
supported nfs version
* amd/amd.h: renamed nfs_srvr_port() to get_mountd_port()
* amd/amfs_host.c (amfs_host_init): ditto
* amd/ops_nfs.c (call_mountd): ditto
Rainer Orth [Wed, 3 Sep 2003 21:08:04 +0000 (21:08 +0000)]
* BUGS: Mention fix for broken Solaris 8 <rpcsvc/autofs_prot.h>
patches.
Erez Zadok [Mon, 1 Sep 2003 06:34:39 +0000 (06:34 +0000)]
* amd/autil.c (strealloc): don't call malloc_verify() unless it
exists.
* configure.in: move "OPTION PROCESSING" section (opt_debug etc.)
after we figure out PROG_CC and other compiler features, because
some of the option processing macros need a compiler to function.
* libamu/xutil.c: don't define variables that won't be used unless
mallinfo() and malloc_verify() exist.
(real_plog): don't call checkup_mem unless
mallocinfo() and malloc_verify() exist.
(checkup_mem): don't define this function unless mallocinfo() and
malloc_verify() exist.
* m4/macros/opt_debug.m4: check for functions malloc_verify and
mallinfo in general libraries and then in libmapmalloc and
libmalloc. These seem to have disappeared in FreeBSD 5.x.
* libamu/xutil.c (dxfree): print pointer using %p
Erez Zadok [Sat, 30 Aug 2003 01:58:14 +0000 (01:58 +0000)]
* configure.in: start 6.1b4-pre officially (belated)
* minor new port: i686-apple-darwin6.6
* Released beta version 6.1b3
Ion Badulescu [Thu, 28 Aug 2003 03:10:34 +0000 (03:10 +0000)]
* conf/autofs/autofs_solaris_v1.c: convert relative targets to
absolute paths when using lofs mounts
* conf/autofs/autofs_solaris_v2_v3.c: ditto
* conf/autofs/autofs_linux.c: ditto
Ion Badulescu [Wed, 27 Aug 2003 19:55:09 +0000 (19:55 +0000)]
* README.autofs: added a paragraph about the resource consumption
of auto maps over autofs
Ion Badulescu [Wed, 27 Aug 2003 16:30:03 +0000 (16:30 +0000)]
* amd/amfs_generic.c (amfs_lookup_one_mntfs): moved the setting of
the MFF_IS_AUTOFS flag from init_mntfs() to
amfs_lookup_one_mntfs(), where it belongs
* amd/mntfs.c (init_mntfs): ditto
Ion Badulescu [Wed, 27 Aug 2003 15:24:31 +0000 (15:24 +0000)]
* amd/ops_nfs.c (got_nfs_fh): make the error EACCES if we are
denied a filehandle by the server (used to be EIO)
Erez Zadok [Wed, 27 Aug 2003 04:57:20 +0000 (04:57 +0000)]
* conf/nfs_prot/nfs_prot_bsdi3.h: support na_uid and na_gid.
Ion Badulescu [Wed, 27 Aug 2003 04:39:36 +0000 (04:39 +0000)]
* conf/autofs/autofs_linux.c (autofs_mount_succeeded): force
daemon-initiated timeouts on autofs filesystems, since apparently
they appear as "always busy" to the kernel-based expiration routine
Ion Badulescu [Tue, 26 Aug 2003 14:17:26 +0000 (14:17 +0000)]
This should fix Nick's problem with relative link targets,
as well as a problem with nfsl that I discovered myself.
* NEWS: updated
* conf/autofs/autofs_linux.h (AUTOFS_LINK_FS_FLAGS): remove
FS_ON_AUTOFS
(AUTOFS_LINKX_FS_FLAGS): ditto
* conf/autofs/autofs_solaris_v1.h (AUTOFS_LINK_FS_FLAGS): remove
FS_ON_AUTOFS
(AUTOFS_LINKX_FS_FLAGS): ditto
* conf/autofs/autofs_solaris_v2_v3.h (AUTOFS_LINK_FS_FLAGS): remove
FS_ON_AUTOFS
(AUTOFS_LINKX_FS_FLAGS): ditto
* amd/amfs_generic.c (amfs_lookup_one_mntfs): don't modify the
original opt_fs, instead store the new mount point for autofs in a
temporary variable and pass it around. Fixes a problem with the
link side of nfsl.
Ion Badulescu [Mon, 25 Aug 2003 23:49:45 +0000 (23:49 +0000)]
This is primarily a speedup change for restarting inherited
filesystems.
* NEWS: updated
* amd/ops_nfs.c (prime_nfs_fhandle_cache): use get_mntfs_wchan to
initialize the fh_wchan member of the cache entry
(prime_nfs_fhandle_cache): use get_mntfs_wchan for the wchan_t
argument of call_mountd()
* amd/map.c (free_map_if_success): use get_mntfs_wchan for the
wchan_t argument of wakeup()
* amd/amfs_nfsx.c (amfs_nfsx_cont): use get_mntfs_wchan for the
wchan_t argument of wakeup_task() and wakeup()
* amd/amfs_host.c (amfs_host_init): use get_mntfs_wchan for the
wchan_t argument of nfs_srvr_port()
* amd/amfs_generic.c (ALL): use get_mntfs_wchan for the wchan_t
argument of sched_task() and wakeup()
(amfs_retry): minor cleanup
(amfs_bgmount): call nfs_quick_reply on failure
* amd/sched.c (get_mntfs_wchan): new function which calls the
member function get_wchan if defined, otherwise returns the mntfs
pointer itself
* amd/amfs_inherit.c (amfs_inherit_get_wchan): new function,
calls get_mntfs_wchan() on the inherited filesystem
* amd/amfs_*.c, amd/ops_*.c: initialize the new get_wchan member
of the ops to 0
* amd/amd.h: new function type vget_wchan
(struct mntfs): new member get_wchan which returns the waiting
channel associated with the mntfs (normally itself)
Ion Badulescu [Fri, 22 Aug 2003 19:54:11 +0000 (19:54 +0000)]
* conf/mount/mount_linux.c (parse_opts): minor cleanup
* conf/autofs/autofs_linux.c (autofs_handle_fdset): added missing
break in case autofs_ptype_expire_multi
Ion Badulescu [Fri, 22 Aug 2003 05:16:10 +0000 (05:16 +0000)]
* conf/autofs/autofs_solaris_v1.h: undefine autofs support if
autofs_args_t cannot be determined (hopefully fixes a reported
IRIX 6.5.4 problem).
* conf/autofs/autofs_solaris_v1.c: wrap entire file in #ifdef
HAVE_FS_AUTOFS / #endif (see above)
* conf/autofs/autofs_linux.h: undefine autofs support if the
necessary header files are not found (fixes a reported RedHat 6.2
Sparc problem).
* conf/autofs/autofs_linux.c: wrap entire file in #ifdef
HAVE_FS_AUTOFS / #endif (see above)
* libamu/mount_fs.c (compute_nfs_args): only use MNT2_NFS_OPT_SOFT
if autoconf detected it (fixes a reported RedHat 6.2 Alpha problem).
* amd/map.c (unmount_mp, unmount_exported): move the code that
changes the fattr from NFLNK to NFDIR from unmount_mp to
unmount_exported, it was causing troubles (ESTALE) after failed
unmounts. This is still very very unclean, but it's the same as the
old 6.0 code.
patch from Nick:
* amd/info_ldap.c (amu_ldap_init): don't try to pass a null
pointer as a string to plog, Solaris (and other OS's) don't like
it and will dump core.
Ion Badulescu [Wed, 13 Aug 2003 19:35:05 +0000 (19:35 +0000)]
This is a cosmetic change only, and doesn't touch any real code.
* amd/amd.h: introduced two new types, wchan_t and opaque_t, as
aliases of voidp. This makes reading the code easier on the eyes. :)
* ALL: replace various instances of voidp with wchan_t and
opaque_t, as appropriate
Ion Badulescu [Wed, 13 Aug 2003 19:29:51 +0000 (19:29 +0000)]
* NEWS, configure.in: bumped version up to 6.1b4-pre
Ion Badulescu [Wed, 13 Aug 2003 19:16:02 +0000 (19:16 +0000)]
* Released beta version 6.1b3
Ion Badulescu [Wed, 13 Aug 2003 16:21:45 +0000 (16:21 +0000)]
* conf/autofs/autofs_linux.c (autofs_mount_fs): HACK: always use
symlinks for host mounts; assorted fixes for the symlink mode
Ion Badulescu [Tue, 5 Aug 2003 04:54:09 +0000 (04:54 +0000)]
* conf/umount/umount_default.c (umount_fs): enable space hack
handling for autofs v1
Ion Badulescu [Tue, 5 Aug 2003 04:27:44 +0000 (04:27 +0000)]
* amd/map.c (get_first_exported_ap, get_next_exported_ap): new
functions that facilitate iterating through the list of
mountpoints
* amd/amfs_union.c (amfs_union_mounted): use get_first_exported_ap
and get_next_exported_ap
* conf/autofs/autofs_solaris_v2_v3.c (autofs_unmount_2_req): ditto
Erez Zadok [Tue, 5 Aug 2003 03:32:06 +0000 (03:32 +0000)]
* configure.in: check if system stores mount tables in files
(usually in /etc), and configure couldn't find a definition for
either struct mntent or struct mnttab. If so, abort configure
because this could be a new/misconfigured system, or a bug in
am-utils.
Ion Badulescu [Mon, 4 Aug 2003 23:51:58 +0000 (23:51 +0000)]
* conf/autofs/autofs_solaris_v2_v3.c (autofs_umount_fs): fix
compile warning
Ion Badulescu [Mon, 4 Aug 2003 20:49:57 +0000 (20:49 +0000)]
Executive summary: sublinks might work, not yet well-tested.
* conf/autofs/autofs_linux.c (autofs_mount_fs): don't call
ops->mount_fs() for an already mounted filesystem
(autofs_umount_fs): only call ops->umount_fs() if we're holding
the last reference to the filesystem
* conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): ditto
(autofs_umount_fs): ditto
* conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_fs): ditto
(autofs_umount_fs): ditto
* amd/amfs_generic.c (amfs_lookup_mntfs): remove the shortcut for
already-mounted filesystems
(amfs_cont): only release the autofs_fh if the filesystem is not
mounted; add another comment about the NFS_SCALEDOWN hack
(amfs_bgmount): if the mntfs is already mounted, skip just the
filesystem initialization, but do call mount_node()
* amd/map.c (mount_node): always call autofs_mount_fs(), but only
call ops->mount_fs() if the mntfs is not yet mounted
(unmount_node): always call autofs_umount_fs(), but only call
ops->umount_fs() if the refcount on the mntfs equals 1.
Erez Zadok [Sat, 2 Aug 2003 18:56:30 +0000 (18:56 +0000)]
* conf/nfs_prot/nfs_prot_openbsd.h: include <ufs/ufs/ufsmount.h>
here with the proper workarounds for openbsd3.3 (define MAXQUOTAS,
define dummy struct netexport, and include <ufs/ufs/extattr.h>
wrapped in _KERNEL).
* conf/nfs_prot/nfs_prot_freebsd3.h: include <ufs/ufs/ufsmount.h>
here with the proper workarounds for freebsd5.1 (define dummy
struct ufs_extattr_per_mount).
* conf/nfs_prot/nfs_prot_bsdi2.h: include <ufs/ufs/ufsmount.h>
here with the proper workarounds for bsdi2 (define MAXQUOTAS and
dummy struct netexport).
* include/mount_headers1.h: do not include <ufs/ufs/ufsmount.h>
here, b/c every *BSD system has some sort of problem in including
this header file, which includes ugly workarounds. Inclusion of
this header was already moved out of am_defs.h (used to compile
amd), but we forgot to move it out of mount_headers1.h (used to
configure). The specific inclusion of ufsmount.h is now in the OS
specific nfs_prot.h file.
* configure.in: if configure could not find any definition for
"struct nfs_args", abort configure with an explanatory message.
There's no point in continuing, as this could be a system bug,
buggy am-utils, or a new system to which am-utils wasn't ported to
yet.
* minor new port: i386-pc-solaris2.9
Ion Badulescu [Fri, 1 Aug 2003 21:22:39 +0000 (21:22 +0000)]
* doc/am-utils.texi (NFS-Link Filesystem): make the documentation
match the code (as well as basic logic operations: the negation of
'a or b' is 'not a and not b', not 'not a or not b')
Erez Zadok [Fri, 1 Aug 2003 20:31:16 +0000 (20:31 +0000)]
* minor new port: i386-unknown-openbsd3.3.
* m4/macros/check_libwrap_severity.m4: new macro to check if
libwrap includes the integer variables deny_severity and
allow_severity, since some libwrap implementations do and others
don't. The test tries to compile and run a simple empty main()
program, then the same program while defining these two variables:
comparing the results of the two tests, we can tell whether we
should define NEED_LIBWRAP_SEVERITY_VARIABLES.
* Makefile.am (EXTRA_DIST_M4): distribute new macro
check_libwrap_severity.m4.
* m4/macros/header_templates.m4: template for HAVE_LIBWRAP (which
we must define explicitly since we've overridden the
action-if-found in AC_CHECK_LIB(wrap). Also template for
NEED_LIBWRAP_SEVERITY_VARIABLES.
* amd/amq_svc.c: if libwrap does not include the severity
variables, then define and initialize them here.
* amd/Makefile.am (LIBS): explicitly include @WRAPLIB@ only for
Amd binary. Other am-utils binaries don't need -lwrap.
* configure.in: if libwrap is found, only define it in @WRAPLIB@,
so we don't automatically link every am-utils binary with -lwrap.
Run test for existence of severity variables in libwrap.
* conf/nfs_prot/nfs_prot_openbsd.h: define struct fattr fields uid
and gid.
* configure.in: move check for AC_CHECK_LIB(libwrap) as far down
as possible because on modern tcpwrapper systems such as openbsd,
the caller must provide two symbols: deny_severity and
allow_severity, which determine the logging level of rejected and
requested requests, respectively. If this check happens too
early, then $LIBS includes -lwrap, which causes many subsequent
tests that need to run a compiled program to fail with missing
symbols.
* m4/macros/header_templates.m4: fix typo in template for
readdirplus.
* include/mount_headers1.h: include <ufs/ufs/extattr.h> before
<ufs/ufs/ufsmount.h> to provide definitions of struct
ufs_extattr_per_mount (OpenBSD 3.3).
* configure.in: check for <ufs/ufs/extattr.h> (OpenBSD 3.3)
* minor new port: i386-unknown-netbsdelf1.6.1.
* configure.in: save state before system-specific tests are run.
* m4/macros/check_gnu_getopt.m4: do NOT abort ./configure just
because the compiled test program failed to run.
Ion Badulescu [Fri, 1 Aug 2003 19:16:55 +0000 (19:16 +0000)]
Solaris autofs v1 works again, sublinks are still broken. The
mkdir/rmdir handling has been cleaned up.
* NEWS, README.autofs: updated
* libamu/mount_fs.c (mount_fs): added support for the space hack
* doc/am-utils.texi: mention than UFS/XFS/EFS/CacheFS filesystems
are not expired by default; correct and expand the section
describing the program filesystem
* conf/autofs/autofs_solaris_v2_v3.h (AUTOFS_*_FS_FLAGS): add
FS_ON_AUTOFS for supported filesystems
* conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_fs): call
mf->mount_fs()
(autofs_umount_fs): call mf->umount_fs()
* conf/autofs/autofs_solaris_v1.h (autofs_strdup_space_hack): add
prototype for malloc()
(AUTOFS_*_FS_FLAGS): lose the FS_MKMNT flags, add FS_ON_AUTOFS for
supported filesystems
* conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): add support
for the space hack; call mf->mount_fs()
(autofs_umount_fs): add support for the space hack; call
mf->umount_fs()
(autofs_mount_succeeded): add support for the space hack
* conf/autofs/autofs_linux.h: lose the FS_MKMNT flags, add
FS_ON_AUTOFS for supported filesystems
* conf/autofs/autofs_linux.c (AUTOFS_MAX_VERSION): define to
AUTOFS_MAX_PROTO_VERSION instead of hardcoding to 4
(autofs_mounted): host mounts are now supported on all autofs
versions, remove the hack to turn it off on v3
(autofs_mount_fs): call mf->mount_fs(), create/remove mountpoints
as needed
(autofs_umount_fs): call mf->umount_fs(), remove mountpoints on
success
(ALL): use '#if AUTOFS_MAX_VERSION >= 4' instead of
'#ifdef autofs_ptype_expire_multi'
* amd/map.c (mount_node): autofs_mount_fs() now calls
mf->mount_fs() internally
(unmount_node): autofs_umount_fs() now calls mf->umount_fs()
internally
* amd/autil.c (am_mounted): minor cleanup
* amd/amfs_program.c (amfs_program_ops): added FS_MKMNT to
nfs_fs_flags
* amd/amfs_generic.c (amfs_lookup_one_mntfs): use the FS_ON_AUTOFS
flag instead of hardcoding filesystem types
(amfs_bgmount): better mount_type logging
* amd/amd.h (FS_ON_AUTOFS): new flag which tells the code that
this filesystem can be mounted directly onto an autofs mountpoint
Ion Badulescu [Thu, 31 Jul 2003 19:22:24 +0000 (19:22 +0000)]
* amd/amfs_nfsl.c (amfs_nfsl_umount): fix copy&paste error (was
calling amfs_link_ops.umount_fs() for NFS filesystems
(amfs_nfsl_umounted): remove rmdirs() hack, it is now handled
properly elsewhere
(amfs_nfsl_ffserver): remove FS_MKMNT from mf_fsflags if we're
using link (not NFS)
Rainer Orth [Thu, 31 Jul 2003 16:19:12 +0000 (16:19 +0000)]
* README.autofs: Correct IRIX spelling.
AutoFS support exists only on IRIX 6.
Update IRIX 6 status.
Allow AutoFS V1 support to compile on IRIX 6.
* conf/autofs/autofs_solaris_v1.c (autofs_mount_1_req): Add
SVCXPRT * arg.
Remove superfluous \n from dlog messages.
(autofs_unmount_1_req): Likewise.
Switch to get_exported_ap.
(autofs_program_1): Invoke handlers with additional transp arg.
* conf/autofs/autofs_solaris_v1.h: Use autofs_args_t to define
autofs_fh_t, struct auto_args doesn't exist on IRIX 6.
* conf/mount/mount_irix6.c (mount_irix) [HAVE_FS_AUTOFS]: Support
AutoFS mounts.
[HAVE_FS_LOFS]: Likewise for lofs mounts.
* conf/nfs_prot/nfs_prot_irix6.h (AUTOFS_CONFTYPE): Define.
Don't disable AutoFS support any more.
* conf/transp/transp_sockets.c [HAVE_FS_AUTOFS && AUTOFS_PROG]
(register_autofs_service): Define autofs_xprt.
* m4/macros/check_autofs_style.m4 (AMU_CHECK_AUTOFS_STYLE): Update
Solaris 8+ comment to mention AutoFS V4.
(irix6*): Enable AutoFS V1 support on IRIX 6.
Erez Zadok [Wed, 30 Jul 2003 23:29:34 +0000 (23:29 +0000)]
* NEWS, doc/am-utils.texi, scripts/amd.conf.5: revised explanation
of autofs_use_lofs.
Rainer Orth [Wed, 30 Jul 2003 16:43:17 +0000 (16:43 +0000)]
* amd/ops_efs.c (efs_mount): Replace on_autofs arg with
MFF_ON_AUTOFS flag.
(efs_umount): Likewise.
Erez Zadok [Wed, 30 Jul 2003 15:57:19 +0000 (15:57 +0000)]
fix umount_bsd44
Ion Badulescu [Wed, 30 Jul 2003 06:56:03 +0000 (06:56 +0000)]
* ALL: renamed MFF_AUTOFS to MFF_IS_AUTOFS; removed mf_real_mount
hack; pass a new on_autofs argument to mount/umount function,
based on the MFF_ON_AUTOFS mntfs flag
* NEWS, README.autofs: updated
* scripts/amd.conf.5: document new option autofs_use_lofs
* scripts/amd.conf-sample (autofs_use_lofs): document new option
* m4/macros/check_autofs_style.m4 (am_utils_link_files): symlink
the autofs header as amu_autofs_prot.h instead of slurping it into
aux_conf.h
* libamu/mount_fs.c (mount_fs): removed old stub, renamed
mount_fs2 to mount_fs, added new argument on_autofs
* doc/am-utils.texi (Direct Automount Filesystem): document
problems with nfs direct mounts on modern kernels, document good
autofs support for direct mounts on Solaris
(autofs_use_lofs Parameter): document this new option
(browsable_dirs Parameter): note that mount storms are avoided
when using autofs
* conf/umount/umount_bsd44.c (umount_fs): removed old stub,
renamed umount_fs2 to umount_fs
* conf/umount/umount_osf.c (umount_fs): removed old stub,
renamed umount_fs2 to umount_fs, added new argument on_autofs
* conf/umount/umount_default.c (umount_fs): ditto as above; return
an error on ENOENT instead of faking success
* conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req): much
simplified, now only consults the map for existance of the key and
returns success if key is found
(autofs_mount_2_req): request symlinks if CFM_AUTOFS_USE_LOFS is
not on;
(autofs_mount_2_free): implemented
(autofs_unmount_2_req): use get_exported_ap() instead of
referencing export_ap directly
(autofs_mount_succeeded): remove code for replying to lookup
requests, now only mount requests can end up here
(autofs_mount_failed): ditto
* conf/autofs/autofs_solaris_v1.h (AUTOFS_HOST_FS_FLAGS): removed
FS_AUTOFS
(AUTOFS_DIRECT_FS_FLAGS): added FS_DIRECTORY
* conf/autofs/autofs_solaris_v2_v3.h (AUTOFS_HOST_FS_FLAGS): removed
FS_AUTOFS
(AUTOFS_DIRECT_FS_FLAGS): added FS_IRECTORY
(AUTOFS_LINK_FS_FLAGS): added FS_MBACKGROUND
* conf/autofs/autofs_linux.c (autofs_bind_umount): new function,
factored out of autofs_umount_fs()
(autofs_mount_fs): renamed from autofs_link_mount() and expanded
to deal with filesystems mounted indirectly (via lofs/bind
mounts) on autofs and to observe the new CFM_AUTOFS_USE_LOFS flag
(autofs_umount_fs): ditto, from autofs_link_umount()
* conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): ditto
* (autofs_umount_fs): ditto
* conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_fs): ditto
* (autofs_umount_fs): ditto
* amd/opts.c: made fs_static static
* amd/ops_nfs.c: made nfs_init, nfs_match, nfs_mount, nfs_umount
and nfs_umounted static
(mount_nfs_fh): removed unnecessary arguments
* amd/ops_cachefs.c (cachefs_ops): use amfs_generic_find_srvr for
the ffserver method, because using NULL causes problems
* amd/ops_cdfs.c (cdfs_ops): ditto
* amd/ops_efs.c (efs_ops): ditto
* amd/ops_lofs.c (lofs_ops): ditto
* amd/ops_pcfs.c (pcfs_ops): ditto
* amd/ops_ufs.c (ufs_ops): ditto
* amd/ops_xfs.c (xfs_ops): ditto
* amd/nfs_subr.c (fh_to_mp3, fh_to_mp, mp_to_fh): moved here from
map.c
* amd/nfs_start.c: use get_exported_ap() instead of referencing
exported_ap directly
* amd/mntfs.c (locate_mntfs): new function, factored out of
find_mntfs
(locate_mntfs): special-case FS_DIRECT filesystems: for direct
mounts we will have two filesystems mounted on the same m/p
(realloc_mntfs): removed the old EZK hack for failovers
* amd/map.c (get_exported_ap): new function that returns an
exported_ap member by its index
(root_node,exported_ap,exported_ap_size,first_free_map,last_used_map):
made static
(fh_to_mp3, fh_to_mp, mp_to_fh): moved to nfs_subr.c
(get_root_ap): removed unused second argument
(unmount_mp): moved the mk_fattr(NFDIR) here from umount_exported
to catch more cases
(mount_node): call autofs_mount_fs after ops->mount_fs for autofs
nodes
(unmount_node): call autofs_umount_fs before ops->umount_fs for
autofs nodes
* amd/conf.c: new global option "autofs_use_lofs", takes yes/no
values
* amd/autil.c (amfs_mount): take an extra argument (mf)
(amfs_mount): call autofs_compute_mount_flags() for mounts
directly on autofs m/p
(am_unmounted): document and avoid the race between am_umounted()
at shutdown time and amfs_cont()
* amd/amfs_union.c (amfs_union_mounted): use get_exported_ap()
instead of referencing internal map variables directly
* amd/amq_subr.c (amqproc_export_1_svc): ditto
* amd/amfs_toplvl.c (amfs_toplvl_ops): removed FS_AUTOFS from
nfs_fs_flags
(amfs_toplvl_mount): pass extra argument (mf) to amfs_mount()
(amfs_toplvl_umount): refuse to attempt the unmount if the
mountpoint is not a directory
* amd/amfs_nfsx.c (amfs_nfsx_init): propagate the MFF_ON_AUTOFS
flag into the nfs f/s at the bottom of the stack
* amd/amfs_nfsl.c: call nfs and link member functions through
their respective am_ops structures, not directly
* amd/amfs_linkx.c (amfs_linkx_umount): new static stub
* amd/amfs_link.c: made amfs_link_mount() and amfs_link_umount()
static functions
(amfs_link_mount): removed call to autofs_link_mount()
(amfs_link_umount): removed call to autofs_link_umount()
* amd/amfs_host.c (amfs_host_ops): removed FS_AUTOFS from
nfs_fs_flags
(do_mount): removed superfluous function arguments
* amd/amfs_direct.c (amfs_direct_ops): removed FS_AUTOFS from
nfs_fs_flags
* amd/amfs_auto.c (amfs_auto_ops): removed FS_AUTOFS from
nfs_fs_flags
(amfs_auto_mount): pass extra argument (mf) to amfs_mount
* amd/amd.h (CFM_AUTOFS_USE_LOFS): new flag, tells amd whether to
use lofs-mounts or symlinks when mounting on autofs
(CFM_DEFAULT_FLAGS): added CFM_AUTOFS_USE_LOFS
(VLOOK_LOOKUP): new flag, will merely check if a key exists
(MFF_IS_AUTOFS): renamed from MFF_AUTOFS
(MFF_ON_AUTOFS): new flag, tells amd if a f/s is mounted directly
on an autofs m/p, or indirectly via a lofs mount/symlink
(fh_to_mp2): macro expanded throughout the code and removed
(mntfs): removed mf_real_mount hack
(autofs_mount_fs): renamed from autofs_link_mount
(autofs_umount_fs): renamed from autofs_link_umount
(mount_lofs): exposed
various other cleanups, functions/variables made static and removed
* aux_conf.h.in: removed @am_utils_autofs_style@, it is now
included directly as amu_autofs_prot.h
Erez Zadok [Fri, 25 Jul 2003 00:48:13 +0000 (00:48 +0000)]
* doc/am-utils.texi, scripts/amd.conf.5: document that
use_tcpwrappers is "yes" by default.
* amd/amd.c (init_global_options): set default global options.
* amd/amd.h (CFM_DEFAULT_FLAGS): define default options which
are always on (plock and use_tcpwrappers).
* scripts/amd.conf-sample: reorganize values per option so default
one is listed first.
Erez Zadok [Thu, 24 Jul 2003 00:07:49 +0000 (00:07 +0000)]
* tasks: trim old stuff. Discuss new parser.
Erez Zadok [Wed, 23 Jul 2003 23:35:44 +0000 (23:35 +0000)]
* amd/conf.c (set_conf_kv): initialize the very first map in conf
file from global defaults. Bug fix which was introduced after
conf.c code restructuring.
Erez Zadok [Fri, 18 Jul 2003 22:25:09 +0000 (22:25 +0000)]
* m4/macros/header_templates.m4: template for
HAVE_EXTERN_HOSTS_CTL.
* include/am_defs.h: define extern for hosts_ctl() if needed.
* configure.in (AMU_CHECK_EXTERNS): check for extern definition
for libwrap's hosts_ctl() (FreeBSD 5.0 doesn't have it).
* m4/macros/check_extern.m4: include tcpd.h if it and libwrap exist.
Erez Zadok [Fri, 18 Jul 2003 21:38:00 +0000 (21:38 +0000)]
* hlfsd/hlfsd.h: redundant extern for mboxfile removed.
Erez Zadok [Fri, 18 Jul 2003 21:31:54 +0000 (21:31 +0000)]
* amd/amq_svc.c (amq_program_1): only check for tcpwrappers if
amd.conf global option use_tcpwrappers=yes.
Erez Zadok [Fri, 18 Jul 2003 21:21:03 +0000 (21:21 +0000)]
* scripts/amd.conf.5, scripts/amd.conf-sample (use_tcpwrappers),
doc/am-utils.texi (use_tcpwrappers Parameter): document new
amd.conf global option.
* amd/conf.c (gopt_use_tcpwrappers): define a new amd.conf global
option called use_tcpwrappers ("no" by default).
* amd/amq_svc.c (amqsvc_is_client_allowed): include tcpd/libwrap
code only if both libwrap and tcpd.h exist.
(amq_program_1): log warning when an Amq service client is denied,
and a debug message when a client is allowed.
* amd/amd.h (CFM_USE_TCPWRAPPERS): define [global] amd.conf flag.
(AMD_SERVICE_NAME): define AMD_SERVICE_NAME for tcpd/libwrap.
* include/am_defs.h: include tcpd.h if available and libwrap
available.
* configure.in: check for tcpd.h.
* amq/amq.8: Document the libwrap/amd behavior.
* amd/amq_svc.c (libwrap_check_client): New function to validate
an amq connection with libwrap.
(amq_program_1): Call libwrap_check_client() and close the
connection if libwrap does not allow it.
* configure.in: Check for the tcp wrappers library.
Erez Zadok [Fri, 18 Jul 2003 15:17:35 +0000 (15:17 +0000)]
* scripts/expn.1, amd/amd.8 amq/amq.8, fixmount/fixmount.8,
hlfsd/hlfsd.8, scripts/expn.1: remove ".PD 0" nroff command
because it removes useful spaces in between paragraphs. Based on
smaller patch from Philippe Troin <phil@fifi.org>.
Erez Zadok [Fri, 18 Jul 2003 00:49:17 +0000 (00:49 +0000)]
* amd/amq_subr.c (amqproc_mnttree_1_svc, amqproc_stats_1_svc,
amqproc_getmntfs_1_svc, xdr_amq_mount_tree), hlfsd/hlfsd.c
(hlfsd_init): cast pointers to void* before casting them to
another type, to avoid gcc-3.3 -Wall warnings.
Erez Zadok [Fri, 18 Jul 2003 00:44:19 +0000 (00:44 +0000)]
rename fsinfo function log() to fsi_log(), to
avoid conflict with builtin function in gcc-3.3.
Rainer Orth [Wed, 16 Jul 2003 23:47:48 +0000 (23:47 +0000)]
* scripts/amd.conf-sample: Remove obsolete comment.
Erez Zadok [Wed, 16 Jul 2003 23:17:20 +0000 (23:17 +0000)]
* doc/am-utils.texi (map_defaults Parameter): document new
map_defaults option.
* scripts/amd.conf.5: document new map_defaults option.
* scripts/amd.conf-sample (map_type): show examples of new
map_defaults option.
* amd/mapc.c (mapc_create): initialize mnt_map->cfm field to NULL.
* amd/get_args.c (get_args): call process_all_regular_maps().
* amd/conf.c: keep head and tail of cfm list.
(init_cf_map): reworked reset_cf_map. This one doesn't reset a
globaly reused cfm, but rather just inherits [global] options.
(set_conf_kv): just store global/map options without actually
creating any mnt_map's. Essentially, we now parse the whole
amd.conf file, and then try to process the maps one at a time.
(process_one_regular_map): new function to process one map, just
renamed from process_regular_map.
(process_all_regular_maps): new exported function to process all
maps. No need for hacky process_last_map().
(find_cf_map): new exported function to return a cf_map_t given a
map's mount point (e.g., /home or /net).
* amd/amfs_generic.c (amfs_parse_defaults): find if amd.conf
specificed a map_defaults for a given map. If so, use that
instead of the /defaults that came from the map itself. Also
restructure code a bit so it's not one huge long "if" statement.
HACK ALERT: there's no easy way to find out what the map mount
point is at this point, so I am forced to initialize the
mnt_map->cfm field here for the first time, upon the very first
search for a /defaults entry in this map. This initialization is
much better done in mapc_create(), but it's impossible to do that
there with the current code structure.
* amd/amd.h: struct cf_map becomes linked list. struct mnt_map
includes pointer to cf_map_t, amd.conf defaults and options for a
given map. extern cleanups.
Ion Badulescu [Wed, 16 Jul 2003 14:05:52 +0000 (14:05 +0000)]
document brokenness of host maps with autofs on non-Linux platforms
Erez Zadok [Wed, 16 Jul 2003 14:02:51 +0000 (14:02 +0000)]
check for h/w failures in file maps
Ion Badulescu [Wed, 16 Jul 2003 13:39:51 +0000 (13:39 +0000)]
fix minor grammar mistake of mine
Rainer Orth [Wed, 16 Jul 2003 13:23:20 +0000 (13:23 +0000)]
* BUGS (Solaris 8): Update patch revisions, mention old autofs
patches, fix filenames and rpcgen command.
Erez Zadok [Tue, 15 Jul 2003 22:11:01 +0000 (22:11 +0000)]
* amd/info_hesiod.c (hesiod_search): It's not possible to have a
key such as ".access" in a hesiod map as that would imply a null
node in the DNS tree. So a lookup for such a key must clearly
fail. With the current info_hesiod.c it does (after calling
hes{,iod}_resolve) but returns an error that confuses some
programs - eg. apache. This patch shortcuts the process and just
returns ENOENT for any key starting with ".". Patch submitted by
by Mark Davies <mark@mcs.vuw.ac.nz>.
* include/am_utils.h (CALLOC): redefine macro to use xzalloc, not
fsinfo's own xcalloc.
* fsinfo/fsi_util.c (xcalloc): remove redundant function.
* doc/Makefile.am (install-html): support newer texi2html 4.0
* m4/macros/check_map_funcs.m4:
* incipient (non-functional) AIX autofs support
because it doesn't exist on Solaris 9's latest ldap libraries.
* libamu/xutil.c: remove __attribute__ format_arg statement for
AC_MSG_NOTICE
* aux/macros/os_cflags.m4 (irix6*): Enforce N32 ABI/mips3 ISA with cc.
foofs_readlink, foofs_ffserver): Likewise.
* conf/autofs/autofs_default.[ch]: New files, empty.
* libamu/xdr_func.c (xdr_groupnode, xdr_exportnode): change
definition. Report from Ahmon Dancy <dancy@franz.com>.
not its parent, as it's needed for clean-up;
they are evaluated and show up in Solaris 8 in-kernel mnttab.
option.
objects.
format.
formats.
format.
format.
format.
format.
too.
* amd/get_args.c (get_args):
system supports syslog and/or syslog facilities. Patch from
* NFS V3 now works under Irix5, thanks to patches from
Also no longer need to include libc explicitly.
better. Also run bsd44 and irix style ps programs.
children.
NFS protocol headers to use.
Erez Zadok [Tue, 15 Jul 2003 18:56:12 +0000 (18:56 +0000)]
confirm builds with Solaris yacc
Erez Zadok [Mon, 14 Jul 2003 15:01:57 +0000 (15:01 +0000)]
xlatecookie mnttab option