Page MenuHomeFreeBSD

rmacklem (Rick Macklem)
User

Projects

User Details

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

Recent Activity

Thu, Oct 24

rmacklem committed rGfcd20d3181a7: nfsd: Fix handling of credentials with cr_ngroups == 0 (authored by rmacklem).
nfsd: Fix handling of credentials with cr_ngroups == 0
Thu, Oct 24, 1:15 AM
rmacklem committed rGf6e1add0c9d3: nfsd: Fix handling of credentials with cr_ngroups == 0 (authored by rmacklem).
nfsd: Fix handling of credentials with cr_ngroups == 0
Thu, Oct 24, 1:09 AM

Mon, Oct 21

rmacklem accepted D47012: exports(5): -maproot, -mapall: Explain the fallback on no group.

Looks fine to me. You might ask manpages for a review as well.

Mon, Oct 21, 10:56 PM
rmacklem closed D47204: Fix the NFS server's handling of exported mapped credentials with cr_ngroups == 0.
Mon, Oct 21, 10:51 PM
rmacklem committed rGcaa309c8811d: nfsd: Fix handling of credentials with cr_ngroups == 0 (authored by rmacklem).
nfsd: Fix handling of credentials with cr_ngroups == 0
Mon, Oct 21, 10:51 PM
rmacklem added a comment to D47204: Fix the NFS server's handling of exported mapped credentials with cr_ngroups == 0.

This seems fine. Is this fix the result of a bug report or just something you noticed? If the latter I wonder if just fixing the documentation would be simpler if the feature never worked.

Mon, Oct 21, 4:11 PM

Sat, Oct 19

rmacklem requested review of D47204: Fix the NFS server's handling of exported mapped credentials with cr_ngroups == 0.
Sat, Oct 19, 8:31 PM

Oct 16 2024

rmacklem accepted D47014: mountd(8): parsecred(): Remove comment on non-existent bug.

Looks ok to me.

Oct 16 2024, 3:30 PM

Oct 14 2024

rmacklem accepted D47016: mountd(8): Allow to pass {NGROUPS_MAX} + 1 groups.

This version looks fine to me.

Oct 14 2024, 8:03 PM

Oct 13 2024

rmacklem committed rG6b0b026ae1a4: nfsd.c: Synchronize error handling (authored by joyul_juniper.net).
nfsd.c: Synchronize error handling
Oct 13 2024, 9:01 PM
rmacklem committed rG5a2cd24c46e3: nfsd.c: Synchronize error handling (authored by joyul_juniper.net).
nfsd.c: Synchronize error handling
Oct 13 2024, 8:51 PM
rmacklem accepted D47015: mountd(8): parsecred(): Re-order operations for clarity.

I'll click Accept, although I do not think it makes the code
clearer.
Just make it clear in the commit message that there are
no semantics change/bugfix done by this commit.

Oct 13 2024, 8:45 PM
rmacklem added inline comments to D47016: mountd(8): Allow to pass {NGROUPS_MAX} + 1 groups.
Oct 13 2024, 8:39 PM

Oct 12 2024

rmacklem added a comment to D46918: nfs, rpc: Ensure kernel credentials have at least one group.

Yuck! I never noticed this in the man page (I'm not going to look and
see who the author was, it might have been me long ago;-).

So, it says that an exports mapping credential can have no groups.

The easiest fix might be to just add a couple of lines at the beginning of grouplist()
retuning failed when cr_ngroups == 0.

I think you need to ask the "collective" (on a mailing list, such as freebsd-stable@
or freebsd-current@) what should be done about this.
I.e:
--> Fix grouplist() and any others to handle the case of cr_ngroups == 0 correctly.
OR
--> Fix the exports(5) man page and do not allow the case of "no groups".

Oops, when I said grouplist() above, I meant groupmember(), which I
think is the only function that checks to see if a credential has a group
that matches the group ownership of the file (or the ACE in the ACL for
the file).

groupmember() (and realgroupmember() I added a while ago) are just the tip of the iceberg. The harder problem is that cr_groups[0] (or its alias, cr_gid) is accessed in multiple places without any checks. And even adding checks can only go so far, i.e., will cause crash (or malfunction in production if checks are under INVARIANTS) only in very specific cases that may be hard to trigger. There are simply places where not having a GID is not a possibility, especially for process credentials. struct ucred is arguably used for other purposes that may not formally require a GID (and other stuff like MAC labels), which would plead in favor of having other structures/simplified access check functions for other cases, which you had to do for the NFS interfaces. I doubt that trying to remove the one-group minimum (i.e., compulsory effective GID) requirement is worth it without also doing the latter part. Just moving the required one minimum slot from cr_groups to a really separate cr_gid field alone is probably not worth the trouble. In any case, I don't have time to devote to that for now.

Well, the NFS server does not use these mapped exported credentials in many ways.
As far as I can see at a quick look, groupmember(), which is called from VOP_ACCESS()/VOP_ACCESSX()
is about it.
Since the exports(5) man page suggests that this is a valid case, then I think the code should be fixed
to handle cr_ngroups == 0 for this specific case (not all uses of cr_ngroups).
Note that this appears to have been broken by commit 7f92e57 on Jun 20, 2009.
(Prior to that, groupmember would always return failure for cr_ngroups == 0.)

I think the first step is to fix groupmember() by adding something like:

/*
 * The NFS server can use a credential with cr_ngroups == 0 when using a mapped
 * exported credential.
 */
if (cred->cr_ngroups == 0)
    return (false);

at the beginning of groupmember().
Since the code in vfs_domount_update() sets export.ex_groups = NULL, it should
be easy to find any other places that need to be fixed by running some testing.
(I will start doing that to-day.)

Making the credentials into a grouplist of one element set to GID_NOGROUP is
not the best plan, since it is possible to have a file with a gid ownership of GID_NOGROUP.
(It can happen frequently when NFSv4 is misconfigured, so the Owner_group translates
to GID_NOGROUP, since it cannot do the correct translation.)

The above change is obviously safe and can be MFC'd.

I did test the above patch along with a "hack" that set cr_groups = NULL,
so any access would cause a crash.
The only one I got was from a totally bogus line in nfsd_excred(0 which
looks like: nd->nd_cred->cr_gid = credanon->cr_gid;
just before crsetgroups(), so it is harmless noise (left over from code meant
to work for BSDen that had a separate cr_gid.)

Oct 12 2024, 11:58 PM
rmacklem committed rGcc07d914bc80: nfsd: Fix close handling when vfs.nfsd.enable_locallocks=1 (authored by rmacklem).
nfsd: Fix close handling when vfs.nfsd.enable_locallocks=1
Oct 12 2024, 12:51 AM
rmacklem added a reverting change for rG9792c7d3eb41: nfscl: Enable support for the Lookup+Open RPC: rG83ac4cebe84e: Revert "nfscl: Enable support for the Lookup+Open RPC".
Oct 12 2024, 12:46 AM
rmacklem committed rG83ac4cebe84e: Revert "nfscl: Enable support for the Lookup+Open RPC" (authored by rmacklem).
Revert "nfscl: Enable support for the Lookup+Open RPC"
Oct 12 2024, 12:46 AM
rmacklem committed rGe7474c619270: nfsd: Fix close handling when vfs.nfsd.enable_locallocks=1 (authored by rmacklem).
nfsd: Fix close handling when vfs.nfsd.enable_locallocks=1
Oct 12 2024, 12:45 AM

Oct 11 2024

rmacklem added a comment to D46918: nfs, rpc: Ensure kernel credentials have at least one group.

Yuck! I never noticed this in the man page (I'm not going to look and
see who the author was, it might have been me long ago;-).

So, it says that an exports mapping credential can have no groups.

The easiest fix might be to just add a couple of lines at the beginning of grouplist()
retuning failed when cr_ngroups == 0.

I think you need to ask the "collective" (on a mailing list, such as freebsd-stable@
or freebsd-current@) what should be done about this.
I.e:
--> Fix grouplist() and any others to handle the case of cr_ngroups == 0 correctly.
OR
--> Fix the exports(5) man page and do not allow the case of "no groups".

Oops, when I said grouplist() above, I meant groupmember(), which I
think is the only function that checks to see if a credential has a group
that matches the group ownership of the file (or the ACE in the ACL for
the file).

groupmember() (and realgroupmember() I added a while ago) are just the tip of the iceberg. The harder problem is that cr_groups[0] (or its alias, cr_gid) is accessed in multiple places without any checks. And even adding checks can only go so far, i.e., will cause crash (or malfunction in production if checks are under INVARIANTS) only in very specific cases that may be hard to trigger. There are simply places where not having a GID is not a possibility, especially for process credentials. struct ucred is arguably used for other purposes that may not formally require a GID (and other stuff like MAC labels), which would plead in favor of having other structures/simplified access check functions for other cases, which you had to do for the NFS interfaces. I doubt that trying to remove the one-group minimum (i.e., compulsory effective GID) requirement is worth it without also doing the latter part. Just moving the required one minimum slot from cr_groups to a really separate cr_gid field alone is probably not worth the trouble. In any case, I don't have time to devote to that for now.

Oct 11 2024, 9:26 PM

Oct 9 2024

rmacklem accepted D47013: nmount(2), NFS: Accept 'ngroups_max + 1' groups in "export" credentials.

Looks fine to me, since ngroups_max can never
be set < NGROUPS_MAX.

Oct 9 2024, 2:29 AM

Oct 8 2024

rmacklem added a comment to D46918: nfs, rpc: Ensure kernel credentials have at least one group.

You claim there are bugs that result in no groups
(cr_ngroups == 0), but you do not show a specific
test case that finds this or describe exactly how it
happens.

See, e.g., current processing of a list uid:gid:.. when just uid: is passed (no GID, but a colon at the end), and the below patch. This possibility is incidentally documented as the way to specify no groups in the exports(5) man page (under -maproot).

Yuck! I never noticed this in the man page (I'm not going to look and
see who the author was, it might have been me long ago;-).

So, it says that an exports mapping credential can have no groups.

The easiest fix might be to just add a couple of lines at the beginning of grouplist()
retuning failed when cr_ngroups == 0.

I think you need to ask the "collective" (on a mailing list, such as freebsd-stable@
or freebsd-current@) what should be done about this.
I.e:
--> Fix grouplist() and any others to handle the case of cr_ngroups == 0 correctly.
OR
--> Fix the exports(5) man page and do not allow the case of "no groups".

Oops, when I said grouplist() above, I meant groupmember(), which I
think is the only function that checks to see if a credential has a group
that matches the group ownership of the file (or the ACE in the ACL for
the file).

Oct 8 2024, 12:39 AM
rmacklem added inline comments to D46921: mountd(8): parsecred(): Groups limit: NGROUPS_MAX => NGROUPS_MAX + 1.
Oct 8 2024, 12:24 AM
rmacklem added a comment to D46918: nfs, rpc: Ensure kernel credentials have at least one group.

You claim there are bugs that result in no groups
(cr_ngroups == 0), but you do not show a specific
test case that finds this or describe exactly how it
happens.

See, e.g., current processing of a list uid:gid:.. when just uid: is passed (no GID, but a colon at the end), and the below patch. This possibility is incidentally documented as the way to specify no groups in the exports(5) man page (under -maproot).

Yuck! I never noticed this in the man page (I'm not going to look and
see who the author was, it might have been me long ago;-).

Oct 8 2024, 12:04 AM

Oct 7 2024

rmacklem added inline comments to D46919: mountd(8): parsecred(): uid:gid:... loop: Simplify a bit.
Oct 7 2024, 3:59 PM
rmacklem added inline comments to D46919: mountd(8): parsecred(): uid:gid:... loop: Simplify a bit.
Oct 7 2024, 3:22 PM
rmacklem added a comment to D46920: mountd(8): parsecred(): Remove "duplicate compression".

Sun RPC has a gid plus a list of additional groups (MAX 16) on the wire.
Broken code existed for a long time, that did the following:

cr_gid = gid
copy groups list

Step two overwrote the first gid, since cr_gid was just cr_groups[0] for BSD

The workaround was to put the same gid# in gid and element 0 of the Sun RPC
on-the-wire gid list.

I wasn't aware, thanks for providing these elements. That said, what you describe is only a problem if that Sun RPC code is used verbatim on a BSD, which has not been the case for a long time on FreeBSD AFAICT, and the remote doesn't put the same GID in the first element of the groups array.

Are any of these broken systems still out there (several very old variants of *BSD)?
If they are, you can easily break interoperability if you take this "put the same gid
in gid and element 0 of the gid list on the wire".

I see. However, I think the situation here in mountd is the opposite: We were just getting rid of one occurrence of a GID if both present as the effective GID (slot 0) and the first supplementary group (slot 1), and my point is that doing so is unnecessary (as explained in the commit message).

--> The code that looks for and gets rid of the duplicate on the receiving side

probably doesn't matter.

Not sure why you refer to the receiving side here. mountd, AFAICT, is always the sending side for such information. Or are you referring to some implementations of getgrouplist() such as NIS, or some other method?

Yes. The historical background wass just FYI for whoever was reading this
and wondering why the code would check for a duplicate.
I agree with you that the duplicate is unlikely to still exist in passwd/group databases
used by FreeBSD, so removing the code seems reasonable and does simplify the
code slightly.

Oct 7 2024, 3:02 PM
rmacklem added a comment to D46921: mountd(8): parsecred(): Groups limit: NGROUPS_MAX => NGROUPS_MAX + 1.

Remember this code is setting up exports. The "credentials" are created
from the exports in the kernel. It has nothing to do with setuid()/setgid()
etc. for processes.

Oct 7 2024, 2:56 PM
rmacklem added inline comments to D46920: mountd(8): parsecred(): Remove "duplicate compression".
Oct 7 2024, 2:48 PM

Oct 4 2024

rmacklem added inline comments to D46919: mountd(8): parsecred(): uid:gid:... loop: Simplify a bit.
Oct 4 2024, 11:36 PM
rmacklem accepted D46919: mountd(8): parsecred(): uid:gid:... loop: Simplify a bit.
Oct 4 2024, 11:26 PM
rmacklem added a comment to D46918: nfs, rpc: Ensure kernel credentials have at least one group.

You claim there are bugs that result in no groups
(cr_ngroups == 0), but you do not show a specific
test case that finds this or describe exactly how it
happens.
--> If there is such a case (I am not aware of one),

we should try to isolate/fix that such that there
is always at least one group in the credentials.

(There is always at least one group in the credentials
that come on on-the-wire, since there is a separate gid
in the Sun RPC AUTH_UNIX authenticator from the
list of additional groups.)

Oct 4 2024, 11:21 PM
rmacklem added inline comments to D46920: mountd(8): parsecred(): Remove "duplicate compression".
Oct 4 2024, 10:57 PM
rmacklem added inline comments to D46921: mountd(8): parsecred(): Groups limit: NGROUPS_MAX => NGROUPS_MAX + 1.
Oct 4 2024, 10:50 PM
rmacklem added a comment to D46920: mountd(8): parsecred(): Remove "duplicate compression".

I will look at the patches later, but just in case you are not aware of
why a lot of this weirdness exists in the code...

Oct 4 2024, 2:50 PM

Sep 30 2024

rmacklem committed rGeb345e05ac66: nfsd: Fix close handling when vfs.nfsd.enable_locallocks=1 (authored by rmacklem).
nfsd: Fix close handling when vfs.nfsd.enable_locallocks=1
Sep 30 2024, 10:52 PM

Sep 29 2024

rmacklem committed rGf321956d9806: nfsd.c: Synchronize error handling (authored by joyul_juniper.net).
nfsd.c: Synchronize error handling
Sep 29 2024, 8:15 PM
rmacklem closed D46442: Error handling in nfsd.
Sep 29 2024, 8:14 PM

Sep 28 2024

rmacklem committed rG6df05714da16: Revert "nfscl: Enable support for the Lookup+Open RPC" (authored by rmacklem).
Revert "nfscl: Enable support for the Lookup+Open RPC"
Sep 28 2024, 10:04 PM
rmacklem added a reverting change for rG9792c7d3eb41: nfscl: Enable support for the Lookup+Open RPC: rG6df05714da16: Revert "nfscl: Enable support for the Lookup+Open RPC".
Sep 28 2024, 10:04 PM

Sep 27 2024

rmacklem committed rG132f5d03d358: mountd: Add check for "=" after exports(5) options (authored by rmacklem).
mountd: Add check for "=" after exports(5) options
Sep 27 2024, 10:20 PM
rmacklem committed rGc09ca8f43de1: mountd: Add check for "=" after exports(5) options (authored by rmacklem).
mountd: Add check for "=" after exports(5) options
Sep 27 2024, 10:16 PM

Sep 15 2024

rmacklem accepted D46442: Error handling in nfsd.

Looks ok to me.

Sep 15 2024, 8:41 PM

Sep 10 2024

rmacklem added a comment to D46247: Fix the ZFS sharenfs property for DNS names with '-'s in them.

Just fyi, I have created a Pull Request for this on OpenZFS,
so please review it over there.

Sep 10 2024, 10:30 PM
rmacklem committed rGd72ace979924: nfsd: Fix handling of NFSv4 setable attributes (authored by rmacklem).
nfsd: Fix handling of NFSv4 setable attributes
Sep 10 2024, 1:38 AM
rmacklem committed rG617a9b99a594: nfsd: Fix handling of NFSv4 setable attributes (authored by rmacklem).
nfsd: Fix handling of NFSv4 setable attributes
Sep 10 2024, 1:33 AM

Sep 6 2024

rmacklem committed rG3df987c99d11: mountd: Add check for "=" after exports(5) options (authored by rmacklem).
mountd: Add check for "=" after exports(5) options
Sep 6 2024, 11:43 PM

Aug 31 2024

rmacklem committed rG6bde10b638d1: nfsproto.h: Define the new mode_umask attribute (authored by rmacklem).
nfsproto.h: Define the new mode_umask attribute
Aug 31 2024, 2:04 AM
rmacklem committed rGcfcf0db9097a: nfsproto.h: Define the new mode_umask attribute (authored by rmacklem).
nfsproto.h: Define the new mode_umask attribute
Aug 31 2024, 1:55 AM

Aug 27 2024

rmacklem committed rG5037c6398b23: nfsd: Fix handling of NFSv4 setable attributes (authored by rmacklem).
nfsd: Fix handling of NFSv4 setable attributes
Aug 27 2024, 9:21 PM

Aug 21 2024

rmacklem committed rG2477e88b8d43: nfs: Add support for the NFSv4.2 mode_umask attribute (authored by rmacklem).
nfs: Add support for the NFSv4.2 mode_umask attribute
Aug 21 2024, 1:50 AM

Aug 17 2024

rmacklem committed rG10d5b43424da: nfsproto.h: Define the new mode_umask attribute (authored by rmacklem).
nfsproto.h: Define the new mode_umask attribute
Aug 17 2024, 12:42 AM

Aug 8 2024

rmacklem requested review of D46247: Fix the ZFS sharenfs property for DNS names with '-'s in them.
Aug 8 2024, 11:55 PM

Jul 28 2024

rmacklem committed rG0172b5145ad9: nfscl: Scan readdir reply filenames for invalid characters (authored by rmacklem).
nfscl: Scan readdir reply filenames for invalid characters
Jul 28 2024, 4:15 AM
rmacklem committed rG9328ded386d5: nfscl: Scan readdir reply filenames for invalid characters (authored by rmacklem).
nfscl: Scan readdir reply filenames for invalid characters
Jul 28 2024, 3:55 AM

Jul 23 2024

rmacklem committed rGf84ac01e1829: nfsd: Make modifying vfs.nfsd.enable_locallocks safe (authored by rmacklem).
nfsd: Make modifying vfs.nfsd.enable_locallocks safe
Jul 23 2024, 12:57 AM
rmacklem committed rGd5ae681d2e74: nfsd: Make modifying vfs.nfsd.enable_locallocks safe (authored by rmacklem).
nfsd: Make modifying vfs.nfsd.enable_locallocks safe
Jul 23 2024, 12:32 AM

Jul 22 2024

rmacklem committed rGe6d78780c9cc: nfsd: Allow a mutex lock for clientID handling (authored by rmacklem).
nfsd: Allow a mutex lock for clientID handling
Jul 22 2024, 11:33 PM
rmacklem committed rG7a76f3591036: nfsd: Allow a mutex lock for clientID handling (authored by rmacklem).
nfsd: Allow a mutex lock for clientID handling
Jul 22 2024, 10:10 PM
rmacklem committed rGc664b786ccd1: nfsd: Fix nfsrv_cleanclient so that it can be called with a mutex (authored by rmacklem).
nfsd: Fix nfsrv_cleanclient so that it can be called with a mutex
Jul 22 2024, 1:40 AM

Jul 21 2024

rmacklem committed rG7ac2b39c59bd: nfsd: Fix nfsrv_cleanclient so that it can be called with a mutex (authored by rmacklem).
nfsd: Fix nfsrv_cleanclient so that it can be called with a mutex
Jul 21 2024, 11:11 PM
rmacklem committed rG026cdaa3b3a9: nfscl: Scan readdir reply filenames for invalid characters (authored by rmacklem).
nfscl: Scan readdir reply filenames for invalid characters
Jul 21 2024, 10:58 PM

Jul 13 2024

rmacklem committed rG0ed8ae14d9e0: nfscl: Add a check for VREG for delegations (authored by rmacklem).
nfscl: Add a check for VREG for delegations
Jul 13 2024, 12:50 AM
rmacklem committed rGc71b59bbc4a3: nfscl: Add support for read delegations and atomic upgrade (authored by rmacklem).
nfscl: Add support for read delegations and atomic upgrade
Jul 13 2024, 12:48 AM
rmacklem committed rGf6f9589b9f05: nfscl: Add support for the NFSv4.1/4.2 WANT_xxx flags (authored by rmacklem).
nfscl: Add support for the NFSv4.1/4.2 WANT_xxx flags
Jul 13 2024, 12:47 AM

Jul 11 2024

rmacklem committed rGbae19029ad2a: rpcbind.8: Fix missing option entry in commit df3f247e4696 (authored by rmacklem).
rpcbind.8: Fix missing option entry in commit df3f247e4696
Jul 11 2024, 8:05 PM
rmacklem committed rG2e5c9eaf5728: mountd.8: Update the man page for -N and -s (authored by joyul_juniper.net).
mountd.8: Update the man page for -N and -s
Jul 11 2024, 7:53 PM
rmacklem committed rG7c2901b08b4e: mountd: Add options to disable daemon mode and setting localhost (authored by joyul_juniper.net).
mountd: Add options to disable daemon mode and setting localhost
Jul 11 2024, 7:41 PM

Jul 9 2024

rmacklem committed rGf7dc514c01d0: nfsd.8: Update the man page for -N (authored by joyul_juniper.net).
nfsd.8: Update the man page for -N
Jul 9 2024, 7:52 PM
rmacklem committed rG77439cd18f34: nfsd: Add option to disable going into daemon mode (authored by joyul_juniper.net).
nfsd: Add option to disable going into daemon mode
Jul 9 2024, 7:48 PM

Jul 7 2024

rmacklem committed rGdf3f247e4696: rpcbind.8: Update the man page for -I (authored by joyul_juniper.net).
rpcbind.8: Update the man page for -I
Jul 7 2024, 7:21 PM
rmacklem added a comment to D45118: Add options for mountd , nfsd and rpcbind.

No problem Ed. Hope you enjoyed your vacation.
The code changes are pretty straightforward. I left
them in the style consistent with the rest of the code.
(Using "int"s instead of "bool"s for example.)

Jul 7 2024, 2:39 AM

Jul 6 2024

rmacklem committed rGd8a99eaa1f06: rpcbind: Add option to disable local host binding (authored by joyul_juniper.net).
rpcbind: Add option to disable local host binding
Jul 6 2024, 8:43 PM
rmacklem closed D45118: Add options for mountd , nfsd and rpcbind.
Jul 6 2024, 8:42 PM
rmacklem accepted D45118: Add options for mountd , nfsd and rpcbind.

I have made the changes suggested by Alexander Ziaee to the
man pages, although I cannot update the diff here.

Jul 6 2024, 8:08 PM

Jul 5 2024

rmacklem committed rGcbf54cdb36cf: nfsd: Update a file missed by commit e2c9fad2e0ae (authored by rmacklem).
nfsd: Update a file missed by commit e2c9fad2e0ae
Jul 5 2024, 1:18 AM
rmacklem committed rG98c53b0b5540: nfsd: Fix delegation handled for atomic upgrade (authored by rmacklem).
nfsd: Fix delegation handled for atomic upgrade
Jul 5 2024, 1:15 AM

Jul 4 2024

rmacklem added a reviewer for D45118: Add options for mountd , nfsd and rpcbind: emaste.

Ed, maybe you can take a look at the source changes?
The man page changes have already been reviewed.
I can update those and I am willing to commit these
once you've taken a look at them.

Jul 4 2024, 1:37 AM

Jul 3 2024

rmacklem added a comment to D45814: Allow ZFS sharenfs to generate multiple export(5) lines.

If you are agreeable to my version of the length formula,
I will update the patch with that and checks for NULL
return for both strdup() and malloc().

Jul 3 2024, 8:23 PM
rmacklem added a comment to D45814: Allow ZFS sharenfs to generate multiple export(5) lines.

I did take a quick look at the Linux code and it
appears to be completely different to me, so I
don't think trying to convert it makes sense, at
least for now.

Jul 3 2024, 4:43 AM
rmacklem updated the diff for D45814: Allow ZFS sharenfs to generate multiple export(5) lines.

Used strdup() to copy the options into a malloc'd area,
as suggested by mav@. This makes sense, since a sharenfs
with many semicolons could be much larger than an
option list.

Jul 3 2024, 4:39 AM

Jul 1 2024

rmacklem updated the diff for D45814: Allow ZFS sharenfs to generate multiple export(5) lines.

This version ignores whitespace only semicolon separated
option sets. I decided that allowing the "only whitespace
case" which generates a line with default options (which
is read/write to the world) did not make sense when other
option sets are being specified for other hosts/networks.

Jul 1 2024, 10:15 PM

Jun 30 2024

rmacklem requested review of D45814: Allow ZFS sharenfs to generate multiple export(5) lines.
Jun 30 2024, 7:59 PM

Jun 23 2024

rmacklem committed rG67284d32e5e0: nfsd: Make modifying vfs.nfsd.enable_locallocks safe (authored by rmacklem).
nfsd: Make modifying vfs.nfsd.enable_locallocks safe
Jun 23 2024, 10:49 PM

Jun 22 2024

rmacklem committed rGdfaeeacc2cc2: nfsd: Allow a mutex lock for clientID handling (authored by rmacklem).
nfsd: Allow a mutex lock for clientID handling
Jun 22 2024, 10:58 PM
rmacklem committed rG85641d316a87: nfsd: Delete an unused VNET global variable (authored by rmacklem).
nfsd: Delete an unused VNET global variable
Jun 22 2024, 1:28 AM

Jun 21 2024

rmacklem committed rGa7de51068502: nfsd: Fix nfsrv_cleanclient so that it can be called with a mutex (authored by rmacklem).
nfsd: Fix nfsrv_cleanclient so that it can be called with a mutex
Jun 21 2024, 10:11 PM

Jun 12 2024

rmacklem committed rGbb53f071e85a: nfscl: Add support for read delegations and atomic upgrade (authored by rmacklem).
nfscl: Add support for read delegations and atomic upgrade
Jun 12 2024, 11:43 PM
rmacklem committed rG4308d6e0fc09: nfscl: Add a check for VREG for delegations (authored by rmacklem).
nfscl: Add a check for VREG for delegations
Jun 12 2024, 11:18 PM
rmacklem committed rGec1f285f2e63: nfscl: Add support for the NFSv4.1/4.2 WANT_xxx flags (authored by rmacklem).
nfscl: Add support for the NFSv4.1/4.2 WANT_xxx flags
Jun 12 2024, 11:13 PM

Jun 8 2024

rmacklem committed rG13a51233e4c7: nfsd: Delete an unused VNET global variable (authored by rmacklem).
nfsd: Delete an unused VNET global variable
Jun 8 2024, 11:42 PM

Jun 5 2024

rmacklem committed rGdbe7ff254e6c: nfsd: Update a file missed by commit e2c9fad2e0ae (authored by rmacklem).
nfsd: Update a file missed by commit e2c9fad2e0ae
Jun 5 2024, 1:58 AM
rmacklem committed rGe2c9fad2e0ae: nfsd: Fix delegation handled for atomic upgrade (authored by rmacklem).
nfsd: Fix delegation handled for atomic upgrade
Jun 5 2024, 1:50 AM

May 31 2024

rmacklem committed rG4c136aad80e6: svc.c: Check for a non-NULL xp_socket (authored by rmacklem).
svc.c: Check for a non-NULL xp_socket
May 31 2024, 10:37 PM

May 28 2024

rmacklem committed rG6c9170e0afc4: svc.c: Check for a non-NULL xp_socket (authored by rmacklem).
svc.c: Check for a non-NULL xp_socket
May 28 2024, 2:24 AM

May 26 2024

rmacklem committed rGc68db4608ef6: Revert "nfscl: Do not do readahead for directories" (authored by rmacklem).
Revert "nfscl: Do not do readahead for directories"
May 26 2024, 3:06 PM
rmacklem added a reverting change for rGfbe965591f8a: nfscl: Do not do readahead for directories: rGc68db4608ef6: Revert "nfscl: Do not do readahead for directories".
May 26 2024, 3:06 PM

May 13 2024

rmacklem committed rG2c65656b29fb: nfsd: Fix Link conformance with RFC8881 for delegations (authored by rmacklem).
nfsd: Fix Link conformance with RFC8881 for delegations
May 13 2024, 4:52 AM

May 11 2024

rmacklem committed rG85e63d952d5d: nfsd: Fix Link conformance with RFC8881 for delegations (authored by rmacklem).
nfsd: Fix Link conformance with RFC8881 for delegations
May 11 2024, 1:12 AM
rmacklem committed rG3c414a8c2fb3: nfsd: Fix Link conformance with RFC8881 for delegations (authored by rmacklem).
nfsd: Fix Link conformance with RFC8881 for delegations
May 11 2024, 1:07 AM

May 10 2024

rmacklem committed rGfbe965591f8a: nfscl: Do not do readahead for directories (authored by rmacklem).
nfscl: Do not do readahead for directories
May 10 2024, 1:36 AM