Page MenuHomeFreeBSD

rmacklem (Rick Macklem)
User

Projects

User Details

User Since
Jan 13 2015, 10:58 PM (545 w, 6 d)

Recent Activity

Today

rmacklem requested review of D51099: fcntl.h: Add O_XATTR for Solaris compatibility.
Tue, Jul 1, 2:13 AM

Yesterday

rmacklem committed rG039fedc441cc: RELNOTES: Add an entry for recent "nocto" changes (authored by rmacklem).
RELNOTES: Add an entry for recent "nocto" changes
Mon, Jun 30, 8:21 PM
rmacklem committed rG1b832d5d8cc6: UPDATING: Add an entry for commits 171f66b0c2ca and 8e2a90ac8089 (authored by rmacklem).
UPDATING: Add an entry for commits 171f66b0c2ca and 8e2a90ac8089
Mon, Jun 30, 8:07 PM
rmacklem committed rGd8c5c513e1cb: param.h: Bump __FreeBSD_version for NFS api changes (authored by rmacklem).
param.h: Bump __FreeBSD_version for NFS api changes
Mon, Jun 30, 8:01 PM
rmacklem committed rG50e733f19b37: nfscl: Use delegation ACE when mounted with nocto (authored by rmacklem).
nfscl: Use delegation ACE when mounted with nocto
Mon, Jun 30, 2:54 PM

Sun, Jun 29

rmacklem committed rG171f66b0c2ca: nfscl: Optimize NFSv4 remove and rename for nocto option (authored by rmacklem).
nfscl: Optimize NFSv4 remove and rename for nocto option
Sun, Jun 29, 9:18 PM
rmacklem committed rG0d51adee3072: nfsd: Use an NFSv4 ACL for the delegation ACE if available (authored by rmacklem).
nfsd: Use an NFSv4 ACL for the delegation ACE if available
Sun, Jun 29, 4:12 PM

Sat, Jun 28

rmacklem requested review of D51086: rpcsec_gss.c: Avoid panics in clnt_nl_call.
Sat, Jun 28, 11:25 PM
rmacklem added inline comments to D51083: rpctls_impl.c: Fix handling of hung rpc tls daemon.
Sat, Jun 28, 8:49 PM
rmacklem requested review of D51084: clnt_rc.c: Fix the case where a TLS handshake fails.
Sat, Jun 28, 8:45 PM
rmacklem requested review of D51083: rpctls_impl.c: Fix handling of hung rpc tls daemon.
Sat, Jun 28, 8:38 PM

Thu, Jun 26

rmacklem committed rG8e2a90ac8089: nfscommon: Factor out conversion of ae_perm to NFSv4 ACE flags (authored by rmacklem).
nfscommon: Factor out conversion of ae_perm to NFSv4 ACE flags
Thu, Jun 26, 8:26 PM

Sun, Jun 22

rmacklem committed rG2c186228096a: nfsd: Change the NFSv4.1/4.2 server to not recall delegations (authored by rmacklem).
nfsd: Change the NFSv4.1/4.2 server to not recall delegations
Sun, Jun 22, 9:18 PM

Sat, Jun 21

rmacklem committed rG26ee05939209: rpctls_impl.c: Fix handling of socket for daemon failure (authored by rmacklem).
rpctls_impl.c: Fix handling of socket for daemon failure
Sat, Jun 21, 11:53 PM
rmacklem closed D50961: rpctls_impl.c: Fix handling of daemon failure.
Sat, Jun 21, 11:53 PM
rmacklem abandoned D50962: rpctls_impl.c: Add KRPC_CURVNET_SET() and KRPC_CURVNET_RESTORE().

This patch is bogus and will not fix the crash.
It is rpc_gss_init() that needs to set CURVNET.

Sat, Jun 21, 10:00 PM
rmacklem added a comment to D50962: rpctls_impl.c: Add KRPC_CURVNET_SET() and KRPC_CURVNET_RESTORE().

What is the problem we are trying to fix here? What is the panic trace?

The function rpctls_connect() is always called with socket's vnet set by clnt_reconnect_connect(). In general setting vnet0 is never correct. I understand that right now NFS may not fully support the VIMAGE, but we should slowly aim towards correct support, rather than just blindly plugging the panics.

The panic occurred because the CLNT_CALL_MBUF() called clnt_nl_call()
which asserts CURVNET_ASSERT_SET(). I don't have the stack trace. It
happened during Bakeathon testing over a month ago.
I fixed it by putting CURVNET_SET(TD_TO_VNET(curthread), but that
won't work when in a jail.

The CURVNET_SET(so->so_vnet) just before rpctls_connect()
doesn't always work. My guess would be something like...

  • readahead/writebehind thread (from taskqueue, so it is only a kernel thread) does a clnt_reconnect_connect(). clnt_reconnect_connect()->__rpc_nconf2socket()->socreate()->soalloc(CRED_TO_VNET(cred)) I have no idea what curthread->td_ucred is going to be for taskqueue threads.

Anyhow, I cannot recreate this on local testing (during the Bakeathon I am testing against
non-FreeBSD servers over a very slow vpn) and don't have the entire panic/crash.

All I know is that the NFS client mounts are always vnet0, since they cannot be
done in a jail, even though processes/threads running in a jail can use the mount.
(I suspect you are correct, in that the CURVNET_SET()/CURVNET_RESTORE() around
are broken and don't always work. If they can't use so->so_vnet and they can't use
CRED_TO_VNET(), setting vnet0 seems like the only option?)

Ignore the above paragraph. I found where I scribbled down the crash. The calls were:

Sat, Jun 21, 9:59 PM
rmacklem added a comment to D50962: rpctls_impl.c: Add KRPC_CURVNET_SET() and KRPC_CURVNET_RESTORE().

What is the problem we are trying to fix here? What is the panic trace?

The function rpctls_connect() is always called with socket's vnet set by clnt_reconnect_connect(). In general setting vnet0 is never correct. I understand that right now NFS may not fully support the VIMAGE, but we should slowly aim towards correct support, rather than just blindly plugging the panics.

Sat, Jun 21, 9:47 PM
rmacklem requested review of D50962: rpctls_impl.c: Add KRPC_CURVNET_SET() and KRPC_CURVNET_RESTORE().
Sat, Jun 21, 1:45 AM
rmacklem requested review of D50961: rpctls_impl.c: Fix handling of daemon failure.
Sat, Jun 21, 1:25 AM

Fri, Jun 20

rmacklem abandoned D50396: rpc_generic.c: Add CURVNET_SET/CURVNET_RESTORE around clnt_call_mbuf.

I realized that this is a NFS client side call,
so it needs to set vnet0.
I'll do that in the specific RPC-over-TLS code.

Fri, Jun 20, 4:56 PM

Wed, Jun 18

rmacklem committed rGca5be69fb96d: nfsd: Fix the build for 1749465947a8 (authored by rmacklem).
nfsd: Fix the build for 1749465947a8
Wed, Jun 18, 8:14 PM
rmacklem committed rGa2408c4e976a: nfsd: Fix accumulating nfslockfile structures (authored by rmacklem).
nfsd: Fix accumulating nfslockfile structures
Wed, Jun 18, 8:13 PM

Sun, Jun 15

rmacklem accepted D50810: gssd: Add support for MIT KRB5.
Sun, Jun 15, 3:09 PM

Mon, Jun 9

rmacklem accepted D50624: nfsd, rpcbind: add -P option to support pidfile path.
Mon, Jun 9, 3:39 AM

Sun, Jun 8

rmacklem added a comment to D50624: nfsd, rpcbind: add -P option to support pidfile path.

By the way, given that rpcbind and nfsd will install a default pidfile to /var/run even without specifying -P: shall we document that somewhere in RELNOTES and the commit message, or do we make the errno == EEXIST case a warn() call instead of errx()? I am thinking of that because some people might spin up multiple nfsd in their setup without using the rc.d/nfsd script, and with different bound IP for each nfsd spun.

Sun, Jun 8, 9:21 PM

Sat, Jun 7

rmacklem accepted D50624: nfsd, rpcbind: add -P option to support pidfile path.

I'll leave the minor nits up to you.
Are you a committer or do you need me
to do it?

Sat, Jun 7, 10:26 PM

Fri, Jun 6

rmacklem accepted D50627: rpcbind: Ensure krpc is present..
Fri, Jun 6, 1:51 PM

Thu, Jun 5

rmacklem committed rG4be12de1d630: nfsd: Fix the build for 1749465947a8 (authored by rmacklem).
nfsd: Fix the build for 1749465947a8
Thu, Jun 5, 2:01 AM

Wed, Jun 4

rmacklem committed rG1749465947a8: nfsd: Fix accumulating nfslockfile structures (authored by rmacklem).
nfsd: Fix accumulating nfslockfile structures
Wed, Jun 4, 11:12 PM
rmacklem committed rG6b6542ec8446: open.2: Document the O_NAMEDATTR flag (authored by rmacklem).
open.2: Document the O_NAMEDATTR flag
Wed, Jun 4, 10:53 PM
rmacklem closed D49691: open.2: Document the O_NAMEDATTR flag added recently.
Wed, Jun 4, 10:53 PM
rmacklem added a comment to D50627: rpcbind: Ensure krpc is present..
In D50627#1156884, @des wrote:

then either fix rpcbind so it doesn't print an error when started before krpc is loaded, or approve this review... your choice

Wed, Jun 4, 8:55 PM

Tue, Jun 3

rmacklem added a comment to D50627: rpcbind: Ensure krpc is present..
In D50627#1156452, @des wrote:

Are you sure? I didn't think the krpc used rpcbind.

It's the other way around; rpcbind isn't useful without krpc, and while krpc usually ends up getting loaded sooner or later, if it's not present when rpcbind starts, you get error messages on the console.

Tue, Jun 3, 2:38 PM

Mon, Jun 2

rmacklem added a comment to D50627: rpcbind: Ensure krpc is present..

Are you sure? I didn't think the krpc used rpcbind.

Mon, Jun 2, 9:38 PM

May 30 2025

rmacklem committed rG6f9b2071b843: nfs_clrpcops.c: Fix handling of a CreateLayGet reply (authored by rmacklem).
nfs_clrpcops.c: Fix handling of a CreateLayGet reply
May 30 2025, 8:37 PM
rmacklem committed rGe5c544f95ab4: nfs_clrpcops.c: Fix acquisition of post-op attributes for link (authored by rmacklem).
nfs_clrpcops.c: Fix acquisition of post-op attributes for link
May 30 2025, 8:35 PM

May 27 2025

rmacklem added inline comments to D49654: openzfs: Add support for Solaris style extended attributes.
May 27 2025, 1:06 AM

May 26 2025

rmacklem committed rG0596b4a3d42f: vfs_cache.c: Use CACHE_FPL_SUPPORTED_CN_FLAGS (authored by rmacklem).
vfs_cache.c: Use CACHE_FPL_SUPPORTED_CN_FLAGS
May 26 2025, 3:31 AM
rmacklem closed D50524: vfs_cache.c: Use CACHE_FPL_SUPPORTED_CN_FLAGS.
May 26 2025, 3:30 AM
rmacklem requested review of D50524: vfs_cache.c: Use CACHE_FPL_SUPPORTED_CN_FLAGS.
May 26 2025, 2:08 AM

May 25 2025

rmacklem added inline comments to D49654: openzfs: Add support for Solaris style extended attributes.
May 25 2025, 7:51 PM
rmacklem updated the diff for D49654: openzfs: Add support for Solaris style extended attributes.

The main change is to zfs_readdir(), so that it skips over
forbidden names for a named attribute directory.

May 25 2025, 7:45 PM

May 24 2025

rmacklem committed rGbada3811884c: nfs_clvnops.c: Add an initialization mistakenly removed (authored by rmacklem).
nfs_clvnops.c: Add an initialization mistakenly removed
May 24 2025, 11:27 PM

May 23 2025

rmacklem added a comment to D49654: openzfs: Add support for Solaris style extended attributes.

Good questions! Maybe they need to be asked on a mailing
list for FreeBSD, but at least I'd like to hear your thoughts.

May 23 2025, 11:49 PM

May 17 2025

rmacklem requested review of D50396: rpc_generic.c: Add CURVNET_SET/CURVNET_RESTORE around clnt_call_mbuf.
May 17 2025, 9:02 PM

May 16 2025

rmacklem committed rGe647a222a1a7: nfs_clrpcops.c: Fix handling of a CreateLayGet reply (authored by rmacklem).
nfs_clrpcops.c: Fix handling of a CreateLayGet reply
May 16 2025, 7:39 PM
rmacklem committed rG96af6ac75468: UPDATING: Add an entry for commit 772258c89f28 (authored by rmacklem).
UPDATING: Add an entry for commit 772258c89f28
May 16 2025, 12:35 AM
rmacklem committed rG772258c89f28: nfs_clrpcops.c: Fix acquisition of post-op attributes for link (authored by rmacklem).
nfs_clrpcops.c: Fix acquisition of post-op attributes for link
May 16 2025, 12:30 AM

May 10 2025

rmacklem committed rG511de5b1430e: runat.c: Add an explicit check for snprintf() failure (authored by rmacklem).
runat.c: Add an explicit check for snprintf() failure
May 10 2025, 2:49 PM

May 6 2025

rmacklem committed rG0660de8172cd: runat: Add a runat(1) utility similar to the Solaris one (authored by rmacklem).
runat: Add a runat(1) utility similar to the Solaris one
May 6 2025, 8:39 PM
rmacklem closed D49850: runat: A utility that executes a shell command on a named attribute.
May 6 2025, 8:39 PM
rmacklem updated the diff for D49654: openzfs: Add support for Solaris style extended attributes.

Added support for _PC_HAS_NAMEDATTR, which is
mainly a new function called zfs_has_namedattr().

May 6 2025, 2:20 PM

May 5 2025

rmacklem committed rGe4c7b2b6053f: nfsv4: Add support to NFSv4 for named attributes (authored by rmacklem).
nfsv4: Add support to NFSv4 for named attributes
May 5 2025, 11:10 PM
rmacklem accepted D50169: mountd, showmount: move to the nfs package.
May 5 2025, 10:13 PM
rmacklem accepted D50162: rpc.statd: move to nfs package.
May 5 2025, 12:44 PM
rmacklem added a reverting change for rG9419e086e1a3: nfscommon: Use _PC_HAS_NAMEDATTR to check for named attributes: rG2c0e6f53171c: Revert "nfscommon: Use _PC_HAS_NAMEDATTR to check for named attributes".
May 5 2025, 2:42 AM
rmacklem committed rG2c0e6f53171c: Revert "nfscommon: Use _PC_HAS_NAMEDATTR to check for named attributes" (authored by rmacklem).
Revert "nfscommon: Use _PC_HAS_NAMEDATTR to check for named attributes"
May 5 2025, 2:42 AM
rmacklem committed rG4a795fb913fe: UPDATING: Add an entry for commit 9419e086e1a3 (authored by rmacklem).
UPDATING: Add an entry for commit 9419e086e1a3
May 5 2025, 1:12 AM
rmacklem committed rG22d4fecbcf57: param.h: Bump __FreeBSD_version to 1500040 (authored by rmacklem).
param.h: Bump __FreeBSD_version to 1500040
May 5 2025, 1:05 AM
rmacklem committed rG9419e086e1a3: nfscommon: Use _PC_HAS_NAMEDATTR to check for named attributes (authored by rmacklem).
nfscommon: Use _PC_HAS_NAMEDATTR to check for named attributes
May 5 2025, 12:56 AM

May 4 2025

rmacklem committed rG38eb41a3897a: pathconf.2: Document the _PC_HAS_NAMEDATTR name (authored by rmacklem).
pathconf.2: Document the _PC_HAS_NAMEDATTR name
May 4 2025, 10:26 PM
rmacklem closed D50141: pathconf.2: Document the _PC_HAS_NAMEDATTR name.
May 4 2025, 10:26 PM
rmacklem committed rG0f12c3cd0ddb: vfs_default.c: Add _PC_HAS_NAMEDATTR pathconf name (authored by rmacklem).
vfs_default.c: Add _PC_HAS_NAMEDATTR pathconf name
May 4 2025, 10:13 PM
rmacklem closed D50140: vfs_default.c: Add _PC_HAS_NAMEDATTR pathconf name.
May 4 2025, 10:13 PM
rmacklem committed rGf61844833ee8: vfs_vnops.c: Make O_NAMEDATTR Solaris compatible (authored by rmacklem).
vfs_vnops.c: Make O_NAMEDATTR Solaris compatible
May 4 2025, 10:02 PM
rmacklem closed D50139: vfs_vnops.c: Make O_NAMEDATTR Solaris compatible.
May 4 2025, 10:01 PM
rmacklem committed rG2773c07181a7: mountd: Fix updating the network/host(s) for an exports line (authored by rmacklem).
mountd: Fix updating the network/host(s) for an exports line
May 4 2025, 7:17 PM
rmacklem added a comment to D50140: vfs_default.c: Add _PC_HAS_NAMEDATTR pathconf name.
In D50140#1143762, @kib wrote:

Does Solaris use the pathconf() to report xattr existence for the specific node?

It seems to do so. Solaris calls it _PC_XATTR_EXISTS.
It seems to work for local files on Solaris, but returns random junk for an NFSv4 mount.
(Since things look correct on the wire, I think this is just a Solaris bug?)

May 4 2025, 3:23 PM
rmacklem committed rG70369e4c2c1a: mountd: Fix updating the network/host(s) for an exports line (authored by rmacklem).
mountd: Fix updating the network/host(s) for an exports line
May 4 2025, 1:11 AM
rmacklem committed rG37abcf06f210: mountd: Fix updating the network/host(s) for an exports line (authored by rmacklem).
mountd: Fix updating the network/host(s) for an exports line
May 4 2025, 1:09 AM
rmacklem added a comment to D50141: pathconf.2: Document the _PC_HAS_NAMEDATTR name.

Are these Function Arguments? Can I alphabetize these?

May 4 2025, 12:55 AM

May 3 2025

rmacklem requested review of D50141: pathconf.2: Document the _PC_HAS_NAMEDATTR name.
May 3 2025, 10:14 PM
rmacklem updated the diff for D49851: Document the named attribute interface.

Clarified when named attributes and named attribute
directories are created.

May 3 2025, 10:05 PM
rmacklem requested review of D50140: vfs_default.c: Add _PC_HAS_NAMEDATTR pathconf name.
May 3 2025, 8:52 PM
rmacklem requested review of D50139: vfs_vnops.c: Make O_NAMEDATTR Solaris compatible.
May 3 2025, 8:39 PM

May 1 2025

rmacklem committed rG68daa781c1f1: mountd: Fix updating the network/host(s) for an exports line (authored by rmacklem).
mountd: Fix updating the network/host(s) for an exports line
May 1 2025, 11:21 PM

Apr 25 2025

rmacklem committed rG4fae019c2b8f: nfscommon: Prepare the NFS common code for named attributes (authored by rmacklem).
nfscommon: Prepare the NFS common code for named attributes
Apr 25 2025, 1:12 AM

Apr 23 2025

rmacklem updated the diff for D49851: Document the named attribute interface.

Replaced the copyright notice with the new recommended
short one, as suggested by ziaee@.

Apr 23 2025, 1:09 AM
rmacklem updated the diff for D49850: runat: A utility that executes a shell command on a named attribute.

Removed the "." after my name in the copyright.

Apr 23 2025, 12:58 AM
rmacklem updated the diff for D49850: runat: A utility that executes a shell command on a named attribute.

Added chdir(2) to the SEE ALSO section of the runat.1.

Apr 23 2025, 12:43 AM
rmacklem added a comment to D49850: runat: A utility that executes a shell command on a named attribute.

Marked inline comments as done.

Apr 23 2025, 12:29 AM
rmacklem updated the diff for D49850: runat: A utility that executes a shell command on a named attribute.

Updated the copyrights, as suggested by ziaa@.

Apr 23 2025, 12:26 AM
rmacklem accepted D49953: mountd: use free_iovec for build_iovec cleanup.

Looks fine to me, rick

Apr 23 2025, 12:08 AM

Apr 22 2025

rmacklem added a comment to D49850: runat: A utility that executes a shell command on a named attribute.

Note that O_CLOEXEC is set in "fmode" near the top of main()
for the second open.

Apr 22 2025, 11:06 AM
rmacklem added a comment to D49850: runat: A utility that executes a shell command on a named attribute.

Marked inline comments as done.

Apr 22 2025, 11:02 AM
rmacklem added inline comments to D49850: runat: A utility that executes a shell command on a named attribute.
Apr 22 2025, 11:01 AM
rmacklem updated the diff for D49850: runat: A utility that executes a shell command on a named attribute.

Missed a couple of cases for .Ar file. Fixed now.

Apr 22 2025, 10:46 AM
rmacklem updated the diff for D49850: runat: A utility that executes a shell command on a named attribute.

Updated man page with changes suggested by ziaa@.

Apr 22 2025, 10:39 AM
rmacklem updated the diff for D49850: runat: A utility that executes a shell command on a named attribute.

Updated the man page to reflect the use of /bin/sh.

Apr 22 2025, 10:27 AM
rmacklem updated the diff for D49850: runat: A utility that executes a shell command on a named attribute.

This version just does an execl() as suggested by kib@.

Apr 22 2025, 3:19 AM
rmacklem added inline comments to D49850: runat: A utility that executes a shell command on a named attribute.
Apr 22 2025, 2:45 AM
rmacklem updated the diff for D49850: runat: A utility that executes a shell command on a named attribute.

Oops, missed the last suggested change from kib@
the last time. It is here now.

Apr 22 2025, 2:39 AM
rmacklem updated the diff for D49850: runat: A utility that executes a shell command on a named attribute.

Updated runat.c to apply kib@'s suggestions.
For some reason (don't know where I got it) I
thought that fchdir() directory change would
affect more than the process, which was why I
did the fork(). (I think it came from ancient
recollections of how 6th Edition worked in the
1970s. I'm gettin old;-)

Apr 22 2025, 2:22 AM
rmacklem updated the diff for D49851: Document the named attribute interface.

Re-written to conform to the more Solaris-like
semantics of O_NAMEDATTR that is now implemented
in main.

Apr 22 2025, 1:27 AM

Apr 21 2025

rmacklem updated the diff for D49850: runat: A utility that executes a shell command on a named attribute.

Update runat.c to use the up to date more Solaris-like
O_NAMEDATTR flag.

Apr 21 2025, 1:37 AM
rmacklem updated the diff for D49654: openzfs: Add support for Solaris style extended attributes.

I misinterpreted the Solaris documentation for O_XATTR.
It is used for an openat() where the path is for a file in
the file system's namespace, to open a named attribute
for the file, not a named attribute directory.

Apr 21 2025, 12:03 AM

Apr 20 2025

rmacklem committed rGb1b607bd200f: vfs_vnops.c: Modify the O_NAMEDATTR check for Solaris compatibility (authored by rmacklem).
vfs_vnops.c: Modify the O_NAMEDATTR check for Solaris compatibility
Apr 20 2025, 11:24 PM
rmacklem closed D49899: vfs_vnops.c: Modify the O_NAMEDATTR check for Solaris compatibility.
Apr 20 2025, 11:24 PM
rmacklem committed rGee95e4d02dbd: vfs_vnops.c: Fix the named attribute check for open (authored by rmacklem).
vfs_vnops.c: Fix the named attribute check for open
Apr 20 2025, 11:20 PM