Page MenuHomeFreeBSD
Feed Advanced Search

Today

rmacklem committed rS352343: Update the nfsstats structure..
Update the nfsstats structure.
Sun, Sep 15, 2:17 AM

Fri, Sep 13

rmacklem committed rS352270: Add support for the Extended Attribute Access bits..
Add support for the Extended Attribute Access bits.
Fri, Sep 13, 1:07 AM
rmacklem committed rS352269: Add support for xattr_support attribute to the NFSv4.2 server..
Add support for xattr_support attribute to the NFSv4.2 server.
Fri, Sep 13, 1:04 AM

Mon, Sep 9

rmacklem committed rS352052: Make vop_stdioctl() a global function so that nfs_ioctl() can call it..
Make vop_stdioctl() a global function so that nfs_ioctl() can call it.
Mon, Sep 9, 1:05 AM
rmacklem committed rS352051: Merge in an up to date head kernel..
Merge in an up to date head kernel.
Mon, Sep 9, 12:48 AM

Sun, Sep 8

rmacklem committed rS352049: Move vfs.nfsd.maxcopyrange to vfs.nfs.maxcopyrange so client can use it as well..
Move vfs.nfsd.maxcopyrange to vfs.nfs.maxcopyrange so client can use it as well.
Sun, Sep 8, 9:43 PM

Sat, Sep 7

rmacklem committed rS352026: Make an obvious simplification of an "if" expression..
Make an obvious simplification of an "if" expression.
Sat, Sep 7, 11:39 PM
rmacklem committed rS352024: Increase the maximum request/response size for NFSv4.2..
Increase the maximum request/response size for NFSv4.2.
Sat, Sep 7, 9:27 PM
rmacklem committed rS351968: Add support for the List Extended Attributes RPC..
Add support for the List Extended Attributes RPC.
Sat, Sep 7, 4:10 AM

Fri, Sep 6

rmacklem committed rS351922: Add support for the NFSv4.2 Remove Extended Attribute operation..
Add support for the NFSv4.2 Remove Extended Attribute operation.
Fri, Sep 6, 2:52 AM

Thu, Sep 5

rmacklem committed rS351901: Delete the unused "nd" argument for nfsrv_proxyds()..
Delete the unused "nd" argument for nfsrv_proxyds().
Thu, Sep 5, 10:25 PM

Wed, Sep 4

rmacklem committed rS351834: Delete the unused "nd" argument for nfsrv_checkdsattr()..
Delete the unused "nd" argument for nfsrv_checkdsattr().
Wed, Sep 4, 10:37 PM
rmacklem committed rS351833: Factor out the code that creates an iovec from nfsvno_write()..
Factor out the code that creates an iovec from nfsvno_write().
Wed, Sep 4, 9:54 PM
rmacklem committed rS351832: Move vn_lock() down, so that it doesn't return ENOTTY with the vnode locked..
Move vn_lock() down, so that it doesn't return ENOTTY with the vnode locked.
Wed, Sep 4, 9:44 PM
rmacklem committed rS351829: MFC: r350395.
MFC: r350395
Wed, Sep 4, 8:14 PM

Mon, Sep 2

rmacklem committed rS351683: Set the Get extended attribute big reply and Set extended attribute big request..
Set the Get extended attribute big reply and Set extended attribute big request.
Mon, Sep 2, 2:52 AM
rmacklem committed rS351682: Factor the code that creates the mbuf chain from nfsvno_read()..
Factor the code that creates the mbuf chain from nfsvno_read().
Mon, Sep 2, 2:41 AM

Sun, Sep 1

rmacklem committed rS351652: Add the Set Extended attribute operation..
Add the Set Extended attribute operation.
Sun, Sep 1, 4:58 AM

Sat, Aug 31

rmacklem committed rS351646: Add support for the Get extended attribute operation..
Add support for the Get extended attribute operation.
Sat, Aug 31, 4:10 PM
rmacklem committed rS351645: Update the NFS common files for the optional Extended attribute support.
Update the NFS common files for the optional Extended attribute support
Sat, Aug 31, 3:17 PM

Tue, Aug 27

rmacklem committed rS351525: Add support for _PC_MIN_HOLE_SIZE to the NFSv4.2 client..
Add support for _PC_MIN_HOLE_SIZE to the NFSv4.2 client.
Tue, Aug 27, 1:40 AM

Thu, Aug 22

rmacklem committed rS351374: Add a couple of lines noting that r351372 maps ENOTTY->EINVAL for other cases..
Add a couple of lines noting that r351372 maps ENOTTY->EINVAL for other cases.
Thu, Aug 22, 1:30 AM
rmacklem committed rS351372: Map ENOTTY to EINVAL for lseek(SEEK_DATA/SEEK_HOLE)..
Map ENOTTY to EINVAL for lseek(SEEK_DATA/SEEK_HOLE).
Thu, Aug 22, 1:15 AM
rmacklem closed D21300: Fix lseek() so that it never returns errnos not listed on the man page, such as ENOTTY.
Thu, Aug 22, 1:15 AM
rmacklem committed rS351371: Allow a NFSv4.2 Data server to handle Seek..
Allow a NFSv4.2 Data server to handle Seek.
Thu, Aug 22, 12:37 AM

Wed, Aug 21

rmacklem added a comment to D21300: Fix lseek() so that it never returns errnos not listed on the man page, such as ENOTTY.

Updated the patch to only map ENOTTY to EINVAL, per Mark's comments.

Wed, Aug 21, 10:28 PM
rmacklem added a comment to D21300: Fix lseek() so that it never returns errnos not listed on the man page, such as ENOTTY.

Actually, I only mapped ENOTTY when I first did the patch. The only reason I changed it
is that any error returned by VOP_GETATTR() also gets returned to lseek(2). For NFS,
this could be EACCES, for example, since file permissions are checked for every operation
on NFS, nit just at open(2) time.

Wed, Aug 21, 4:55 AM

Tue, Aug 20

rmacklem committed rS351252: Fix nfsvno_seek()'s setting of eof..
Fix nfsvno_seek()'s setting of eof.
Tue, Aug 20, 5:00 PM
rmacklem committed rS351247: Add proxy support to the NFSv4.2 server Seek command so that it will.
Add proxy support to the NFSv4.2 server Seek command so that it will
Tue, Aug 20, 5:37 AM

Mon, Aug 19

rmacklem committed rS351202: Add an entry to RELNOTES for r351201..
Add an entry to RELNOTES for r351201.
Mon, Aug 19, 12:46 AM
rmacklem closed D21299: Add a vop_stdioctl() that does the trivial algorithm for FIOSEEKDATA/FIOSEEKHOLE.
Mon, Aug 19, 12:29 AM
rmacklem committed rS351201: Add a vop_stdioctl() that performs a trivial FIOSEEKDATA/FIOSEEKHOLE..
Add a vop_stdioctl() that performs a trivial FIOSEEKDATA/FIOSEEKHOLE.
Mon, Aug 19, 12:29 AM

Sun, Aug 18

rmacklem added a comment to D21299: Add a vop_stdioctl() that does the trivial algorithm for FIOSEEKDATA/FIOSEEKHOLE.

This version of the patch has the changes suggested by kib@ incorporated in it.
The only semantic change is that it now returns whatever error VOP_GETATTR()
returns if VOP_GETATTR() fails. This is consistent with the behaviour of vn_bmap_seekhole().

Sun, Aug 18, 1:50 AM

Sat, Aug 17

rmacklem created D21300: Fix lseek() so that it never returns errnos not listed on the man page, such as ENOTTY.
Sat, Aug 17, 3:24 AM
rmacklem created D21299: Add a vop_stdioctl() that does the trivial algorithm for FIOSEEKDATA/FIOSEEKHOLE.
Sat, Aug 17, 3:17 AM

Aug 15 2019

rmacklem committed rS351106: Fix copy_file_range(2) so that unneeded blocks are not allocated to the output….
Fix copy_file_range(2) so that unneeded blocks are not allocated to the output…
Aug 15 2019, 11:21 PM
rmacklem closed D21155: fix copy_file_range(2) so that it doesn't allocate unneeded data blocks of all 0s in the output file.
Aug 15 2019, 11:21 PM

Aug 12 2019

rmacklem committed rS350884: Add support for the Seek operation to the NFSv4.2 client and server..
Add support for the Seek operation to the NFSv4.2 client and server.
Aug 12 2019, 5:25 AM

Aug 8 2019

rmacklem added a comment to D21155: fix copy_file_range(2) so that it doesn't allocate unneeded data blocks of all 0s in the output file.

Only change is a modified comment explaining how FIOSEEKHOLE might
find the same offset as FIOSEEKDATA already has returned for the file.

Aug 8 2019, 10:56 PM
rmacklem committed rS350777: Remove some harmless cruft from vn_generic_copy_file_range()..
Remove some harmless cruft from vn_generic_copy_file_range().
Aug 8 2019, 8:07 PM
rmacklem committed rS350776: Fix copy_file_range(2) for an unlikely race during hole finding..
Fix copy_file_range(2) for an unlikely race during hole finding.
Aug 8 2019, 7:53 PM

Aug 5 2019

rmacklem committed rS350580: Fix the NFSv4.2 client Copy operation's handling of a stale write verifier..
Fix the NFSv4.2 client Copy operation's handling of a stale write verifier.
Aug 5 2019, 2:53 AM

Aug 4 2019

rmacklem added a comment to D21155: fix copy_file_range(2) so that it doesn't allocate unneeded data blocks of all 0s in the output file.

This version of the patch adds an additional sanity check for
the results from VOP_IOCTL(). This change can only have an effect
for a non-INVARIANTS kernel where one of the VOP_IOCTL()s
return a bogus offset.
It ensures a reasonable positive value for xfer2 is returned for this case.

Aug 4 2019, 10:10 PM
rmacklem added a comment to D21155: fix copy_file_range(2) so that it doesn't allocate unneeded data blocks of all 0s in the output file.

Replied to inline comment.

Aug 4 2019, 9:27 PM
rmacklem added a comment to D21155: fix copy_file_range(2) so that it doesn't allocate unneeded data blocks of all 0s in the output file.

This version of the patch has the INVARIANTS printf() replaced by a KASSERT().
It also has KASSERT()s added for the results of FIOSEEKDATA/FIOSEEKHOLE.

Aug 4 2019, 4:32 PM
rmacklem added a comment to D21155: fix copy_file_range(2) so that it doesn't allocate unneeded data blocks of all 0s in the output file.

Replied to kib@'s comments inline.

Aug 4 2019, 3:16 PM
rmacklem created D21155: fix copy_file_range(2) so that it doesn't allocate unneeded data blocks of all 0s in the output file.
Aug 4 2019, 1:07 AM

Aug 2 2019

rmacklem committed rS350528: MFC: r350367.
MFC: r350367
Aug 2 2019, 2:00 AM

Jul 31 2019

rmacklem committed rS350491: Add an entry for the copy_file_range(2) syscall..
Add an entry for the copy_file_range(2) syscall.
Jul 31 2019, 11:36 PM

Jul 29 2019

rmacklem committed rS350398: Fix IO Advise, Layout error and Layout stats to not do vn_start_write()..
Fix IO Advise, Layout error and Layout stats to not do vn_start_write().
Jul 29 2019, 1:01 AM

Jul 28 2019

rmacklem committed rS350397: Return NFSERR_NOTSUPP for the NFSv4.2 Copy operation if a pNFS server..
Return NFSERR_NOTSUPP for the NFSv4.2 Copy operation if a pNFS server.
Jul 28 2019, 10:01 PM
rmacklem committed rS350395: Fix printing of Server Re-Failed and Server Faults..
Fix printing of Server Re-Failed and Server Faults.
Jul 28 2019, 9:44 PM
rmacklem added a comment to D21092: freebsd32 shims for copy_file_range(2).

I don't really know anything about this, but it looks fine to me.
The only change is uint32_t replaces size_t, which makes sense to 32bits.
(I'm guessing this is only used for amd64, where "int" and "unsigned int"
remain 32bits.)

Jul 28 2019, 1:35 AM

Jul 27 2019

rmacklem committed rS350368: Merge in an up to date kernel from head..
Merge in an up to date kernel from head.
Jul 27 2019, 2:23 AM
rmacklem committed rS350367: Lock the vnode before calling ufs_bmap_seekdata()..
Lock the vnode before calling ufs_bmap_seekdata().
Jul 27 2019, 1:52 AM

Jul 26 2019

rmacklem committed rS350337: Add support for Copy (the intra-server case) to the NFSv4.2 client and server..
Add support for Copy (the intra-server case) to the NFSv4.2 client and server.
Jul 26 2019, 12:28 AM

Jul 25 2019

rmacklem committed rS350326: Merge in an up to date kernel from head..
Merge in an up to date kernel from head.
Jul 25 2019, 4:35 PM
rmacklem committed rS350321: r350320 committed the wrong version of generated syscall.mk..
r350320 committed the wrong version of generated syscall.mk.
Jul 25 2019, 6:48 AM
rmacklem committed rS350320: Update the generated syscall.mk for copy_file_range(2)..
Update the generated syscall.mk for copy_file_range(2).
Jul 25 2019, 6:35 AM
rmacklem committed rS350319: Create a man page for VOP_COPY_FILE_RANGE(9)..
Create a man page for VOP_COPY_FILE_RANGE(9).
Jul 25 2019, 6:20 AM
rmacklem committed rS350318: Add an entry for copy_file_range(2) to unistd.h..
Add an entry for copy_file_range(2) to unistd.h.
Jul 25 2019, 6:11 AM
rmacklem committed rS350317: Add libc support for the copy_file_range(2) syscall added by r350315..
Add libc support for the copy_file_range(2) syscall added by r350315.
Jul 25 2019, 6:06 AM
rmacklem committed rS350316: Update the generated syscall files for copy_file_range(2) added by.
Update the generated syscall files for copy_file_range(2) added by
Jul 25 2019, 5:56 AM
rmacklem closed D20584: add a linux compatible copy_file_range(2) syscall.
Jul 25 2019, 5:46 AM
rmacklem committed rS350315: Add kernel support for a Linux compatible copy_file_range(2) syscall..
Add kernel support for a Linux compatible copy_file_range(2) syscall.
Jul 25 2019, 5:46 AM

Jul 22 2019

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

Marked done and replied to inline comments.

Jul 22 2019, 3:57 PM
rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

This version incorporates a change to VOP_COPY_FILE_RANGE.9 suggested by asomers@.

Jul 22 2019, 3:50 PM
D20584: add a linux compatible copy_file_range(2) syscall now requires review to proceed.

This updates incorporates changes suggested by kib@.
Replace 1048576 with 1024 * 1024 for readability and move
vn_generic_copy_file_range() and helper functions from
vfs_subr.c to vfs_vnops.c.

Jul 22 2019, 3:19 PM
rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

Replied and checked done to inline comments.

Jul 22 2019, 3:55 AM
rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

This version incorporates changes suggested by asomers@.

Jul 22 2019, 3:27 AM
rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

The previous version of the patch had a single bwillwrite() call before the copy
done by the VOP call or vn_generic_copy_file_range().
kib@ pointed out that bwillwrite() calls are needed in the copy loop, which makes
sense, since the copy loop could be writing a large amount of data and constipate
the buffer cache for file systems using it.

Jul 22 2019, 1:58 AM

Jul 18 2019

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

vn_copy_file_range() erroneously returned the error with *lenp set to the requested
length instead of 0 (the number of bytes copied).
This version of the patch has this fixed and a couple of extraneous brackets removed.

Jul 18 2019, 4:05 PM

Jul 13 2019

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

One minor additional fix. For the case where the "len" argument is 0, the Linux
syscall returns 0. The previous patch did that, but it did 0 length (ie. start and end equal)
range locks, which the range lock code doesn't handle correctly.

Jul 13 2019, 11:40 PM

Jul 7 2019

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

Marked "check for flags == 0" as done on the inline comment.

Jul 7 2019, 9:16 PM

Jul 6 2019

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

This version of the patch checks for flags == 0 and returns EINVAL when not 0.
It also documents "must be 0" in the man page. This change seemed to be the
consensus from a discussion on FreeBSD-current@.

Jul 6 2019, 12:26 AM

Jul 5 2019

rmacklem committed rS349772: MFC: r348590, r348591.
MFC: r348590, r348591
Jul 5 2019, 10:48 PM
rmacklem committed rS349771: MFC: r348590, r348591.
MFC: r348590, r348591
Jul 5 2019, 10:36 PM
rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

Taken comment w.r.t. handling of flags argument over to freebsd-current@, since more people will see it there.

Jul 5 2019, 3:20 PM
rmacklem committed rS349756: MFC: r348452.
MFC: r348452
Jul 5 2019, 1:05 AM
rmacklem committed rS349755: MFC: r348452.
MFC: r348452
Jul 5 2019, 12:55 AM

Jul 3 2019

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

One more bug found while proofreading the code.

  • It erroneously used inoffp instead of outoffp when calculating the size of hole to write. My main test program copies byte ranges of a file and then compares the file, so inoff and outoff are the same. I did run a small test program copying from/to different offsets, but the file had data so I could easily check if it worked.

This version of the patch has this fixed. It also has a minor optimization, where it uses vn_truncate_locked() to grow the
output file when a hole is at the end of the range and the hole is entirely beyond the original EOF for the output file
instead of writing 0 bytes to grow the file.

Jul 3 2019, 9:14 PM

Jul 2 2019

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

Marked inline comments as done.

Jul 2 2019, 2:56 AM
rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

Made a minor change to VOP_COPY_FILE_RANGE.9 as recommended by asomers@.

Jul 2 2019, 2:53 AM
rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

This version of the patch incorporates the changes recommended by kib@.
I have also added a couple of sentences related to copying sparse files to copy_file_range.2.

Jul 2 2019, 2:41 AM
rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

More fixes. When testing using a file with a large (> 4Gbyte) hole in it, a couple
of bugs needed to be fixed.

  • If the "len" argument is > SSIZE_MAX, it can't be returned --> clip "len" at SSIZE_MAX
  • If the hole size is greater than what can be stored in size_t… --> change xfer, xfer2 to off_t
  • If the hole extended past the end of the range being copied, xfer was set too large and would cause the len variable to wrap around. --> clip xfer at len after being calculated as the hole size.
Jul 2 2019, 1:44 AM

Jul 1 2019

rmacklem closed D20808: factor out the code that actually does the truncation from vn_truncate() into vn_truncate_locked().
Jul 1 2019, 8:42 PM
rmacklem committed rS349582: Factor out the code that does a VOP_SETATTR(size) from vn_truncate()..
Factor out the code that does a VOP_SETATTR(size) from vn_truncate().
Jul 1 2019, 8:42 PM
rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

This variant of the patch has the rangelock code moved from vn_copy_file_range() to
kern_copy_file_range(). The reason I did this is that the NFSv4.2 server needs to lock
the file ranges slightly differently (for the "to EOF" case) and I wanted it to be able
to call vn_copy_file_range() to do most of the work.

Jul 1 2019, 2:00 AM

Jun 30 2019

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

This version of the patch uses vn_truncate_locked(), which is created by D20808.
There should be no semantic change from the previous variant of the patch.

Jun 30 2019, 12:40 AM
rmacklem created D20808: factor out the code that actually does the truncation from vn_truncate() into vn_truncate_locked().
Jun 30 2019, 12:26 AM

Jun 27 2019

rmacklem committed rS349476: Add non-blocking trylock variants for the rangelock functions..
Add non-blocking trylock variants for the rangelock functions.
Jun 27 2019, 11:10 PM
rmacklem closed D20645: add non-blocking variants of rangelock_rlock() and rangelock_wlock().
Jun 27 2019, 11:10 PM
rmacklem added a comment to D20584: add a linux compatible copy_file_range(2) syscall.

Adjust patch to use the vn_rangelock_tryrlock() naming now used by D20645.

Jun 27 2019, 10:32 PM
D20645: add non-blocking variants of rangelock_rlock() and rangelock_wlock() now requires review to proceed.

This version of the patch incorporates kib@'s suggestions.

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

bwillwrite() call added.
VOP_ADD_WRITECOUNT() added around VOP_SETATTR() of size.

Jun 27 2019, 3:46 AM

Jun 22 2019

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

I've taken the "pig picture" discussion related to Sean's points over to the freebsd-fs@freebsd.org
mailing list. (I tried to add that mailing list when I first put this patch in phabricator, but it would only
seem to accept freebsd-bugs@ for some reason.)
Sean, the email I had for you didn't work, so please go look at the mailing list.

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

Added inline comment w.r.t. handling of errors returned by VOP_COPY_FILE_RANGE().

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

The code that did the actual copying, which was after the VOP_COPY_FILE_RANGE() call in
vn_copy_file_range() is now factored out into a separate function called vn_generic_copy_file_range().
This allows the vn_generic_copy_range() call to be done from within a VOP_COPY_FILE_RANGE() and,
in fact, vop_stdcopy_file_range() does just that.

Jun 22 2019, 12:46 AM

Jun 19 2019

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

Replied to some inline comments.

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

This version of the patch incorporates some of asomers@ suggestions.

Jun 19 2019, 11:30 PM