Page MenuHomeFreeBSD
Feed Advanced Search

Yesterday

jah committed R10:f9e28f900353: unionfs: lock newly-created vnodes before calling insmntque() (authored by jah).
unionfs: lock newly-created vnodes before calling insmntque()
Fri, Sep 24, 2:19 AM
jah closed D31917: unionfs: lock newly-created vnodes before calling insmntque().
Fri, Sep 24, 2:18 AM

Sun, Sep 19

jah updated the diff for D31917: unionfs: lock newly-created vnodes before calling insmntque().

Remove unintentionally added line from a different commit

Sun, Sep 19, 10:45 PM
jah updated the diff for D31917: unionfs: lock newly-created vnodes before calling insmntque().

Also free the vnode cache hashtable

Sun, Sep 19, 10:36 PM

Sun, Sep 12

jah requested review of D31917: unionfs: lock newly-created vnodes before calling insmntque().
Sun, Sep 12, 5:53 AM

Wed, Sep 1

jah committed R10:abe95116ba10: unionfs: rework pathname handling (authored by jah).
unionfs: rework pathname handling
Wed, Sep 1, 2:52 PM
jah committed R10:312d49ef7afc: unionfs: style (authored by jah).
unionfs: style
Wed, Sep 1, 2:52 PM
jah closed D31728: unionfs: rework pathname handling.
Wed, Sep 1, 2:52 PM

Mon, Aug 30

jah added inline comments to D31728: unionfs: rework pathname handling.
Mon, Aug 30, 4:27 PM
jah added a comment to D31728: unionfs: rework pathname handling.

Based on my reading of namei(9) and the code, it seems like what I'm doing here (directly passing the pathname buffer) should be OK.
During testing I also instrumented the unionfs code to verify that the lower layers weren't altering the contents of cn_pnbuf. But being new to namei, I also wouldn't be surprised if this approach is problematic for reasons that aren't apparent to me. If so, I'll go back to allocating duplicate buffers for the unionfs lookup.

Mon, Aug 30, 3:09 PM
jah requested review of D31728: unionfs: rework pathname handling.
Mon, Aug 30, 3:07 PM

Aug 20 2021

jah committed R10:a8c732f4e52e: VFS: add retry limit and delay for failed recursive unmounts (authored by jah).
VFS: add retry limit and delay for failed recursive unmounts
Aug 20 2021, 8:19 PM
jah committed R10:e81e71b0e9cb: Use interruptible wait for blocking recursive unmounts (authored by jah).
Use interruptible wait for blocking recursive unmounts
Aug 20 2021, 8:19 PM
jah closed D31450: VFS: add retry limit and delay for failed recursive unmounts.
Aug 20 2021, 8:19 PM

Aug 15 2021

jah updated the diff for D31450: VFS: add retry limit and delay for failed recursive unmounts.

Add comment on (lack of) synchronization for counters, clarify sysctl description

Aug 15 2021, 1:08 AM

Aug 13 2021

jah added inline comments to D31450: VFS: add retry limit and delay for failed recursive unmounts.
Aug 13 2021, 8:55 PM

Aug 12 2021

jah added inline comments to D31450: VFS: add retry limit and delay for failed recursive unmounts.
Aug 12 2021, 2:58 PM

Aug 10 2021

jah updated the diff for D31450: VFS: add retry limit and delay for failed recursive unmounts.

Clean up error handling logic, properly release the mount on error in the blocking case

Aug 10 2021, 6:22 AM

Aug 8 2021

jah added inline comments to D31450: VFS: add retry limit and delay for failed recursive unmounts.
Aug 8 2021, 1:40 PM
jah updated the diff for D31450: VFS: add retry limit and delay for failed recursive unmounts.

Split PCATCH into a separate commit

Aug 8 2021, 1:35 PM
jah updated the diff for D31450: VFS: add retry limit and delay for failed recursive unmounts.

Add sysctl node for managing deferred unmount behavior

Aug 8 2021, 2:32 AM
jah added inline comments to D31450: VFS: add retry limit and delay for failed recursive unmounts.
Aug 8 2021, 2:31 AM

Aug 7 2021

jah requested review of D31450: VFS: add retry limit and delay for failed recursive unmounts.
Aug 7 2021, 6:34 AM

Jul 24 2021

jah committed R10:c44685732899: Add stress2 test to exercise FFS forcible unmount with stacked nullfs (authored by jah).
Add stress2 test to exercise FFS forcible unmount with stacked nullfs
Jul 24 2021, 8:40 PM
jah committed R10:2bc16e8aaf75: VFS: remove MNTK_MARKER (authored by jah).
VFS: remove MNTK_MARKER
Jul 24 2021, 8:40 PM
jah committed R10:211ec9b7d6ec: FFS: remove ffs_fsfail_task (authored by jah).
FFS: remove ffs_fsfail_task
Jul 24 2021, 8:40 PM
jah committed R10:c746ed724d01: Allow stacked filesystems to be recursively unmounted (authored by jah).
Allow stacked filesystems to be recursively unmounted
Jul 24 2021, 8:40 PM
jah closed D31016: Allow stacked filesystems to be recursively unmounted.
Jul 24 2021, 8:39 PM
jah added a comment to D31016: Allow stacked filesystems to be recursively unmounted.
In D31016#704531, @pho wrote:
In D31016#704507, @kib wrote:
In D31016#704447, @pho wrote:

All done. No problems seen.

20210722 19:00:47 all.sh done, elapsed 2 day(s), 04:40.10

And no nullfs issues observed? I am confused.

Yes, sorry. What I should have stated was that all of the stress2 tests were run, excluding known problem tests.
Specifically the force4.sh test, a nullfs / mdconfig -o force test, was excluded. This test failed before this patch and also fails with this patch.
I have lately tested a separate patch (by you) combined with D31016.92436.diff that fixes the issue seen with the force4.sh test. This combo is still being tested.

Jul 24 2021, 12:55 AM

Jul 19 2021

jah added inline comments to D31016: Allow stacked filesystems to be recursively unmounted.
Jul 19 2021, 7:24 PM
jah updated the diff for D31016: Allow stacked filesystems to be recursively unmounted.

Prefix new fields with mnt_, MNT_TASKQUEUE -> MNT_DEFERRED

Jul 19 2021, 7:11 PM
jah updated the diff for D31016: Allow stacked filesystems to be recursively unmounted.

Split into multiple commits

Jul 19 2021, 5:59 PM
jah updated the diff for D31016: Allow stacked filesystems to be recursively unmounted.

Rebase

Jul 19 2021, 5:52 PM
jah added a comment to D31016: Allow stacked filesystems to be recursively unmounted.

Suggestion on how to run forcible unmount test on UFS.

Jul 19 2021, 2:22 AM
jah updated the diff for D31016: Allow stacked filesystems to be recursively unmounted.

Fix whitespace, reap MNTK_MARKER, remove fsfail_task and add associated test

Jul 19 2021, 2:19 AM

Jul 15 2021

jah added inline comments to D31016: Allow stacked filesystems to be recursively unmounted.
Jul 15 2021, 11:49 PM
jah added a comment to D31016: Allow stacked filesystems to be recursively unmounted.

@jah - are you ready to have Peter Holm test these changes? If so, I will enlist his help.

Jul 15 2021, 11:43 PM
jah added a reviewer for D31016: Allow stacked filesystems to be recursively unmounted: pho.
Jul 15 2021, 11:38 PM

Jul 14 2021

jah updated the diff for D31016: Allow stacked filesystems to be recursively unmounted.

Simplify by requiring taskqueue unmounts to be recursive

Jul 14 2021, 1:08 PM
jah updated the diff for D31016: Allow stacked filesystems to be recursively unmounted.

--Make forced taskqueue unmount operations resilient to spurious failure

A concurrent unmount attempt from another thread (which may fail) or a
concurrent update mount may induce a spurious failure.  Allow the
tasqueue to requeue the unmount request in these cases.
Jul 14 2021, 5:45 AM

Jul 10 2021

jah added inline comments to D31016: Allow stacked filesystems to be recursively unmounted.
Jul 10 2021, 5:19 PM
jah added inline comments to D31016: Allow stacked filesystems to be recursively unmounted.
Jul 10 2021, 4:37 PM

Jul 4 2021

jah added reviewers for D31016: Allow stacked filesystems to be recursively unmounted: kib, markj, mjg, mckusick, chs.
Jul 4 2021, 2:21 AM
jah added a comment to D31016: Allow stacked filesystems to be recursively unmounted.

This is a first draft of the change; I've tested it enough to verify that it works, but I'd like feedback on the basic approach as well as some specific questions I have below.

Jul 4 2021, 2:20 AM
jah requested review of D31016: Allow stacked filesystems to be recursively unmounted.
Jul 4 2021, 2:11 AM

Jun 29 2021

jah closed D30748: unionfs: release parent vnodes in deferred context.
Jun 29 2021, 1:01 PM
jah committed R10:372691a7ae18: unionfs: release parent vnodes in deferred context (authored by jah).
unionfs: release parent vnodes in deferred context
Jun 29 2021, 1:01 PM

Jun 18 2021

jah updated the diff for D30748: unionfs: release parent vnodes in deferred context.

Use STAILQ_FOREACH_SAFE to simplify the release loop

Jun 18 2021, 11:36 PM

Jun 16 2021

jah updated the diff for D30748: unionfs: release parent vnodes in deferred context.

Use only CTLFLAG_RD

Jun 16 2021, 1:54 AM
jah added a comment to D30748: unionfs: release parent vnodes in deferred context.
In D30748#691844, @jah wrote:
In D30748#691598, @jah wrote:
In D30748#691212, @mjg wrote:

If memory serves unionfs panics on mount if DEBUG_VFS_LOCKS is enabled, but the patch needs to be tested with it. I don't remember what stands in the way of fixing it, but bare minimum the triggering assert can be commented out for testing.

I didn't know we had DEBUG_VFS_LOCKS. My guess is that unionfs under stress will fail these checks in a variety of ways, but hopefully none of them will be caused by this change. This seems like another useful tool for evaluating unionfs, so I'll give it a shot as soon as I get some time.

Surprisingly, the panic on mount (new vnode not exclusively locked for insmntque()) is the only issue I've found in testing with DEBUG_VFS_LOCKS so far.

Jun 16 2021, 12:50 AM

Jun 15 2021

jah updated the diff for D30748: unionfs: release parent vnodes in deferred context.

Quiesce the taskqueue on module unload

Jun 15 2021, 1:17 PM
jah added a comment to D30748: unionfs: release parent vnodes in deferred context.
In D30748#691785, @kib wrote:
In D30748#691607, @jah wrote:
In D30748#691229, @kib wrote:

I think it is useful, if not required, to drain the taskqueue on unmount.

This could be helpful in making it more likely for non-forced unmounts to succeed if there have been very recent deletions. Would you consider that a requirement?

My motivation for the suggestion was that the module cannot be unloaded until taskqueue is drained, and it is logical to drain on unmount to ensure that unmount is actually completed, i.e. as much resources related to the filesystem is freed as possible.

But now I think that also you need to terminate and clean up the taskqueue thread on vfs module unload.

Jun 15 2021, 1:15 PM
jah added a comment to D30748: unionfs: release parent vnodes in deferred context.
In D30748#691598, @jah wrote:
In D30748#691212, @mjg wrote:

If memory serves unionfs panics on mount if DEBUG_VFS_LOCKS is enabled, but the patch needs to be tested with it. I don't remember what stands in the way of fixing it, but bare minimum the triggering assert can be commented out for testing.

I didn't know we had DEBUG_VFS_LOCKS. My guess is that unionfs under stress will fail these checks in a variety of ways, but hopefully none of them will be caused by this change. This seems like another useful tool for evaluating unionfs, so I'll give it a shot as soon as I get some time.

Jun 15 2021, 1:08 PM

Jun 14 2021

jah added a comment to D30748: unionfs: release parent vnodes in deferred context.
In D30748#691229, @kib wrote:

I think it is useful, if not required, to drain the taskqueue on unmount.

Jun 14 2021, 5:44 PM
jah added a comment to D30748: unionfs: release parent vnodes in deferred context.
In D30748#691212, @mjg wrote:

If memory serves unionfs panics on mount if DEBUG_VFS_LOCKS is enabled, but the patch needs to be tested with it. I don't remember what stands in the way of fixing it, but bare minimum the triggering assert can be commented out for testing.

Jun 14 2021, 5:37 PM

Jun 13 2021

jah updated the diff for D30748: unionfs: release parent vnodes in deferred context.

FIFO processing for the deferred list

Jun 13 2021, 2:28 PM
jah updated the diff for D30748: unionfs: release parent vnodes in deferred context.

Use dedicated taskqueue, use STAILQ_CONCAT to reduce list locking

Jun 13 2021, 1:49 PM
jah added inline comments to D30748: unionfs: release parent vnodes in deferred context.
Jun 13 2021, 12:25 AM

Jun 12 2021

jah added a comment to D30748: unionfs: release parent vnodes in deferred context.

This is a naive approach. Instead of using a taskqueue, would I be better of with something completely different? For example, could I just stop holding a reference to the parent and instead lookup the parent through namei in the relatively small number of cases where unionfs needs the parent? Or, if the taskqueue is an acceptable approach, should I instead use a dedicated taskqueue instead of funneling everything through taskqueue_thread?

Jun 12 2021, 8:41 PM
jah requested review of D30748: unionfs: release parent vnodes in deferred context.
Jun 12 2021, 8:37 PM

Jun 6 2021

jah closed D30401: Add a generic mechanism for preventing forced unmount.
Jun 6 2021, 1:18 AM
jah committed R10:59409cb90fc0: Add a generic mechanism for preventing forced unmount (authored by jah).
Add a generic mechanism for preventing forced unmount
Jun 6 2021, 1:18 AM

May 30 2021

jah closed D30556: VFS_QUOTACTL(9): allow implementation to indicate busy state changes.
May 30 2021, 9:53 PM
jah committed R10:a4b07a2701f5: VFS_QUOTACTL(9): allow implementation to indicate busy state changes (authored by jah).
VFS_QUOTACTL(9): allow implementation to indicate busy state changes
May 30 2021, 9:53 PM
jah added a comment to D30556: VFS_QUOTACTL(9): allow implementation to indicate busy state changes.
In D30556#686194, @jah wrote:

This is the same change you've already reviewed, with 2 exceptions:
--explicit inclusion of sys/types.h for _KERNEL builds from sys/mount.h, to avoid relying on coincidentally getting the header from elsewhere.
--inclusion of stdbool.h for libprocstat modules whose use of kernel headers otherwise defeats the definition of type bool.

For the second issue, I would be willing to drop the libprocstat changes and instead use _Bool in VFS_QUOTACTL() if anyone insists on it. However, my personal preference is strongly for 'bool' over '_Bool' as a matter of style, and we seem to be slowly standardizing on 'bool' in the kernel. My take is that we shouldn't need to warp KPIs in order to accommodate userspace code that does sketchy things with kernel headers, especially when the code doing said sketchy things can employ a simple workaround.

I tend to agree that we should avoid mixing _Bool and bool in the kernel. It's just confusing. The change you proposed is ok with me, with the caveat that a similar modification may be needed in a small number of ports that do something like libprocstat (lsof is the main one that comes to mind). I'm ok with kib's suggestions as well.

May 30 2021, 8:59 PM
jah added a comment to D30556: VFS_QUOTACTL(9): allow implementation to indicate busy state changes.

This is the same change you've already reviewed, with 2 exceptions:
--explicit inclusion of sys/types.h for _KERNEL builds from sys/mount.h, to avoid relying on coincidentally getting the header from elsewhere.
--inclusion of stdbool.h for libprocstat modules whose use of kernel headers otherwise defeats the definition of type bool.

May 30 2021, 6:33 PM
jah requested review of D30556: VFS_QUOTACTL(9): allow implementation to indicate busy state changes.
May 30 2021, 6:27 PM
jah added a reverting change for R10:6d3e78ad6c11: VFS_QUOTACTL(9): allow implementation to indicate busy state changes: R10:271fcf1c28ef: Revert commits 6d3e78ad6c11 and 54256e7954d7.
May 30 2021, 12:49 AM
jah added a reverting change for D30218: VFS_QUOTACTL(9): allow implementation to indicate busy state changes: R10:271fcf1c28ef: Revert commits 6d3e78ad6c11 and 54256e7954d7.
May 30 2021, 12:48 AM
jah added a reverting change for R10:54256e7954d7: Fix userspace build after commit 6d3e78ad6c11: R10:271fcf1c28ef: Revert commits 6d3e78ad6c11 and 54256e7954d7.
May 30 2021, 12:48 AM
jah committed R10:271fcf1c28ef: Revert commits 6d3e78ad6c11 and 54256e7954d7 (authored by jah).
Revert commits 6d3e78ad6c11 and 54256e7954d7
May 30 2021, 12:48 AM

May 29 2021

jah committed R10:54256e7954d7: Fix userspace build after commit 6d3e78ad6c11 (authored by jah).
Fix userspace build after commit 6d3e78ad6c11
May 29 2021, 9:42 PM
jah committed R10:6d3e78ad6c11: VFS_QUOTACTL(9): allow implementation to indicate busy state changes (authored by jah).
VFS_QUOTACTL(9): allow implementation to indicate busy state changes
May 29 2021, 9:05 PM
jah closed D30218: VFS_QUOTACTL(9): allow implementation to indicate busy state changes.
May 29 2021, 9:05 PM

May 25 2021

jah updated the diff for D30218: VFS_QUOTACTL(9): allow implementation to indicate busy state changes.

Add comments around unbusying requirements, chase __FreeBSD_version changes

May 25 2021, 6:27 PM
jah abandoned D30152: unionfs: reference the underlying FS' mount objects when using them.
May 25 2021, 6:06 PM
jah abandoned D30263: nullfs: busy the lower mount before calling VFS_* operations on it.

Superseded by https://reviews.freebsd.org/D30401

May 25 2021, 6:05 PM
jah planned changes to D30152: unionfs: reference the underlying FS' mount objects when using them.

Superseded by https://reviews.freebsd.org/D30401

May 25 2021, 6:04 PM
jah updated the diff for D30401: Add a generic mechanism for preventing forced unmount.

Remove stray newline

May 25 2021, 5:39 PM
jah updated the diff for D30401: Add a generic mechanism for preventing forced unmount.

Add and tweak various asserts

May 25 2021, 3:14 AM

May 23 2021

jah requested review of D30401: Add a generic mechanism for preventing forced unmount.
May 23 2021, 3:32 AM

May 21 2021

jah updated the diff for D30218: VFS_QUOTACTL(9): allow implementation to indicate busy state changes.

unbusy the unionfs/nullfs mount before calling QUOTACTL on the lower FS

May 21 2021, 7:45 PM

May 17 2021

jah added inline comments to D30218: VFS_QUOTACTL(9): allow implementation to indicate busy state changes.
May 17 2021, 11:23 PM
jah added a comment to D30218: VFS_QUOTACTL(9): allow implementation to indicate busy state changes.
In D30218#680984, @jah wrote:

Add basic fixes for nullfs and unionfs, conditionalize ZFS changes

May 17 2021, 11:21 PM
jah updated the diff for D30218: VFS_QUOTACTL(9): allow implementation to indicate busy state changes.

Add basic fixes for nullfs and unionfs, conditionalize ZFS changes

May 17 2021, 11:17 PM
jah added inline comments to D30263: nullfs: busy the lower mount before calling VFS_* operations on it.
May 17 2021, 2:06 AM

May 16 2021

jah added inline comments to D30263: nullfs: busy the lower mount before calling VFS_* operations on it.
May 16 2021, 1:44 AM

May 15 2021

jah added inline comments to D30263: nullfs: busy the lower mount before calling VFS_* operations on it.
May 15 2021, 11:12 PM
jah added inline comments to D30263: nullfs: busy the lower mount before calling VFS_* operations on it.
May 15 2021, 9:40 PM
jah added inline comments to D30263: nullfs: busy the lower mount before calling VFS_* operations on it.
May 15 2021, 9:25 PM
jah added inline comments to D30263: nullfs: busy the lower mount before calling VFS_* operations on it.
May 15 2021, 8:55 PM

May 14 2021

jah requested review of D30263: nullfs: busy the lower mount before calling VFS_* operations on it.
May 14 2021, 5:17 PM
jah updated the diff for D30152: unionfs: reference the underlying FS' mount objects when using them.

Replace vfs_ref() with simple atomic load of v_mount

May 14 2021, 12:40 AM
jah added inline comments to D30218: VFS_QUOTACTL(9): allow implementation to indicate busy state changes.
May 14 2021, 12:08 AM

May 13 2021

jah added inline comments to D30218: VFS_QUOTACTL(9): allow implementation to indicate busy state changes.
May 13 2021, 7:37 PM
jah added inline comments to D30152: unionfs: reference the underlying FS' mount objects when using them.
May 13 2021, 3:44 PM
jah added inline comments to D30218: VFS_QUOTACTL(9): allow implementation to indicate busy state changes.
May 13 2021, 2:50 PM
jah updated the diff for D30218: VFS_QUOTACTL(9): allow implementation to indicate busy state changes.

Fix manpage formatting, remove leftover include, fix incorrect deleted line due to fingerslip

May 13 2021, 4:58 AM
jah retitled D30218: VFS_QUOTACTL(9): allow implementation to indicate busy state changes from Follow mount point unbusying requirements in vfs_stdquotactl() to VFS_QUOTACTL(9): allow implementation to indicate busy state changes.
May 13 2021, 2:11 AM
jah updated the diff for D30152: unionfs: reference the underlying FS' mount objects when using them.

Chase D30218

May 13 2021, 2:06 AM