Page MenuHomeFreeBSD
Feed Advanced Search

Jun 18 2019

rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

One more patch update. This one is an optimization. If a hole is found that extends to
the end of the byte range being copied, all subsequent reads will return all 0 bytes.
This patch adds a Boolean variable called readzeros to flag this case and avoid doing
the unnecessary reads.

Jun 18 2019, 5:05 PM
rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

Oops, found one more bug during proofreading. If the hole being punched by writing 0s was
greater than blksize in length, the memset() would have gone off the end of the dat buffer.
This version has the above fixed. To make the code cleaner, I factored out the writing of a chunk
of outvp into a separate function.

Jun 18 2019, 2:17 PM
rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

During a proofread, I spotted that vn_copy_file_range() was broken if the input file had a hole
that straddled the end of the byte range being copied.
This version of the patch has that fixed, plus a typo in a comment and little bit or reordering
of the code (that doesn't affect correctness).

Jun 18 2019, 1:36 AM

Jun 17 2019

rmacklem committed rS349128: MFC: r347583.
MFC: r347583
Jun 17 2019, 12:59 AM
rmacklem committed rS349127: MFC: r347583.
MFC: r347583
Jun 17 2019, 12:38 AM
rmacklem committed rS349126: MFC: r347498.
MFC: r347498
Jun 17 2019, 12:29 AM
rmacklem committed rS349125: MFC: r347498.
MFC: r347498
Jun 17 2019, 12:20 AM
rmacklem committed rS349124: MFC: r347476.
MFC: r347476
Jun 17 2019, 12:12 AM
rmacklem committed rS349123: MFC: r347476.
MFC: r347476
Jun 17 2019, 12:00 AM

Jun 16 2019

rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

Change the mem_iszero() helper function to return bool instead of int, since C99 bool is now fashionable
in the FreeBSD kernel.

Jun 16 2019, 3:00 PM
rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

Changed an int to a bool, since C99 bools now appear to be fashionable in the FreeBSD kernel.

Jun 16 2019, 2:27 PM
rmacklem added inline comments to D20645: add non-blocking variants of rangelock_rlock() and rangelock_wlock().
Jun 16 2019, 5:14 AM
rmacklem added a comment to D20645: add non-blocking variants of rangelock_rlock() and rangelock_wlock().

int arguments changed to C99 bool as requested by kib@.

Jun 16 2019, 5:12 AM

Jun 15 2019

rmacklem added a comment to D20645: add non-blocking variants of rangelock_rlock() and rangelock_wlock().

Added replies to inline comments.

Jun 15 2019, 11:23 PM
rmacklem added a comment to D20645: add non-blocking variants of rangelock_rlock() and rangelock_wlock().

This variant allows a sleep to be done for allocation of a new list entry. It only returns NULL
if it would need to sleep waiting to be able to lock the range.

Jun 15 2019, 11:20 PM
rmacklem updated the diff for D20584: add a linux compatible copy_file_range(2) syscall.

Replace vn_rangelock_rlock_nonblock() with vn_rangelock_rlock_trylock() to be consistent with D20645.

Jun 15 2019, 5:50 AM
rmacklem updated the diff for D20645: add non-blocking variants of rangelock_rlock() and rangelock_wlock().

This variant of the patch has the "_nonblock" suffixes replaced by "_trylock" as suggested by asomers@.
A quick grep of src/sys/sys shows that "nonblock" is used for flags, but "_trylock" is used as a suffix
for non-blocking lock functions.

Jun 15 2019, 5:35 AM
rmacklem updated the diff for D20584: add a linux compatible copy_file_range(2) syscall.

This variant of the patch rangelocks the byte ranges for both the input and output files.
It uses the vn_rangelock_rlock_nonblock() call in the D20645 patch to do this without a
risk of deadlock.

Jun 15 2019, 1:51 AM
rmacklem created D20645: add non-blocking variants of rangelock_rlock() and rangelock_wlock().
Jun 15 2019, 12:29 AM

Jun 13 2019

rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

Added inline replies to the inline comments that still apply to this version.

Jun 13 2019, 11:24 PM
rmacklem updated the diff for D20584: add a linux compatible copy_file_range(2) syscall.

This version of the patch avoids the problems w.r.t. concurrent locking of two vnodes
by locking/unlocking the vnodes (which also implies rangelocks and vn_start_write())
in vn_rdwr().

Jun 13 2019, 11:00 PM
rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

I am going to take the "does this sycall need to be atomic?" over to FreeBSD-fs@.
(I will copy kib@'s and asomers@ comments into the post.)

Jun 13 2019, 9:15 PM

Jun 11 2019

rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

Yes, I did understand the comment w.r.t. range_locks. I fixed the rest of the stuff for two vnodes locked
concurrently, but I couldn't see an easy way to do range_locks on both of them without a LOR.

Jun 11 2019, 4:27 PM
rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

Added a question w.r.t. which way I should handle the locking of the two vnodes.

Jun 11 2019, 12:33 AM

Jun 10 2019

rmacklem created D20584: add a linux compatible copy_file_range(2) syscall.
Jun 10 2019, 1:20 AM

Jun 3 2019

rmacklem committed rS348591: r348590 had mention of "-I" in a comment that no longer applied to the patch..
r348590 had mention of "-I" in a comment that no longer applied to the patch.
Jun 3 2019, 11:07 PM
rmacklem closed D20487: add a new -I command line option to mountd which makes it update the kernel exports incrementally upon a reload.
Jun 3 2019, 10:59 PM
rmacklem committed rS348590: Modify mountd so that it incrementally updates the kernel exports upon a reload..
Modify mountd so that it incrementally updates the kernel exports upon a reload.
Jun 3 2019, 10:59 PM

Jun 2 2019

rmacklem added a comment to D20487: add a new -I command line option to mountd which makes it update the kernel exports incrementally upon a reload.

The COMPARE_ARRAYS() macro has been changed per suggestions by kib@.

Jun 2 2019, 10:04 PM
rmacklem updated the diff for D20487: add a new -I command line option to mountd which makes it update the kernel exports incrementally upon a reload.

The COMPARE_ARRAYS() macro has been changed to remove the "optimizations"
as suggested by kib@. It now just checks for the common case of identical
arrays by iterating through them with a for loop.
This also allowed the "typ" argument to be removed, since it is no longer needed.

Jun 2 2019, 10:01 PM
rmacklem added a comment to D20487: add a new -I command line option to mountd which makes it update the kernel exports incrementally upon a reload.

W.r.t. the config file. Unless there are several who disagree with just having this always enabled,
I think it is ok to just have it always enabled and not configurable.

Jun 2 2019, 12:06 AM

Jun 1 2019

rmacklem updated the diff for D20487: add a new -I command line option to mountd which makes it update the kernel exports incrementally upon a reload.

This version of the patch just implements the incremental update of the kernel exports
for all reloads and does not need/use the "-I" option.

Jun 1 2019, 11:56 PM

May 31 2019

rmacklem added a comment to D20487: add a new -I command line option to mountd which makes it update the kernel exports incrementally upon a reload.

Well, the main reason I made it an optional non-default option is...

  • The exports file format (and the code that parses it and reloads it) is complex and I may have missed a case such that the "-I reload" doesn't get it right. --> With a non-default option, the sysadmin can just go back to the default case and that should work around the bug until it is fixed. (Since the initial load must be a full loading of the exports, the non "-I" case code needs to remain in the sources and making it non-optional wouldn't simplify the code.)
May 31 2019, 9:42 PM
rmacklem created D20487: add a new -I command line option to mountd which makes it update the kernel exports incrementally upon a reload.
May 31 2019, 9:20 PM
rmacklem committed rS348453: Get rid of extraneous initialization..
Get rid of extraneous initialization.
May 31 2019, 3:13 AM
rmacklem committed rS348452: Replace a single linked list with a hash table of lists..
Replace a single linked list with a hash table of lists.
May 31 2019, 1:29 AM
rmacklem committed rS348451: Clean up silly code case..
Clean up silly code case.
May 31 2019, 12:56 AM

May 22 2019

rmacklem accepted D20323: Update VFS_FHTOVP(9) with the flags argument.

Sounds fine to me. (I'll admit I never look at man pages for this stuff and just the code, so
I didn't even notice there was a man page. Oops.)

May 22 2019, 3:24 PM
rmacklem added a comment to D20343: Add warnings for Kerberos GSS algorithms deprecated in RFCs 6649 and 8429..

I haven't had a Kerberos setup for quite a while.
However, Peter Errikson uses Kerberized NFS and even with a Windows KDC, I think?

May 22 2019, 5:41 AM

May 20 2019

rmacklem added a comment to D20270: Replace the single linked list of exported file system structures with a hash table of lists.

Here are the results of a test run done by Peter for a hash table of the size this patch
creates and one ten times bigger:

“BigHash” (without “/ 10”)

May 18 15:06:56 filur00 mountd[66347]: time spent reading exports: 6.9s
May 18 15:06:56 filur00 mountd[66347]: time spent updating kernel: 16.4s
May 18 15:07:10 filur00 mountd[67659]: time spent reading exports: 902.5ms
May 18 15:07:10 filur00 mountd[67659]: time spent updating kernel: 17.9ms

May 20 2019, 8:37 PM

May 16 2019

rmacklem created D20270: Replace the single linked list of exported file system structures with a hash table of lists.
May 16 2019, 3:36 AM

May 14 2019

rmacklem committed rS347583: Replace global list for grouplist with list(s) for each exportlist element..
Replace global list for grouplist with list(s) for each exportlist element.
May 14 2019, 10:01 PM

May 11 2019

rmacklem committed rS347498: Factor code into two new functions in preparation for a future commit..
Factor code into two new functions in preparation for a future commit.
May 11 2019, 10:42 PM

May 10 2019

rmacklem committed rS347476: Factor out some exportlist list operations into separate functions..
Factor out some exportlist list operations into separate functions.
May 10 2019, 11:52 PM

May 6 2019

rmacklem committed rS347174: MFC: r346856.
MFC: r346856
May 6 2019, 3:20 AM
rmacklem committed rS347172: MFC: r346856.
MFC: r346856
May 6 2019, 3:13 AM
rmacklem committed rS347171: MFC: r346856.
MFC: r346856
May 6 2019, 3:06 AM

May 3 2019

rmacklem committed rS347045: MFC: r346424.
MFC: r346424
May 3 2019, 3:05 AM
rmacklem committed rS347044: MFC: r346424.
MFC: r346424
May 3 2019, 2:58 AM
rmacklem committed rS347042: MFC: r346423.
MFC: r346423
May 3 2019, 2:51 AM
rmacklem committed rS347041: MFC: r346423.
MFC: r346423
May 3 2019, 2:45 AM
rmacklem committed rS347040: MFC: r346365.
MFC: r346365
May 3 2019, 2:30 AM
rmacklem committed rS347039: MFC: r346365.
MFC: r346365
May 3 2019, 2:18 AM
rmacklem committed rS347038: MFC: r346365.
MFC: r346365
May 3 2019, 2:03 AM

May 2 2019

rmacklem committed rS347010: MFC: r346709.
MFC: r346709
May 2 2019, 1:18 AM
rmacklem committed rS347009: MFC: r346709.
MFC: r346709
May 2 2019, 1:12 AM
rmacklem committed rS347008: MFC: r346709.
MFC: r346709
May 2 2019, 1:02 AM

Apr 28 2019

rmacklem committed rS346858: Add the standard check for V4 root security to nfsrvd_allocate()..
Add the standard check for V4 root security to nfsrvd_allocate().
Apr 28 2019, 11:46 PM
rmacklem committed rS346857: Delete some debug printfs..
Delete some debug printfs.
Apr 28 2019, 11:39 PM
rmacklem committed rS346856: Add #ifdef INET6 around declaration of nbuf..
Add #ifdef INET6 around declaration of nbuf.
Apr 28 2019, 10:38 PM

Apr 27 2019

rmacklem committed rS346799: Update the declaration of nfsv4_opflag..
Update the declaration of nfsv4_opflag.
Apr 27 2019, 11:47 PM
rmacklem committed rS346798: Add code that will clear the NFSv4.2 attributes for non-NFSv4.2 mounts..
Add code that will clear the NFSv4.2 attributes for non-NFSv4.2 mounts.
Apr 27 2019, 11:30 PM
rmacklem committed rS346797: Fix the merged kernel from head so that it builds..
Fix the merged kernel from head so that it builds.
Apr 27 2019, 10:31 PM
rmacklem committed rS346795: Merge in an up to date kernel from head..
Merge in an up to date kernel from head.
Apr 27 2019, 9:03 PM
rmacklem committed rS346794: Add some support for the posix_fallocate(2) syscall to the NFSv42 client/server..
Add some support for the posix_fallocate(2) syscall to the NFSv42 client/server.
Apr 27 2019, 8:22 PM
rmacklem committed rS346779: MFC: r346191.
MFC: r346191
Apr 27 2019, 2:43 AM
rmacklem committed rS346778: MFC: r346190.
MFC: r346190
Apr 27 2019, 2:34 AM
rmacklem committed rS346776: MFC: r346191.
MFC: r346191
Apr 27 2019, 2:25 AM
rmacklem committed rS346775: MFC: r346190.
MFC: r346190
Apr 27 2019, 2:13 AM
rmacklem committed rS346774: MFC: r346192.
MFC: r346192
Apr 27 2019, 2:05 AM
rmacklem committed rS346773: MFC: r346191.
MFC: r346191
Apr 27 2019, 1:59 AM
rmacklem committed rS346772: MFC: r346190.
MFC: r346190
Apr 27 2019, 1:50 AM

Apr 25 2019

rmacklem committed rS346709: Add support to nfsdumpstate for printing of INET6 addresses for locks..
Add support to nfsdumpstate for printing of INET6 addresses for locks.
Apr 25 2019, 9:25 PM

Apr 21 2019

rmacklem committed rS346506: Add #ifdef INET as requested by bz@..
Add #ifdef INET as requested by bz@.
Apr 21 2019, 10:54 PM
rmacklem committed rS346487: Fix Makefile after r346467 merged incorrect include file..
Fix Makefile after r346467 merged incorrect include file.
Apr 21 2019, 2:45 PM
rmacklem committed rS346468: MFC: r345995.
MFC: r345995
Apr 21 2019, 1:33 AM
rmacklem committed rS346467: MFC: r345994.
MFC: r345994
Apr 21 2019, 1:25 AM
rmacklem committed rS346466: MFC: r345992, r346087.
MFC: r345992, r346087
Apr 21 2019, 1:16 AM
rmacklem committed rS346465: MFC: r345995.
MFC: r345995
Apr 21 2019, 12:59 AM
rmacklem committed rS346464: MFC: r345994.
MFC: r345994
Apr 21 2019, 12:51 AM
rmacklem committed rS346463: MFC: r345992, r346087.
MFC: r345992, r346087
Apr 21 2019, 12:41 AM
rmacklem committed rS346462: MFC: r345995.
MFC: r345995
Apr 21 2019, 12:12 AM
rmacklem committed rS346461: MFC: r345994.
MFC: r345994
Apr 21 2019, 12:05 AM

Apr 20 2019

rmacklem committed rS346460: MFC: r345992, r346087.
MFC: r345992, r346087
Apr 20 2019, 11:46 PM

Apr 19 2019

rmacklem committed rS346424: Add support for the ModeSetMasked attribute to the NFSv4.1 server..
Add support for the ModeSetMasked attribute to the NFSv4.1 server.
Apr 19 2019, 11:35 PM
rmacklem committed rS346423: Replace "vp" with NULL to make the code more readable..
Replace "vp" with NULL to make the code more readable.
Apr 19 2019, 11:27 PM
rmacklem committed rS346365: Fix the NFSv4.0 server so that it does not support NFSv4.1 attributes..
Fix the NFSv4.0 server so that it does not support NFSv4.1 attributes.
Apr 19 2019, 3:36 AM

Apr 18 2019

rmacklem committed rS346344: MFC: r345866.
MFC: r345866
Apr 18 2019, 2:54 AM
rmacklem committed rS346343: MFC: r345866.
MFC: r345866
Apr 18 2019, 2:48 AM
rmacklem committed rS346342: MFC: r345866.
MFC: r345866
Apr 18 2019, 2:32 AM

Apr 16 2019

rmacklem committed rS346262: MFC: r345818, r345828.
MFC: r345818, r345828
Apr 16 2019, 2:48 AM
rmacklem committed rS346260: MFC: r345818, r345828.
MFC: r345818, r345828
Apr 16 2019, 2:38 AM
rmacklem committed rS346258: MFC: r345818, r345828.
MFC: r345818, r345828
Apr 16 2019, 2:12 AM

Apr 15 2019

rmacklem committed rS346217: Fix the NFSv4 client to safely find processes..
Fix the NFSv4 client to safely find processes.
Apr 15 2019, 1:27 AM
rmacklem closed D19887: fix the NFSv4 client so that it doesn't call pfind() with a mutex held.
Apr 15 2019, 1:27 AM

Apr 14 2019

rmacklem added a comment to D19887: fix the NFSv4 client so that it doesn't call pfind() with a mutex held.

Updated patch renames pfind_locked() to pfind_any_locked(), per mjg@'s request.

Apr 14 2019, 8:43 PM
rmacklem updated the diff for D19887: fix the NFSv4 client so that it doesn't call pfind() with a mutex held.

pfind_locked() has been renamed pfind_any_locked() and a comment
indicating that it finds zombies has been added, per mjg@'s request.

Apr 14 2019, 8:41 PM

Apr 13 2019

rmacklem committed rS346192: Fix printing of the line that starts with "LocalOpen..."..
Fix printing of the line that starts with "LocalOpen...".
Apr 13 2019, 11:26 PM
rmacklem added a comment to D19887: fix the NFSv4 client so that it doesn't call pfind() with a mutex held.

Replied to inline comment.

Apr 13 2019, 10:22 PM
rmacklem committed rS346191: Add support for INET6 addresses to the kernel code that dumps open/lock state..
Add support for INET6 addresses to the kernel code that dumps open/lock state.
Apr 13 2019, 10:00 PM