Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remove usage of d_revalidate #8774

Open
cyphar opened this issue May 21, 2019 · 10 comments · Fixed by #9549
Open

remove usage of d_revalidate #8774

cyphar opened this issue May 21, 2019 · 10 comments · Fixed by #9549
Labels
Bot: Not Stale Override for the stale bot

Comments

@cyphar
Copy link
Contributor

cyphar commented May 21, 2019

This is a tracking issue for the main blocker of #8648, which is that ZFS makes use of d_revalidate. This leads to Linux treating ZFS as a "remote" filesystem (like NFS) and thus things like overlayfs won't work with ZFS.

It seems to me that the solution is to make it so that rollbacks (which appear to be the only reason we have zpl_revalidate) correctly invalidate the dcache so that we don't need to use d_revalidate (but I'm not super familiar with dcache internals so this is going to be fun).

@behlendorf
Copy link
Contributor

That's right. You might be able to do something relatively straight forward like invalidate the entire dentry cache as part of the rollback. That wouldn't be great for performance, but rollbacks should be a rare operation.

The only other gotcha here is that d_revalidate is also leveraged to prevent active snapshots automounted under .zfs/ from being automatically unmounted. This logic will need to be moved somewhere else.

@snajpa
Copy link
Contributor

snajpa commented Sep 11, 2019

Maybe a noob question: why would the entire dcache need to be invalidated?

My understanding is, that dcache can be flushed per superblock instance, as is already done in the rollback path @
https://github.com/zfsonlinux/zfs/blob/master/module/os/linux/zfs/zfs_vfsops.c#L1710
-> maybe we can just do it once more in zfs_resume_fs before the teardown lock release @
https://github.com/zfsonlinux/zfs/blob/master/module/os/linux/zfs/zfs_vfsops.c#L2236;

And as for the automounted snapshots, would a new taskq dedicated to periodically calling zfsctl_snapshot_unmount_delay for all mounted snapshots? Every time a snapshot would be mounted, a task would be queued, which would first check, whether the snapshot is mounted (in case user umounted it) and then call zfsctl_snapshot_unmount_delay and after finishing successfully it would requeue itself to the taskq.

Is that approach OK? I'd like to take this one on, but I'll need a little guidance, please ;)

snajpa added a commit to vpsfreecz/zfs that referenced this issue Sep 24, 2019
@snajpa
Copy link
Contributor

snajpa commented Sep 24, 2019

Well, with a little ugly hack to make Docker run without a patch (so it doesn't detect ZFS and runs with OverlayFS) - I've got OverlayFS with unpatched Docker in LXC container now :)

https://github.com/vpsfreecz/zfs/commits/ovl

Example docker session:

https://paste.vpsfree.cz/Onh4XtG5/

@cyphar would you mind if I send this as a new PR for a fresh review?

@cyphar
Copy link
Contributor Author

cyphar commented Sep 24, 2019

@snajpa I don't mind you sending it as long as you keep my Signed-off-bys for the patches I wrote. Thanks for carrying this, I think I bit off a bit more than I expected when I started working on this. But I think there are a few things left to do in your branch if you wanted to deal with all of the discussion:

  • Remove TX_WHITEOUT and re-implement it as TX_RENAME+TX_CREATE.
  • Drop zfs_drop_nlink as suggested.
  • Complete the rest of the cleanups.

@snajpa
Copy link
Contributor

snajpa commented Sep 25, 2019

I'll keep your original patches as you wrote them (+-, only they're rebased) - if that's not in conflict with some guidelines I've yet to read :)

snajpa added a commit to vpsfreecz/zfs that referenced this issue Sep 30, 2019
@snajpa
Copy link
Contributor

snajpa commented Oct 1, 2019

I'm not exactly clear on a few details, so I've started a disscussion on zfs-devel (as I'll go ahead and try to rewrite this without the new txtypes for me to test anyway). Best way for me to learn is to fail often and fast :-D

https://zfsonlinux.topicbox.com/groups/zfs-devel/Tebb527f71cbeed1e/spafeatureincr-decr-context

snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 3, 2019
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 3, 2019
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 3, 2019
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 4, 2019
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 4, 2019
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 4, 2019
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 4, 2019
This patch removes the need for zpl_revalidate altogether.

There were 3 main reasons why we used d_revalidate:

1. periodic automounted snapshots umount deferral

The way I dealt with this is simply to defer the umount on each ZFS_EXIT on
the mount's zfsvfs.

2. negative dentries created before snapshot rollback
3. stale inodes referenced by dentry cache after snapshot rollback

was solved by flushing dcache for the given mount.

Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 5, 2019
This patch removes the need for zpl_revalidate altogether.

There were 3 main reasons why we used d_revalidate:

1. periodic automounted snapshots umount deferral

The way I dealt with this is simply to defer the umount on each ZFS_EXIT on
the mount's zfsvfs.

2. negative dentries created before snapshot rollback
3. stale inodes referenced by dentry cache after snapshot rollback

was solved by flushing dcache for the given mount.

Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 6, 2019
This patch removes the need for zpl_revalidate altogether.

There were 3 main reasons why we used d_revalidate:

1. periodic automounted snapshots umount deferral

The way I dealt with this is simply to defer the umount on each ZFS_EXIT on
the mount's zfsvfs.

2. negative dentries created before snapshot rollback
3. stale inodes referenced by dentry cache after snapshot rollback

was solved by flushing dcache for the given mount.

Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 7, 2019
This patch removes the need for zpl_revalidate altogether.

There were 3 main reasons why we used d_revalidate:

1. periodic automounted snapshots umount deferral

The way I dealt with this is simply to defer the umount on each ZFS_EXIT on
the mount's zfsvfs.

2. negative dentries created before snapshot rollback
3. stale inodes referenced by dentry cache after snapshot rollback

was solved by flushing dcache for the given mount.

Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 14, 2019
This patch removes the need for zpl_revalidate altogether.

There were 3 main reasons why we used d_revalidate:

1. periodic automounted snapshots umount deferral

The way I dealt with this is simply to defer the umount on each ZFS_EXIT on
the mount's zfsvfs.

2. negative dentries created before snapshot rollback
3. stale inodes referenced by dentry cache after snapshot rollback

was solved by flushing dcache for the given mount.

Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 17, 2019
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug builds
- update configure time tests for rename2 to support kernels from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 17, 2019
This patch removes the need for zpl_revalidate altogether.

There were 3 main reasons why we used d_revalidate:

1. periodic automounted snapshots umount deferral

The way I dealt with this is simply to defer the umount on each ZFS_EXIT on
the mount's zfsvfs.

2. negative dentries created before snapshot rollback
3. stale inodes referenced by dentry cache after snapshot rollback

was solved by flushing dcache for the given mount.

Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 17, 2019
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug builds
- update configure time tests for rename2 to support kernels from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 19, 2019
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug builds
- update configure time tests for rename2 to support kernels from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 20, 2019
This patch removes the need for zpl_revalidate altogether.

There were 3 main reasons why we used d_revalidate:

1. periodic automounted snapshots umount deferral

The way I dealt with this is simply to defer the umount on each ZFS_EXIT on
the mount's zfsvfs.

2. negative dentries created before snapshot rollback
3. stale inodes referenced by dentry cache after snapshot rollback

was solved by flushing dcache for the given mount.

Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 20, 2019
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug builds
- update configure time tests for rename2 to support kernels from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 20, 2019
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug builds
- update configure time tests for rename2 to support kernels from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 20, 2019
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug builds
- update configure time tests for rename2 to support kernels from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 20, 2019
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug builds
- update configure time tests for rename2 to support kernels from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Aug 4, 2020
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Aug 10, 2020
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Aug 19, 2020
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Aug 21, 2020
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Sep 3, 2020
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 11, 2020
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Oct 12, 2020
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Nov 5, 2020
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Nov 12, 2020
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Nov 15, 2020
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Nov 20, 2020
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Nov 27, 2020
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Jan 14, 2021
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Jan 16, 2021
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Feb 2, 2021
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Apr 27, 2021
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Apr 30, 2021
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Apr 30, 2021
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue Apr 30, 2021
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
snajpa added a commit to vpsfreecz/zfs that referenced this issue May 8, 2021
Removing new txtypes in favor of compound ZIL operations, see comment in
module/zfs/zfs_log.c.

Other notable changes:

- unlock after the inodes are updated
- pass whiteout znode pointer to zfs_log_rename_whiteout
- don't wrap code directly in ASSERT*(), it turn to noop on non-debug
  builds
- update configure time tests for rename2 to support kernels
  from 3.5 to 4.8

Fixes openzfs#2256
Fixes openzfs#8648
Fixes openzfs#8774

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
@cyphar
Copy link
Contributor Author

cyphar commented Jun 9, 2021

@behlendorf Can you re-open this, since I think the zpl_revalidate change was reverted? It will be fixed in my carry of #9414 but probably best to keep it open until it's fixed.

@behlendorf
Copy link
Contributor

Sure, reopened.

@stale
Copy link

stale bot commented Jun 10, 2022

This issue has been automatically marked as "stale" because it has not had any activity for a while. It will be closed in 90 days if no further activity occurs. Thank you for your contributions.

@stale stale bot added the Status: Stale No recent activity for issue label Jun 10, 2022
@cyphar
Copy link
Contributor Author

cyphar commented Jun 11, 2022

Still an issue.

@stale stale bot removed the Status: Stale No recent activity for issue label Jun 11, 2022
@behlendorf behlendorf added the Bot: Not Stale Override for the stale bot label Jun 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bot: Not Stale Override for the stale bot
Projects
None yet
3 participants