Page MenuHomeFreeBSD

rmacklem (Rick Macklem)
User

Projects

User Details

User Since
Jan 13 2015, 10:58 PM (525 w, 4 d)

Recent Activity

Sat, Feb 1

rmacklem accepted D48795: mountd: Promote missing netmask log to LOG_ERR.

Looks fine to me.

Sat, Feb 1, 2:01 PM
rmacklem added a comment to D48570: rpc.tlsservd: provide parallelism with help of pthread(3).

Looks ok to me but I do not know pthreads.
Maybe markj@ can complete a review, since he
has already commented on the code?

If you don't mind, I'd like to push changes today. I will be online through the weekend and not disrupted by usual work & weekday stuff, so will be able to address any issues that may be discovered.

Sat, Feb 1, 3:42 AM
rmacklem committed rGa6b4af5e07af: nfsd: Add support for the NFSv4.2 change_attr_type attribute (authored by rmacklem).
nfsd: Add support for the NFSv4.2 change_attr_type attribute
Sat, Feb 1, 3:25 AM
rmacklem resigned from D48570: rpc.tlsservd: provide parallelism with help of pthread(3).

Looks ok to me but I do not know pthreads.
Maybe markj@ can complete a review, since he
has already commented on the code?

Sat, Feb 1, 12:19 AM
rmacklem accepted D48677: rpcsec_tls: merge RPC failure for rpctls_connect() and rpctls_server().
Sat, Feb 1, 12:14 AM
rmacklem resigned from D48569: rpc: limited multithread support for svc_nl.

Looks ok to me but I do not know pthreads.

Sat, Feb 1, 12:12 AM
rmacklem accepted D48567: rpc.tlsservd: followup of API refactoring in the previous commit.
Sat, Feb 1, 12:09 AM
rmacklem accepted D48549: krpc: add kernel side client over netlink(4).
Sat, Feb 1, 12:08 AM
rmacklem accepted D48550: libc/rpc: add userland side RPC server over netlink(4).
Sat, Feb 1, 12:06 AM
rmacklem accepted D48551: genl: add RPC parser that dumps what sys/rpc/clnt_nl.c sends.
Sat, Feb 1, 12:04 AM
rmacklem accepted D48566: rpcsec_tls/server: API refactoring between kernel and rpc.tlsservd(8).
Sat, Feb 1, 12:02 AM
rmacklem accepted D48777: rpc.tlsservd/rpc.tlsclntd: rename 'refno' field to 'cookie'.
Sat, Feb 1, 12:00 AM

Fri, Jan 31

rmacklem added inline comments to D48567: rpc.tlsservd: followup of API refactoring in the previous commit.
Fri, Jan 31, 10:06 PM
rmacklem added inline comments to D48566: rpcsec_tls/server: API refactoring between kernel and rpc.tlsservd(8).
Fri, Jan 31, 10:01 PM
rmacklem resigned from D48554: kgssapi: remove the gssd_syscall.
Fri, Jan 31, 9:54 PM
rmacklem accepted D48565: rpc.tlsclntd: followup of API refactoring in the previous commit.
Fri, Jan 31, 9:50 PM

Thu, Jan 30

rmacklem accepted D48564: rpcsec_tls/client: API refactoring between kernel and rpc.tlsclntd(8).
Thu, Jan 30, 11:22 PM
rmacklem accepted D48563: krpc: assert that we don't support kernel RPC over unix(4).
Thu, Jan 30, 11:14 PM
rmacklem accepted D48562: rpc.tlsservd: run netlink(4) service and use new API to get sockets.
Thu, Jan 30, 11:12 PM

Wed, Jan 29

rmacklem accepted D48550: libc/rpc: add userland side RPC server over netlink(4).
Wed, Jan 29, 11:37 PM
rmacklem accepted D48552: kgssapi: use netlink RPC client to talk to gssd(8).
Wed, Jan 29, 10:16 PM
rmacklem accepted D48549: krpc: add kernel side client over netlink(4).
Wed, Jan 29, 10:13 PM
rmacklem added inline comments to D48550: libc/rpc: add userland side RPC server over netlink(4).
Wed, Jan 29, 10:07 PM
rmacklem accepted D48561: rpcsec_tls/server: use netlink RPC client to talk to rpc.tlsservd(8).
Wed, Jan 29, 12:45 AM
rmacklem accepted D48649: rpcsec_tls: cleanup the rpctls_syscall().
Wed, Jan 29, 12:36 AM

Tue, Jan 28

rmacklem accepted D48560: rpc.tlsclntd: run netlink(4) service and use new API to get sockets.
Tue, Jan 28, 11:26 PM
rmacklem accepted D48559: rpcsec_tls/client: use netlink RPC client to talk to rpc.tlsclntd(8).
Tue, Jan 28, 11:25 PM
rmacklem committed rG0f1f6d18d722: fs: Add new VFCF_xxx flags for va_filerev (authored by rmacklem).
fs: Add new VFCF_xxx flags for va_filerev
Tue, Jan 28, 10:44 PM
rmacklem committed rG7773d509d823: fs: Add new VFCF_xxx flags for va_filerev (authored by rmacklem).
fs: Add new VFCF_xxx flags for va_filerev
Tue, Jan 28, 10:40 PM

Mon, Jan 27

rmacklem added inline comments to D48559: rpcsec_tls/client: use netlink RPC client to talk to rpc.tlsclntd(8).
Mon, Jan 27, 11:24 PM
rmacklem added a comment to D48559: rpcsec_tls/client: use netlink RPC client to talk to rpc.tlsclntd(8).

As I mentioned, I am concerned that the "cookie" might end
up referring to the wrong socket, if the kernel code were to
close the socket (freeing the structure) and then another
socreate() happens to get memory at the same address.
Then the daemon replies to the upcall.

Mon, Jan 27, 11:09 PM

Sat, Jan 25

rmacklem accepted D48558: nfs: set vnet(9) context in mountnfs().
Sat, Jan 25, 9:18 PM
rmacklem accepted D48557: krpc: let the kernel talk to the rpcbind(8) service via netlink(4).
Sat, Jan 25, 9:16 PM
rmacklem accepted D48556: rpcbind: run netlink(4) service.
Sat, Jan 25, 9:09 PM
rmacklem accepted D48555: nlm: set vnet(9) context in the NLM syscall.
Sat, Jan 25, 9:02 PM
rmacklem accepted D48553: gssd: use netlink(4) RPC service to talk to kernel GSS.

I think this looks fine. I cannot exactly remember what
the gssd_syscall("") did (it indicated the daemon was going away),
but I'll assume you no longer need it?

Sat, Jan 25, 9:01 PM
rmacklem accepted D48547: xdr: provide x_putmbuf method for kernel XDR.
Sat, Jan 25, 8:54 PM
rmacklem accepted D48551: genl: add RPC parser that dumps what sys/rpc/clnt_nl.c sends.

Looks ok to me. I noted a minor style nit. Feel free to ignore it.

Sat, Jan 25, 2:33 AM
rmacklem added inline comments to D48547: xdr: provide x_putmbuf method for kernel XDR.
Sat, Jan 25, 12:05 AM

Fri, Jan 24

rmacklem added a comment to D48649: rpcsec_tls: cleanup the rpctls_syscall().

Was changing the syscall and upcall arguments really necessary?
I thought it was the upcall RPC transport that needed to change.

Fri, Jan 24, 10:31 PM
rmacklem added a comment to D48649: rpcsec_tls: cleanup the rpctls_syscall().

When I originally did this, I thought of using the socket pointer as a "unique"
indicator for it in userpsace (for the TCP socket the client/server is using).
I chose not to do so, because I was concerned that the kernel code might...

  • close the socket
  • create a new socket, that happens to have the same kernel address.
Fri, Jan 24, 10:16 PM
rmacklem accepted D48548: xdr: provide x_putmbuf method for xdrmem.
Fri, Jan 24, 9:56 PM
rmacklem added inline comments to D48547: xdr: provide x_putmbuf method for kernel XDR.
Fri, Jan 24, 9:53 PM
rmacklem committed rG968abc191ea1: nfscl: Fix a crash when a readdir entry has nul in it (authored by rmacklem).
nfscl: Fix a crash when a readdir entry has nul in it
Fri, Jan 24, 2:31 AM
rmacklem committed rGd7b69bb536f7: nfscl: Fix a crash when a readdir entry has nul in it (authored by rmacklem).
nfscl: Fix a crash when a readdir entry has nul in it
Fri, Jan 24, 2:27 AM

Mon, Jan 20

rmacklem committed rG709c18911ad7: nfsd: Add support for the NFSv4.2 change_attr_type attribute (authored by rmacklem).
nfsd: Add support for the NFSv4.2 change_attr_type attribute
Mon, Jan 20, 9:53 PM
rmacklem committed rG22d2336252c9: RELNOTES: Add entry for commit ead3cd3ef628 (authored by rmacklem).
RELNOTES: Add entry for commit ead3cd3ef628
Mon, Jan 20, 12:12 AM
rmacklem committed rG2cd9a4f0c229: exports.5: Document the current behavior of -alldirs (authored by rmacklem).
exports.5: Document the current behavior of -alldirs
Mon, Jan 20, 12:01 AM

Sun, Jan 19

rmacklem committed rG3ac1af1c0f07: mound.8: Document the new -a command line option (authored by rmacklem).
mound.8: Document the new -a command line option
Sun, Jan 19, 11:59 PM
rmacklem committed rGead3cd3ef628: mountd.c: Define a new -a command line option (authored by rmacklem).
mountd.c: Define a new -a command line option
Sun, Jan 19, 11:56 PM

Fri, Jan 17

rmacklem committed rG194242604ae4: nfscl: Simplify the deleg argument for nfscl_deleg() (authored by rmacklem).
nfscl: Simplify the deleg argument for nfscl_deleg()
Fri, Jan 17, 8:30 PM

Thu, Jan 16

rmacklem accepted D48452: stat(2): add st_filerev.
Thu, Jan 16, 4:14 AM

Wed, Jan 15

rmacklem added a comment to D48452: stat(2): add st_filerev.
In D48452#1105618, @kib wrote:

Zero st_filerev in vop_stat_helper_pre().
Zero va_filerev before calling VOP_GETATTR() in vfs_stdstat()

Wed, Jan 15, 10:00 PM

Tue, Jan 14

rmacklem added a comment to D48452: stat(2): add st_filerev.

I'm OK with these changes as they are.

That said, even if I agree there is, e.g., a bug in fusefs as mentioned in inline comments, I'm still wondering how to prevent non-initialized fields bugs in the VFS in a more general fashion. It's unfortunate that C does not allow to specify a default initializer per type. Maybe a follow-up attempt creating a new pre for VOP_GETATTR() would do good, although it will show up as not optimal as the compiler can't elide useless pre-initialization in it (for fields that are effectively filled by the FS' VOP_GETATTR() implementation). We would need a slightly different implementation for it to be able to perform such elisions.

Tue, Jan 14, 10:39 PM
rmacklem committed rG1cd455f39d88: fs: Add new VFCF_xxx flags for va_filerev (authored by rmacklem).
fs: Add new VFCF_xxx flags for va_filerev
Tue, Jan 14, 10:12 PM
rmacklem closed D48436: Add VFCF_FILEREVINC to indicate a file system increments va_filerev by one.
Tue, Jan 14, 10:12 PM
rmacklem added a comment to D48452: stat(2): add st_filerev.

Since st_filerev provides similar information to st_gen, should it also be guarded by PRIV_VFS_GENERATION in vop_stat_helper_post? And does it warrant mention in stat.2 ?

Tue, Jan 14, 1:52 AM

Mon, Jan 13

rmacklem updated the diff for D48436: Add VFCF_FILEREVINC to indicate a file system increments va_filerev by one.

Add an additional flag for the case where ctime is used
to set va_filerev.

Mon, Jan 13, 11:24 PM
rmacklem added a comment to D48436: Add VFCF_FILEREVINC to indicate a file system increments va_filerev by one.
In D48436#1105038, @kib wrote:

I see that msdosfs did not update de_modrev, If I fix msdosfs and tmpfs to update vs_filerev, do we still need the flag? Or is it better to keep tmpfs/msdosfs as is and go ahead with the flag?

Mon, Jan 13, 12:33 AM
rmacklem added a comment to D48436: Add VFCF_FILEREVINC to indicate a file system increments va_filerev by one.

fusefs currently doesn't set va_filerev at all. I can fix that. But with fuse, ctime updates can come from either the kernel or the server. So the easiest solution would probably be to make va_filerev be a function of ctime. Would that work with the Linux client, assuming we set NFS4_CHANGE_TYPE_IS_TIME_METADATA ?

Mon, Jan 13, 12:29 AM

Sun, Jan 12

rmacklem added a comment to D48436: Add VFCF_FILEREVINC to indicate a file system increments va_filerev by one.
In D48436#1105027, @kib wrote:

And where is the use of the new flag?
Also, what writable and exportable filesystems do not increment va_filerev on changes? I looked and only seems to find smbfs and tmpfs. It might be simpler to fix tmpfs than adding a flag.

Sun, Jan 12, 11:26 PM
rmacklem requested review of D48436: Add VFCF_FILEREVINC to indicate a file system increments va_filerev by one.
Sun, Jan 12, 9:55 PM

Fri, Jan 10

rmacklem committed rG84de8c51d1a0: nfsd: Add vfs.nfsd.testing_disable_grace sysctl (authored by rmacklem).
nfsd: Add vfs.nfsd.testing_disable_grace sysctl
Fri, Jan 10, 2:51 PM

Jan 10 2025

rmacklem committed rGf9f0a1d61c7b: nfscl: Fix a crash when a readdir entry has nul in it (authored by rmacklem).
nfscl: Fix a crash when a readdir entry has nul in it
Jan 10 2025, 3:57 AM

Dec 31 2024

rmacklem committed rG9a8e9b2a79e1: RELNOTES: Add an entry for commit 07cd69e272da (authored by rmacklem).
RELNOTES: Add an entry for commit 07cd69e272da
Dec 31 2024, 1:58 AM

Dec 28 2024

rmacklem closed D48139: exports.5: Document correct behaviour for -alldirs.
Dec 28 2024, 9:52 PM
rmacklem committed rG295934eaa92c: exports.5: Document the current behavior of -alldirs (authored by rmacklem).
exports.5: Document the current behavior of -alldirs
Dec 28 2024, 9:52 PM
rmacklem committed rG6db916d21a09: mound.8: Document the new -a command line option (authored by rmacklem).
mound.8: Document the new -a command line option
Dec 28 2024, 9:32 PM
rmacklem closed D48138: mountd.8: Document the new -a mountd option.
Dec 28 2024, 9:32 PM
rmacklem committed rG07cd69e272da: mountd.c: Define a new -a command line option (authored by rmacklem).
mountd.c: Define a new -a command line option
Dec 28 2024, 9:26 PM
rmacklem closed D48137: mountd.c: Add a new "-a" command line option for -alldris.
Dec 28 2024, 9:26 PM

Dec 27 2024

rmacklem added a comment to D48198: fusefs: better test coverage for NFS-exported fuse file systems.

Exports, mountd and nfsd can be done in a vnet jail, if that would help?

It certainly would help. Are there any good examples of code that creates a temporary vnet jail with nfs inside?

Dec 27 2024, 3:44 AM
rmacklem added a comment to D48198: fusefs: better test coverage for NFS-exported fuse file systems.

I'm not sure I would have called the nfsd "odd". It is one of two
consumers of the VFS/VOP interface (I suppose you might call
the stacked file systems consumers as well?).

Being one of the two, it is definitely different than the local syscall
interface.

But, anyhow, it is definitely different than the local syscall interface
and not just not using VOP_OPEN/VOP_CLOSE. It uses VOP_LOOKUP,
but in a different way than the local syscalls, particularly w.r.t. name caching,
as another example.

I've noticed that nfsd will do VOP_LOOKUP calls for ".". Are there any other ways that it differs?

Not w.r.t. what it looks up, but in how it is set up.
Compare nfsvno_namei() with namei() in kern/vfs_lookup.c,
for instance.

Dec 27 2024, 12:57 AM
rmacklem added a comment to D48198: fusefs: better test coverage for NFS-exported fuse file systems.

I'm not sure I would have called the nfsd "odd". It is one of two
consumers of the VFS/VOP interface (I suppose you might call
the stacked file systems consumers as well?).

Dec 27 2024, 12:01 AM

Dec 25 2024

rmacklem committed rG0a9808eb751f: mount_nfs.8: Document the new "mountport" NFS mount option (authored by rmacklem).
mount_nfs.8: Document the new "mountport" NFS mount option
Dec 25 2024, 1:51 AM
rmacklem committed rG400fcd1d4fc8: mount_nfs.c: Add an NFS mount option to set a port# for Mount (authored by rmacklem).
mount_nfs.c: Add an NFS mount option to set a port# for Mount
Dec 25 2024, 1:46 AM

Dec 20 2024

rmacklem committed rGefe6a0997383: fs: Add static asserts for the size of fid structures (authored by rmacklem).
fs: Add static asserts for the size of fid structures
Dec 20 2024, 10:09 PM

Dec 19 2024

rmacklem requested review of D48139: exports.5: Document correct behaviour for -alldirs.
Dec 19 2024, 12:52 AM
rmacklem requested review of D48138: mountd.8: Document the new -a mountd option.
Dec 19 2024, 12:47 AM
rmacklem requested review of D48137: mountd.c: Add a new "-a" command line option for -alldris.
Dec 19 2024, 12:44 AM

Dec 15 2024

rmacklem accepted D48093: RELNOTES: Document file handle layout changes.

Looks fine to me.

Dec 15 2024, 9:32 PM

Dec 11 2024

rmacklem committed rGaf66ffbf69e4: RELNOTES: Add an entry for commit 0e8a36a2ab12 (authored by rmacklem).
RELNOTES: Add an entry for commit 0e8a36a2ab12
Dec 11 2024, 11:27 PM
rmacklem committed rG91a74536a159: mount_nfs.8: Document the new "mountport" NFS mount option (authored by rmacklem).
mount_nfs.8: Document the new "mountport" NFS mount option
Dec 11 2024, 11:19 PM
rmacklem closed D47849: update mount_nfs.8 for the new mountport option.
Dec 11 2024, 11:19 PM
rmacklem committed rG0e8a36a2ab12: mount_nfs.c: Add an NFS mount option to set a port# for Mount (authored by rmacklem).
mount_nfs.c: Add an NFS mount option to set a port# for Mount
Dec 11 2024, 11:08 PM
rmacklem closed D47743: Add a new NFS mount option to specify the Mount protocol port#.
Dec 11 2024, 11:08 PM

Dec 9 2024

rmacklem accepted D47954: tarfs: 'struct tarfs_fid': Switch 'gen' to 'u_int', avoid packing.
Dec 9 2024, 2:46 PM

Dec 8 2024

rmacklem committed rGf6245e432208: nfs_commonsubs.c: Make all upper case user domain work (authored by rmacklem).
nfs_commonsubs.c: Make all upper case user domain work
Dec 8 2024, 1:51 AM
rmacklem committed rG7a4f370a352f: nfs_commonsubs.c: Make all upper case user domain work (authored by rmacklem).
nfs_commonsubs.c: Make all upper case user domain work
Dec 8 2024, 1:43 AM
rmacklem committed rG9d1d9fe0a077: nfs: Add support for the NFSv4.2 mode_umask attribute (authored by rmacklem).
nfs: Add support for the NFSv4.2 mode_umask attribute
Dec 8 2024, 1:39 AM

Dec 7 2024

rmacklem added a comment to D47956: tmpfs: Rework file handles.

Oh, and I think just copying fid_data would fix cd9660
as well, for those who don't like __packed.

Dec 7 2024, 8:48 PM
rmacklem added a comment to D47956: tmpfs: Rework file handles.

Btw, I replaced "sizeof(struct fid)" with MAXFIDSZ in the _Static_assert()
and it passed (at least for amd64).

Dec 7 2024, 8:43 PM
rmacklem added a comment to D47956: tmpfs: Rework file handles.

Good catch w.r.t. the _Static_assert(). It does need to be fixed,
even if these changes don't go in.

Dec 7 2024, 4:05 PM
rmacklem added a comment to D47956: tmpfs: Rework file handles.

I'll leave it someone familiar with tmpfs to decide if having
tn_gen wrap around to zero is a real concern.

Dec 7 2024, 4:03 PM
rmacklem added inline comments to D47954: tarfs: 'struct tarfs_fid': Switch 'gen' to 'u_int', avoid packing.
Dec 7 2024, 3:57 PM
rmacklem added a comment to D47879: cd9660: Make sure that struct ifid fits in generic filehandle structure.

Just fyi, whenever the "struct fid" changes, the file handles
change. As such, an upgrade of the NFS server requires that
all clients be unmounted/remounted.

Dec 7 2024, 6:00 AM

Dec 6 2024

rmacklem updated the diff for D47743: Add a new NFS mount option to specify the Mount protocol port#.

Added upper bound check for port# as suggested
by delphi@.

Dec 6 2024, 11:57 PM
rmacklem accepted D47955: ext2fs: 'struct ufid': Re-order fields and unpack.

Looks fine to me.

Dec 6 2024, 11:33 PM
rmacklem committed rG4db1b113b151: tarfs: Fix the size of struct tarfs_fid and add a static assert (authored by rmacklem).
tarfs: Fix the size of struct tarfs_fid and add a static assert
Dec 6 2024, 2:12 AM
rmacklem committed rGbfc8e3308bee: ext2fs: Fix the size of struct ufid and add a static assert (authored by rmacklem).
ext2fs: Fix the size of struct ufid and add a static assert
Dec 6 2024, 2:06 AM