Page MenuHomeFreeBSD

rmacklem (Rick Macklem)
User

Projects

User Details

User Since
Jan 13 2015, 10:58 PM (255 w, 5 d)

Recent Activity

Yesterday

rmacklem committed rS355539: Merge in an up to date kernel from head..
Merge in an up to date kernel from head.
Sun, Dec 8, 10:37 PM
rmacklem committed rS355530: Delete an unused external declaration..
Delete an unused external declaration.
Sun, Dec 8, 4:59 PM
rmacklem committed rS355509: Fix kernel handling of a NFSERR_MINORVERSMISMATCH NFSv4 server reply..
Fix kernel handling of a NFSERR_MINORVERSMISMATCH NFSv4 server reply.
Sun, Dec 8, 12:06 AM

Sat, Dec 7

rmacklem committed rS355507: Add some definitions for NFSv4.2 which will be used by subsequent commits..
Add some definitions for NFSv4.2 which will be used by subsequent commits.
Sat, Dec 7, 11:14 PM
rmacklem committed rS355479: Set the XATTRSUPPORT attribute bit for NFSv4.2, always cleared for now..
Set the XATTRSUPPORT attribute bit for NFSv4.2, always cleared for now.
Sat, Dec 7, 1:10 AM

Fri, Dec 6

rmacklem committed rS355472: Add a couple of definitions for NFSv4.2 and update macros to use them..
Add a couple of definitions for NFSv4.2 and update macros to use them.
Fri, Dec 6, 11:51 PM
rmacklem committed rS355435: Add some definitions for NFSv4.2 which will be used by subsequent commits..
Add some definitions for NFSv4.2 which will be used by subsequent commits.
Fri, Dec 6, 1:53 AM

Wed, Dec 4

rmacklem committed rS355406: Add some definitions for NFSv4.2 which will be used by subsequent commits..
Add some definitions for NFSv4.2 which will be used by subsequent commits.
Wed, Dec 4, 11:24 PM

Mon, Dec 2

rmacklem committed rS355278: Merge in an up to date head kernel..
Merge in an up to date head kernel.
Mon, Dec 2, 12:12 AM

Thu, Nov 28

rmacklem committed rS355194: Fix two races while handling nfsuserd daemon start/stop..
Fix two races while handling nfsuserd daemon start/stop.
Thu, Nov 28, 11:34 PM
rmacklem closed D22377: fix two races in kernel handling of the nfsuserd daemon.
Thu, Nov 28, 11:34 PM
rmacklem committed rS355161: Change r355157 to make svc_rpc_gss_lifetime_max a static..
Change r355157 to make svc_rpc_gss_lifetime_max a static.
Thu, Nov 28, 2:19 AM
rmacklem committed rS355157: Add a cap on credential lifetime for Kerberized NFS..
Add a cap on credential lifetime for Kerberized NFS.
Thu, Nov 28, 2:05 AM

Mon, Nov 25

rmacklem committed rS355090: Merge in an up to date kernel from head/current..
Merge in an up to date kernel from head/current.
Mon, Nov 25, 3:24 PM

Fri, Nov 22

rmacklem committed rS354989: Fix the pNFS server's reporting of SpaceUsed (va_bytes)..
Fix the pNFS server's reporting of SpaceUsed (va_bytes).
Fri, Nov 22, 12:23 AM

Sun, Nov 17

rmacklem committed rS354784: Add support for Allocate to the pNFS server..
Add support for Allocate to the pNFS server.
Sun, Nov 17, 3:54 AM

Sat, Nov 16

rmacklem updated the diff for D22377: fix two races in kernel handling of the nfsuserd daemon.

Add a check for nfsrv_nfsuserd == STARTSTOP to the wakeup(), to avoid extraneous
wakeup() calls.
Also add a KASSERT() for nfsrv_userdupcalls.

Sat, Nov 16, 4:31 PM
rmacklem updated the diff for D22377: fix two races in kernel handling of the nfsuserd daemon.

Oops, I've realized there are other fields of nfsrv_nfsuserdsock that are
used by newnfs_request(), so holding a reference count on *nr_client isn't
sufficient.

Sat, Nov 16, 6:37 AM
rmacklem updated the diff for D22377: fix two races in kernel handling of the nfsuserd daemon.

Move the NFSUNLOCKNAMEID() up so that it only updates the nr_client field
before unlocking and add a comment related to this.

Sat, Nov 16, 2:24 AM
rmacklem added a comment to D22377: fix two races in kernel handling of the nfsuserd daemon.

Updated my inline comment reply.

Sat, Nov 16, 1:03 AM
rmacklem added a comment to D22377: fix two races in kernel handling of the nfsuserd daemon.

Replied to inline comments.

Sat, Nov 16, 12:50 AM

Fri, Nov 15

rmacklem created D22377: fix two races in kernel handling of the nfsuserd daemon.
Fri, Nov 15, 1:09 AM

Sun, Nov 10

rmacklem committed rS354576: Update the VOP_COPY_FILE_RANGE man page to reflect the semantic change.
Update the VOP_COPY_FILE_RANGE man page to reflect the semantic change
Sun, Nov 10, 1:21 AM
rmacklem committed rS354575: Update the copy_file_range man page to reflect the semantic change.
Update the copy_file_range man page to reflect the semantic change
Sun, Nov 10, 1:13 AM
rmacklem committed rS354574: Update copy_file_range(2) to be Linux5 compatible..
Update copy_file_range(2) to be Linux5 compatible.
Sun, Nov 10, 1:08 AM

Nov 9 2019

rmacklem committed rS354567: Merge in an up to date kernel from head..
Merge in an up to date kernel from head.
Nov 9 2019, 12:17 AM

Nov 8 2019

rmacklem committed rS354566: Update the VOP_COPY_FILE_RANGE.9 man page to reflect the semantic change.
Update the VOP_COPY_FILE_RANGE.9 man page to reflect the semantic change
Nov 8 2019, 11:58 PM
rmacklem committed rS354565: Update the copy_file_range.2 man page to reflect the semantic change.
Update the copy_file_range.2 man page to reflect the semantic change
Nov 8 2019, 11:49 PM
rmacklem committed rS354564: Update copy_file_range(2) to be Linux5 compatible..
Update copy_file_range(2) to be Linux5 compatible.
Nov 8 2019, 11:39 PM
rmacklem committed rS354528: Fix the man page to correctly describe the use of the "len" argument..
Fix the man page to correctly describe the use of the "len" argument.
Nov 8 2019, 6:40 AM

Nov 4 2019

rmacklem committed rS354329: Fix up the NFSv4.2 client/server for pNFS..
Fix up the NFSv4.2 client/server for pNFS.
Nov 4 2019, 6:16 AM

Nov 3 2019

rmacklem committed rS354274: Fix vnode locking for the case where Seek is proxied to the DS server..
Fix vnode locking for the case where Seek is proxied to the DS server.
Nov 3 2019, 3:16 AM
rmacklem committed rS354271: Fix lsextattr for the case where there are no attributes..
Fix lsextattr for the case where there are no attributes.
Nov 3 2019, 2:17 AM

Oct 30 2019

rmacklem committed rS354164: MFC: r352736.
MFC: r352736
Oct 30 2019, 1:57 AM

Oct 28 2019

rmacklem committed rS354142: MFC: r352664.
MFC: r352664
Oct 28 2019, 10:54 PM
rmacklem committed rS354131: MFC: r352636.
MFC: r352636
Oct 28 2019, 1:44 AM

Oct 25 2019

rmacklem committed rS354061: Return the correct error for Seek at EOF..
Return the correct error for Seek at EOF.
Oct 25 2019, 4:44 AM

Oct 24 2019

rmacklem committed rS353970: Add a flag to disable client side Allocate when the server replies….
Add a flag to disable client side Allocate when the server replies…
Oct 24 2019, 2:25 AM

Oct 23 2019

rmacklem committed rS353913: Fix typo in comment..
Fix typo in comment.
Oct 23 2019, 3:15 AM
rmacklem committed rS353910: Add a flag for Advise not supported and fix Copy for length == 0..
Add a flag for Advise not supported and fix Copy for length == 0.
Oct 23 2019, 1:29 AM

Oct 20 2019

rmacklem committed rS353772: Replace the two sysctls with one to enable a Linux compatible NFSv4.2 server..
Replace the two sysctls with one to enable a Linux compatible NFSv4.2 server.
Oct 20 2019, 1:09 AM

Oct 18 2019

rmacklem committed rS353710: Add vfs.nfsd.checkcopysize to enable a check for Copy past input file EOF..
Add vfs.nfsd.checkcopysize to enable a check for Copy past input file EOF.
Oct 18 2019, 12:20 AM

Oct 17 2019

rmacklem committed rS353676: Patch the NFSv4.2 client side Copy for the Linux server..
Patch the NFSv4.2 client side Copy for the Linux server.
Oct 17 2019, 5:51 AM

Oct 16 2019

rmacklem committed rS353602: Make the NFSv4.2 server fail Copy when from and to files are the same..
Make the NFSv4.2 server fail Copy when from and to files are the same.
Oct 16 2019, 12:13 AM

Oct 13 2019

rmacklem added a comment to D21883: Fix interface between nfsclient and vnode pager..

Thanks for the comment.

Oct 13 2019, 3:45 PM

Oct 12 2019

rmacklem added a comment to D21883: Fix interface between nfsclient and vnode pager..

The new revision makes changes in the vm part that I don't understand, so I am afraid I can't
review them.

Oct 12 2019, 3:47 PM

Oct 6 2019

rmacklem added a comment to D21883: Fix interface between nfsclient and vnode pager..

Added a reply to the inline comment.

Oct 6 2019, 3:33 PM
rmacklem committed rS353133: Do a commit for the output file when flushing for Copy..
Do a commit for the output file when flushing for Copy.
Oct 6 2019, 3:33 AM
rmacklem committed rS353132: Update the comments related to flushing in Seek and Copy..
Update the comments related to flushing in Seek and Copy.
Oct 6 2019, 3:25 AM

Oct 5 2019

rmacklem added a comment to D21883: Fix interface between nfsclient and vnode pager..

Other than the one inline comment, it looks good to me. However, I don't know enough about the locking/vm stuff
to say if nfs_lock() is correct?
Delaying doing the vnode_pager_setsize() until a lock operation on the vnode sounds reasonable to me.

Oct 5 2019, 10:13 PM

Oct 4 2019

rmacklem committed rS353098: Fix the comment in the NFSv4.2 client copy_file_range..
Fix the comment in the NFSv4.2 client copy_file_range.
Oct 4 2019, 5:02 AM
rmacklem committed rS353097: Flush writes for both in and out files before NFSv4.2 Copy in client..
Flush writes for both in and out files before NFSv4.2 Copy in client.
Oct 4 2019, 4:57 AM
rmacklem committed rS353090: Flush writes in the NFSv4.2 client before doing a Seek operation..
Flush writes in the NFSv4.2 client before doing a Seek operation.
Oct 4 2019, 2:04 AM

Oct 3 2019

rmacklem committed rS353029: Add vfs.nfsd.linuxseekdata so that the NFSv4.2 server can be Linux compatible..
Add vfs.nfsd.linuxseekdata so that the NFSv4.2 server can be Linux compatible.
Oct 3 2019, 2:59 AM

Sep 30 2019

rmacklem updated the diff for D21814: factor out the code that checks to see if vnode_pager_setsize() can be called with the NFS node lock held.

This version of the patch replaces nfscl_checksetsize() with vnode_pager_setsize_nonblock().
The latter is a macro which just calls vnode_pager_setsize_mightsleep() with can_sleep == false.

Sep 30 2019, 2:12 AM

Sep 28 2019

rmacklem added a comment to D21814: factor out the code that checks to see if vnode_pager_setsize() can be called with the NFS node lock held.

As an alternative to creating a function called nfscl_checksetsize(), what about adding a "can_sleep"
flag argument to vnode_pager_setsize().
If can_sleep is "false", then it would return EWOULDBLOCK for the "shrinking" case.
(If can_sleep is "true" it would retain current behaviour.) Yes, the function would no
longer be void, but would return (0) except for this case.

Sep 28 2019, 1:42 AM

Sep 27 2019

rmacklem committed rS352825: Allow the NFSv4.2 Copy operation to do a synchronous copy when.
Allow the NFSv4.2 Copy operation to do a synchronous copy when
Sep 27 2019, 10:19 PM
rmacklem committed rS352817: Merge in an up to date kernel from head..
Merge in an up to date kernel from head.
Sep 27 2019, 8:10 PM
rmacklem created D21814: factor out the code that checks to see if vnode_pager_setsize() can be called with the NFS node lock held.
Sep 27 2019, 1:40 AM

Sep 26 2019

rmacklem committed rS352736: Replace all mtx_assert() calls for n_mtx and ncl_iod_mutex with macros..
Replace all mtx_assert() calls for n_mtx and ncl_iod_mutex with macros.
Sep 26 2019, 2:55 AM
rmacklem added a comment to D21762: Add a sleep lock to the NFS node to protect n_size.

Unfortunately testing found a deadlock problem.

  • One of the iod threads is sleeping on "vmopar", so it is in vnode_pager_setsize() when the size is being reduced.
  • The rest of the iod threads are waiting for the NFS node lock.
Sep 26 2019, 2:01 AM

Sep 25 2019

rmacklem updated the diff for D21762: Add a sleep lock to the NFS node to protect n_size.

This version of the patch changes the n_mtx lock to an sx lock (n_sx) and
the ncl_iod_mutex to ncl_iod_sx. The former is done so that it can safely be
locked while calling vnode_pager_setsize().
The latter is changed to an sx lock since it is held when n_sx is acquired.
All the msleep()s are changed to sx_sleep() calls.

Sep 25 2019, 1:40 AM

Sep 24 2019

rmacklem committed rS352664: Replace all mtx_lock()/mtx_unlock() on the iod lock with macros..
Replace all mtx_lock()/mtx_unlock() on the iod lock with macros.
Sep 24 2019, 11:38 PM
rmacklem committed rS352636: Replace all mtx_lock()/mtx_unlock() on n_mtx with the macros..
Replace all mtx_lock()/mtx_unlock() on n_mtx with the macros.
Sep 24 2019, 1:59 AM

Sep 23 2019

rmacklem added a comment to D21762: Add a sleep lock to the NFS node to protect n_size.

So, do you think that just replacing n_mtx with n_solock makes more sense?
(I'll admit I was thinking it was a lot of editing, but so what.)

Sep 23 2019, 4:10 PM
rmacklem created D21762: Add a sleep lock to the NFS node to protect n_size.
Sep 23 2019, 2:39 AM

Sep 15 2019

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

Sep 13 2019

rmacklem committed rS352270: Add support for the Extended Attribute Access bits..
Add support for the Extended Attribute Access bits.
Sep 13 2019, 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.
Sep 13 2019, 1:04 AM

Sep 9 2019

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.
Sep 9 2019, 1:05 AM
rmacklem committed rS352051: Merge in an up to date head kernel..
Merge in an up to date head kernel.
Sep 9 2019, 12:48 AM

Sep 8 2019

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.
Sep 8 2019, 9:43 PM

Sep 7 2019

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

Sep 6 2019

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

Sep 5 2019

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

Sep 4 2019

rmacklem committed rS351834: Delete the unused "nd" argument for nfsrv_checkdsattr()..
Delete the unused "nd" argument for nfsrv_checkdsattr().
Sep 4 2019, 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().
Sep 4 2019, 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.
Sep 4 2019, 9:44 PM
rmacklem committed rS351829: MFC: r350395.
MFC: r350395
Sep 4 2019, 8:14 PM

Sep 2 2019

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.
Sep 2 2019, 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().
Sep 2 2019, 2:41 AM

Sep 1 2019

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

Aug 31 2019

rmacklem committed rS351646: Add support for the Get extended attribute operation..
Add support for the Get extended attribute operation.
Aug 31 2019, 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
Aug 31 2019, 3:17 PM

Aug 27 2019

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.
Aug 27 2019, 1:40 AM

Aug 22 2019

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.
Aug 22 2019, 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).
Aug 22 2019, 1:15 AM
rmacklem closed D21300: Fix lseek() so that it never returns errnos not listed on the man page, such as ENOTTY.
Aug 22 2019, 1:15 AM
rmacklem committed rS351371: Allow a NFSv4.2 Data server to handle Seek..
Allow a NFSv4.2 Data server to handle Seek.
Aug 22 2019, 12:37 AM

Aug 21 2019

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.

Aug 21 2019, 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.

Aug 21 2019, 4:55 AM

Aug 20 2019

rmacklem committed rS351252: Fix nfsvno_seek()'s setting of eof..
Fix nfsvno_seek()'s setting of eof.
Aug 20 2019, 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
Aug 20 2019, 5:37 AM

Aug 19 2019

rmacklem committed rS351202: Add an entry to RELNOTES for r351201..
Add an entry to RELNOTES for r351201.
Aug 19 2019, 12:46 AM
rmacklem closed D21299: Add a vop_stdioctl() that does the trivial algorithm for FIOSEEKDATA/FIOSEEKHOLE.
Aug 19 2019, 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.
Aug 19 2019, 12:29 AM

Aug 18 2019

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().

Aug 18 2019, 1:50 AM

Aug 17 2019

rmacklem created D21300: Fix lseek() so that it never returns errnos not listed on the man page, such as ENOTTY.
Aug 17 2019, 3:24 AM