Christos Zoulas [Tue, 30 Aug 2022 15:16:34 +0000 (11:16 -0400)]
Change times in amq RPCs to be longlong_t instead
of long, to avoid 2038 issue on 32 bit machines.
This makes the amq RPC incompatible with older versions
of amd. It is too much work to provide backwards compatibility
for little benefit, but it can be done.
Fix core-dump in amq -i.
zoulasc [Thu, 12 May 2016 14:21:55 +0000 (10:21 -0400)]
Update the ctime of the directory too, since it changed. From Mark Davies
zoulasc [Fri, 8 Apr 2016 19:29:33 +0000 (15:29 -0400)]
* Make hasmntval() return an 0 on error, 1 on success and
place the value in an argument. Update all users and
check properly for errors. Get rid of hasmntvalerr().
* Add hasmntvaldelim() which takes a string delimiter. This
is now used to chop vers=4.1 to 4, so that we can parse the
version correctly (we don't care about the .1 part yet)
zoulasc [Thu, 31 Mar 2016 18:57:29 +0000 (14:57 -0400)]
Today's change
zoulasc [Thu, 31 Mar 2016 18:56:53 +0000 (14:56 -0400)]
Fix SEGV on amq entries that print times.
zoulasc [Thu, 10 Mar 2016 22:51:52 +0000 (17:51 -0500)]
Today's RPC ping change.
zoulasc [Thu, 10 Mar 2016 22:50:34 +0000 (17:50 -0500)]
- There is really no ti-rpc nfsv4, so don't send one; instead send a v3 for now.
zoulasc [Wed, 9 Mar 2016 04:33:38 +0000 (23:33 -0500)]
Today's changes
zoulasc [Wed, 9 Mar 2016 04:31:26 +0000 (23:31 -0500)]
- add more debugging in the unmount path
- if the EXPIRE_MULTI call fails, with EAGAIN, fail back to the EXPIRE call
seems to fix unmounting with nfsv4 volumes.
zoulasc [Wed, 9 Mar 2016 04:30:38 +0000 (23:30 -0500)]
Improve debugging for unmounting.
zoulasc [Mon, 7 Mar 2016 23:09:18 +0000 (18:09 -0500)]
Mention today's changes.
zoulasc [Mon, 7 Mar 2016 23:05:07 +0000 (18:05 -0500)]
Default to "string" mount options for NFSv4 because the kernel does not
properly handle the auth_flavours[] field. Tested with nfs-utils-1.3.3 and
it always defaults to krb5i if string options are not used. Please note
that the "rw" option is not recognized by the linux kernel.
zoulasc [Mon, 7 Mar 2016 23:03:19 +0000 (18:03 -0500)]
1. Add the "sys" alias for "unix", as well as "none", and "null"
2. Properly handle multiple flavors, although the linux kernel does not (yet?)
3. Don't add the "sec=" field, because it is already there.
zoulasc [Thu, 3 Mar 2016 18:36:41 +0000 (13:36 -0500)]
Today's change summary.
zoulasc [Thu, 3 Mar 2016 18:31:33 +0000 (13:31 -0500)]
The definition of the wcc post op attributes should be am_fattr3 not
am_wcc_attr in unlink3_or_rmdir3().
From: Ian Kent
zoulasc [Thu, 3 Mar 2016 18:30:29 +0000 (13:30 -0500)]
The nfs_quick_reply() functionality relies on taking a copy of the
current transport for later use.
The problem with this is the context of the RPC message is kept in
the transport and if any RPC message arrives before nfs_quick_reply()
is called that context will be corrupted.
So add a function get_nfs_xprt() to replace the current transport
with a new one returning the passed in transort so nfs_quick_reply()
can use it later.
A function put_nfs_xprt() is also added (although not really needed
since it just destroys the now unused transport) for completeness.
From: Ian Kent
zoulasc [Thu, 3 Mar 2016 18:29:52 +0000 (13:29 -0500)]
The NFS v2 internal server uses several validation checks for each
RPC request it receives, also add this validation for the NFS v3
internal server.
From Ian Kent
zoulasc [Thu, 3 Mar 2016 18:28:20 +0000 (13:28 -0500)]
The implementation of the NFS v3 server does not use the hack needed
by the nfs_quick_reply() function.
Now that saving the current transport for later use by nfs_quick_reply()
avoids concurrency races it should be ok to use it.
From: Ian Kent
zoulasc [Thu, 3 Mar 2016 18:24:10 +0000 (13:24 -0500)]
The nfs_quick_reply() function needs to know the current RPC transport
outside of the NFS LOOKUP method call. It needs this to reply to the
NFS LOOKUP call that initiated the mount.
Now there are functions that avoid transport corruption if another
request comes in during the backgroud mount make nfs_quick_reply()
use them.
From: Ian Kent
zoulasc [Thu, 3 Mar 2016 18:21:13 +0000 (13:21 -0500)]
The nfs_quick_reply() functionality relies on taking a copy of the
current transport for later use.
The problem with this is the context of the RPC message is kept in
the transport and if any RPC message arrives before nfs_quick_reply()
is called that context will be corrupted.
So add a function get_nfs_xprt() to replace the current transport
with a new one returning the passed in transort so nfs_quick_reply()
can use it later.
A function put_nfs_xprt() is also added (although not really needed
since it just destroys the now unused transport) for completeness.
From: Ian Kent
zoulasc [Thu, 3 Mar 2016 18:18:21 +0000 (13:18 -0500)]
Recent Linux NFS uses a simulated attibute cache change detection
method based on ctime. Consequenty the amd use of mtime for this
doesn't work properly for some kernel versions.
The problem seen with some kernel versions is a failure to recognize
umounts.
Updating the parent ctime in step with mtime during umount appears
to fix the problem.
From: Ian Kent
zoulasc [Fri, 22 Jan 2016 15:21:46 +0000 (10:21 -0500)]
today's fixes
zoulasc [Fri, 22 Jan 2016 15:20:21 +0000 (10:20 -0500)]
The function unlink3_or_rmdir3() is called by both NFSv3 remove and
rmdir methods. Both these methods require post op wcc attributes
to be returned but unlink3_or_rmdir3() was returning only the pre op
wcc attributes. (Ian Kent)
zoulasc [Fri, 22 Jan 2016 15:18:52 +0000 (10:18 -0500)]
The NFSv3 readdir method is expected to return the attributes of the
directory being read for both the success and failure cases. (Ian Kent)
zoulasc [Fri, 22 Jan 2016 15:16:31 +0000 (10:16 -0500)]
The NFSv3 lookup method, which returns attributes for the directory
containing the object to be looked up, used incorrect mount point
attributes. This was causing unusual file system object visibility
problems. (Ian Kent)
zoulasc [Fri, 22 Jan 2016 15:12:52 +0000 (10:12 -0500)]
When the NFSv3 access method is called and there is no correspoding
mount point for the path we requested, we need to return ESTALE so
that the kernel will then perform an NFSv3 lookup and the mount point
will be re-mounted.
If there is no map entry to mount, the NFSv3 lookup method will
return the failure.
(Ian Kent)
zoulasc [Fri, 22 Jan 2016 15:12:00 +0000 (10:12 -0500)]
Add log trace print to NFSv3 readdirplus for debugging purposes (Ian Kent)
zoulasc [Thu, 30 Apr 2015 18:24:39 +0000 (14:24 -0400)]
Fix nfs args setting code (raven at the maw dot net)
Christos Zoulas [Thu, 22 Jan 2015 04:28:46 +0000 (23:28 -0500)]
don't use logical && when & is meant
Christos Zoulas [Thu, 22 Jan 2015 04:28:33 +0000 (23:28 -0500)]
make sure variables are initialized
Christos Zoulas [Sun, 18 Jan 2015 23:03:37 +0000 (18:03 -0500)]
32 bit fixes
Christos Zoulas [Sat, 17 Jan 2015 17:45:22 +0000 (12:45 -0500)]
remove set but not used variable
Christos Zoulas [Sat, 17 Jan 2015 17:43:32 +0000 (12:43 -0500)]
remove unused function
Christos Zoulas [Sat, 17 Jan 2015 17:42:55 +0000 (12:42 -0500)]
remove set but not used variable
Christos Zoulas [Sat, 17 Jan 2015 17:29:03 +0000 (12:29 -0500)]
remove set but not used variable
Christos Zoulas [Sat, 17 Jan 2015 17:27:56 +0000 (12:27 -0500)]
uid_t might be a different size than unsigned int, so XXX: truncate.
Christos Zoulas [Sat, 17 Jan 2015 17:21:24 +0000 (12:21 -0500)]
print_nfs_common_args() is only needed with DEBUG
Christos Zoulas [Sat, 17 Jan 2015 14:24:30 +0000 (09:24 -0500)]
Move libtool macro functions from m4/macros to m4 and delete
the repository copies. Makes am-utils work with libtool-2.4.4
and fixes the serial number warnings (raven at themaw.net)
Erez Zadok [Thu, 30 Oct 2014 15:03:30 +0000 (11:03 -0400)]
bootstrap and release 6.2
Christos Zoulas [Tue, 28 Oct 2014 18:24:41 +0000 (14:24 -0400)]
remove ylwrap patching
Christos Zoulas [Tue, 28 Oct 2014 18:24:31 +0000 (14:24 -0400)]
call it 6.2
Christos Zoulas [Tue, 28 Oct 2014 18:23:52 +0000 (14:23 -0400)]
call it 6.2
Christos Zoulas [Tue, 28 Oct 2014 18:23:19 +0000 (14:23 -0400)]
welcome to 6.2
Christos Zoulas [Tue, 28 Oct 2014 18:23:09 +0000 (14:23 -0400)]
extra files
Christos Zoulas [Tue, 28 Oct 2014 18:22:42 +0000 (14:22 -0400)]
Use our own ylwrap.
Christos Zoulas [Tue, 28 Oct 2014 18:22:05 +0000 (14:22 -0400)]
local copy instead of patching
zoulasc [Fri, 5 Sep 2014 09:56:16 +0000 (05:56 -0400)]
factor out the size check for both readdir methods (raven at themaw dot net)
zoulasc [Wed, 3 Sep 2014 13:04:04 +0000 (09:04 -0400)]
Configure test for 64 bit xdr quad function (Ian Kent)
zoulasc [Mon, 1 Sep 2014 08:19:43 +0000 (04:19 -0400)]
From Ian Kent (raven at themaw) dot net:
In amfs_mount() the function get_root_nfs_fh() is assumed to return an
NFSv2 handle but, if nfs_dispatcher != 2 it will write an NFSv3 handle
to the NFSv2 structure, possibly overflowing the variable.
Christos Zoulas [Sun, 20 Jul 2014 19:27:24 +0000 (15:27 -0400)]
Today's change
Christos Zoulas [Sun, 20 Jul 2014 19:26:31 +0000 (15:26 -0400)]
more debugging
Christos Zoulas [Sun, 20 Jul 2014 19:26:13 +0000 (15:26 -0400)]
more debugging, fix access
Christos Zoulas [Sun, 20 Jul 2014 14:55:33 +0000 (10:55 -0400)]
fix debugging string truncation
Christos Zoulas [Sun, 20 Jul 2014 09:59:41 +0000 (05:59 -0400)]
mention today's real changes
Christos Zoulas [Sun, 20 Jul 2014 09:55:12 +0000 (05:55 -0400)]
Changes from raven at themaw.net to support NFSv3 for automounted
toplevel filesystems presented to the list in May. A few bug fixes
and integration changes by me. The code now works well enough to
mount the filesystem with NFSv3 and automount children but readdir
does not work yet (so no listing of automounted filesystems). The
new code is not enabled by default. To enable use auto_nfs_version = 3
in your configuration file.
Christos Zoulas [Sun, 20 Jul 2014 09:52:50 +0000 (05:52 -0400)]
mention changes
Christos Zoulas [Sun, 20 Jul 2014 09:46:28 +0000 (05:46 -0400)]
force the autoconf version instead of just reporting it.
Christos Zoulas [Sun, 20 Jul 2014 09:44:02 +0000 (05:44 -0400)]
newer version
Christos Zoulas [Sun, 20 Jul 2014 09:41:11 +0000 (05:41 -0400)]
newer version
Christos Zoulas [Sun, 20 Jul 2014 09:40:40 +0000 (05:40 -0400)]
newer version
Christos Zoulas [Sun, 20 Jul 2014 09:40:08 +0000 (05:40 -0400)]
newer version
Christos Zoulas [Sun, 20 Jul 2014 09:37:29 +0000 (05:37 -0400)]
newer version
Erez Zadok [Mon, 12 May 2014 15:54:20 +0000 (11:54 -0400)]
allow user to pass RMTAB file name from environment
zoulasc [Mon, 12 May 2014 15:15:00 +0000 (11:15 -0400)]
move initialization of RMTAB before it is used (Ian Kent)
Erez Zadok [Sat, 10 May 2014 02:45:40 +0000 (22:45 -0400)]
update additional autoconf/automake files
Erez Zadok [Sat, 10 May 2014 02:45:13 +0000 (22:45 -0400)]
update libtool files
Erez Zadok [Sat, 10 May 2014 02:43:03 +0000 (22:43 -0400)]
update bootstrap and ylwrap
Erez Zadok [Sat, 10 May 2014 02:41:31 +0000 (22:41 -0400)]
comment out duplicate var definition
zoulasc [Wed, 26 Mar 2014 20:21:40 +0000 (16:21 -0400)]
today's changes
zoulasc [Wed, 26 Mar 2014 20:18:55 +0000 (16:18 -0400)]
Use only the standard cflags for hardened builds (Ian Kent)
zoulasc [Wed, 26 Mar 2014 20:18:12 +0000 (16:18 -0400)]
add ext4 (Ian Kent)
zoulasc [Wed, 26 Mar 2014 20:17:48 +0000 (16:17 -0400)]
Fix version dependency (Ian Kent); there is no more configure.in
zoulasc [Wed, 26 Mar 2014 20:06:11 +0000 (16:06 -0400)]
With certain hosts.{allow,deny} rules, expected host access control
restrictions may not be applied correctly. The problem does not
affect configurations that has deny:ALL and only allow access for
specific hosts / networks. (Ian Kent)
zoulasc [Wed, 26 Mar 2014 20:05:13 +0000 (16:05 -0400)]
fix return value from main (Ian Kent)
zoulasc [Wed, 26 Mar 2014 20:03:39 +0000 (16:03 -0400)]
Add ext2, ext3, ext4 specific options (Ian Kent)
XXX: Merge
zoulasc [Wed, 26 Mar 2014 20:01:29 +0000 (16:01 -0400)]
add missing uplinks (Ian Kent)
zoulasc [Wed, 26 Mar 2014 20:00:07 +0000 (16:00 -0400)]
fix SP arg. (Ian Kent)
zoulasc [Wed, 26 Mar 2014 19:58:28 +0000 (15:58 -0400)]
partially from Ian Kent: use mktemp for better security.
zoulasc [Fri, 21 Mar 2014 00:59:48 +0000 (20:59 -0400)]
today's changes from Ian Kent
zoulasc [Fri, 21 Mar 2014 00:59:25 +0000 (20:59 -0400)]
Default to autofs version 4
zoulasc [Fri, 21 Mar 2014 00:57:07 +0000 (20:57 -0400)]
Ian Kent: Handle failed umount on exit
zoulasc [Fri, 21 Mar 2014 00:54:09 +0000 (20:54 -0400)]
From: Ian Kent <ikent@redhat.com>
For some reason, when umounting autofs mounts after closing the ioctl
file handle, the kernel can return EBUSY for some small amount of time.
This can cause umounts to incorrectly fail when in fact they should
succeed.
Retrying for about a second and a half seems to work quite well.
zoulasc [Fri, 21 Mar 2014 00:52:54 +0000 (20:52 -0400)]
From: Ian Kent <raven@themaw.net>
It's possible (and likely) a SIGCHLD signal can arrive while in syslog(2)
and also attempt log log a message leading to deadlock.
zoulasc [Fri, 21 Mar 2014 00:51:28 +0000 (20:51 -0400)]
From: Ian Kent <ikent@redhat.com>
Fix a error message formating mistake in get_nfs_version().
While here tidy up and use __func__
zoulasc [Fri, 21 Mar 2014 00:29:18 +0000 (20:29 -0400)]
From: Ian Kent <ikent@redhat.com>
An ENOENT return from umount(2) means the kernel path walk couldn't
resolve the path of the mount to a dentry. In that case there can't
be an autofs waitq entry waiting for notification, since there's no
dentry, so don't even try to notify the kernel.
zoulasc [Fri, 21 Mar 2014 00:26:49 +0000 (20:26 -0400)]
From: Ian Kent <raven@themaw.net>
Avoid NULL dereference on umount
zoulasc [Fri, 21 Mar 2014 00:25:01 +0000 (20:25 -0400)]
From: Ian Kent <ikent@redhat.com>
When using an autofs multi-level mount map amd can fail to umount
NFS leaf mounts causing shutdown to fail. It also can cause amd to
SEGV because, even though umounts fail, the autofs mount control
structure is freed and a later umount attempt doesn't check if this
struct is valid before using it.
The cause of the umount failure appears to be the background umount
of NFS mounts at the leaf of the tree not finishing before the autofs
file system mounts above are attempted.
It isn't worth adding a patch to check if the autofs mount control
structure is valid because if it isn't, in this case, amd doesn't
crash but still becomes unresponsive.
zoulasc [Sun, 9 Mar 2014 22:17:36 +0000 (18:17 -0400)]
Remove expn program and man page. It is not used by anything. Last
comment in ChangeLog said it was used by hlfsd, but that should not
be the case; nothing should depend on expanded mail aliases. This is
a function of the mail sub-system.
zoulasc [Sun, 9 Mar 2014 20:27:39 +0000 (16:27 -0400)]
Remove the BSD advertising clause. As mentioned in the ChangeLog only
one left is in scripts/expn.* and I am not sure why this is distributed
as part of am-utils.
Erez Zadok [Tue, 21 Jan 2014 01:42:48 +0000 (20:42 -0500)]
happy new year
Christos Zoulas [Thu, 5 Dec 2013 17:24:48 +0000 (12:24 -0500)]
Change the way we handle multiple lex scanners and yacc parsers
in a single program. Our old patch to ylwrap does not work anymore
because the bison parsers need shared symbols that start with yy
and we can't easily select which ones work. So now we use -P and
-p to let lex and yacc do the work for us. This requires a patch
to ylwrap, but it is smaller.
Yoram Bar-Haim [Sun, 22 Sep 2013 13:06:33 +0000 (16:06 +0300)]
fix flaw when kernel version is 3.x
Erez Zadok [Mon, 3 Jun 2013 01:44:42 +0000 (21:44 -0400)]
update copyright notice for 2013
Christos Zoulas [Wed, 15 May 2013 00:13:53 +0000 (20:13 -0400)]
Regen, and recent changes
Christos Zoulas [Wed, 15 May 2013 00:12:06 +0000 (20:12 -0400)]
adjust to new autoconf requirements
Christos Zoulas [Wed, 15 May 2013 00:09:00 +0000 (20:09 -0400)]
INCLUDES -> AM_CPPFLAGS in new autoconf
Christos Zoulas [Wed, 15 May 2013 00:04:51 +0000 (20:04 -0400)]
Fix macro names
Christos Zoulas [Fri, 23 Nov 2012 17:13:55 +0000 (12:13 -0500)]
Mention new changes
Christos Zoulas [Fri, 23 Nov 2012 17:12:34 +0000 (12:12 -0500)]
Regen from newer autoconf
Christos Zoulas [Fri, 23 Nov 2012 17:12:21 +0000 (12:12 -0500)]
recognize noacl