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

Linux 5.6 compat #9961

Closed
wants to merge 2 commits into from
Closed

Conversation

behlendorf
Copy link
Contributor

Motivation and Context

Resolve build issues with the upcoming Linux 5.6 kernel.

Description

  • Linux 5.6 compat: timestamp_truncate()

The timestamp_truncate() function was added, it replaces the existing
timespec64_trunc() function. This change renames our wrapper function
to be consistent with the upstream name and updates the compatibility
code for older kernels accordingly.

  • Linux 5.6 compat: struct proc_ops

The proc_ops structure was introduced to replace the use of of the
file_operations structure when registering proc handlers. This
change creates a new kstat_proc_op_t typedef for compatibility
which can be used to pass around the correct structure.

This change additionally adds the 'const' keyword to all of the
existing proc operations structures.

How Has This Been Tested?

Locally compiled against a v5.5-9824-g90568ecf5615 kernel.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Performance enhancement (non-breaking change which improves efficiency)
  • Code cleanup (non-breaking change which makes code smaller or more readable)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation (a change to man pages or other documentation)

Checklist:

  • My code follows the ZFS on Linux code style requirements.
  • I have updated the documentation accordingly.
  • I have read the contributing document.
  • I have added tests to cover my changes.
  • I have run the ZFS Test Suite with this change applied.
  • All commit messages are properly formatted and contain Signed-off-by.

The proc_ops structure was introduced to replace the use of of the
file_operations structure when registering proc handlers.  This
change creates a new kstat_proc_op_t typedef for compatibility
which can be used to pass around the correct structure.

This change additionally adds the 'const' keyword to all of the
existing proc operations structures.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
The timestamp_truncate() function was added, it replaces the existing
timespec64_trunc() function.  This change renames our wrapper function
to be consistent with the upstream name and updates the compatibility
code for older kernels accordingly.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
@behlendorf behlendorf added Type: Building Indicates an issue related to building binaries Status: Code Review Needed Ready for review and testing labels Feb 6, 2020
@codecov
Copy link

codecov bot commented Feb 7, 2020

Codecov Report

Merging #9961 into master will increase coverage by <1%.
The diff coverage is 100%.

Impacted file tree graph

@@           Coverage Diff            @@
##           master    #9961    +/-   ##
========================================
+ Coverage      79%      79%   +<1%     
========================================
  Files         385      385            
  Lines      121938   121938            
========================================
+ Hits        96748    96841    +93     
+ Misses      25190    25097    -93
Flag Coverage Δ
#kernel 80% <100%> (ø) ⬆️
#user 67% <ø> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 77122f9...e921f92. Read the comment docs.

@behlendorf behlendorf added Status: Accepted Ready to integrate (reviewed, tested) and removed Status: Code Review Needed Ready for review and testing labels Feb 7, 2020
@behlendorf behlendorf closed this in 0dd7364 Feb 7, 2020
behlendorf added a commit that referenced this pull request Feb 7, 2020
The timestamp_truncate() function was added, it replaces the existing
timespec64_trunc() function.  This change renames our wrapper function
to be consistent with the upstream name and updates the compatibility
code for older kernels accordingly.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #9956
Closes #9961
@satmandu
Copy link
Contributor

satmandu commented Feb 13, 2020

For those who might be looking for a version of this patch for the zfs-0.8-release branch, I adapted this set of patches to be applied to the ubuntu's zfs-0.8-release based zfs-dkms_0.8.3-1ubuntu3 package using this patch: https://paste.ubuntu.com/p/wsS9GFHjyv/

Applying this patch let's me boot mainline 5.6.0-050600rc1-generic and mount my zpools.

@satmandu
Copy link
Contributor

satmandu commented Feb 25, 2020

5.6.rc3 cumulative patch for zfs 0.8.x branch for ubuntu adapting #9961 & #10064 here: https://gist.github.com/satmandu/67cbae9c4d461be0e64428a1707aef1c

@custom82
Copy link

custom82 commented Apr 1, 2020

zfs fail to build on x86_64 with latest linux 5.6 on my gentoo

@custom82
Copy link

custom82 commented Apr 1, 2020

.3/module/lua/lauxlib.o /var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/module/lua/lauxlib.c
make[5]: *** [scripts/Makefile.build:268: /var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/module/lua/lapi.o] Error 1
make[5]: *** Waiting for unfinished jobs....
In file included from /var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/sys/nvpair.h:30,
from /var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/module/nvpair/fnvpair.c:26:
/var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/spl/sys/time.h: In function ‘gethrtime’:
/var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/spl/sys/time.h:112:18: error: storage size of ‘ts’ isn’t known
112 | struct timespec ts;
| ^~
/var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/spl/sys/time.h:113:2: error: implicit declaration of function ‘getrawmonotonic’ [-Werror=implicit-function-declaration]
113 | getrawmonotonic(&ts);
| ^~~~~~~~~~~~~~~
/var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/spl/sys/time.h:112:18: warning: unused variable ‘ts’ [-Wunused-variable]
112 | struct timespec ts;
| ^~
In file included from /var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/sys/nvpair.h:30,
from /var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/module/nvpair/nvpair_alloc_spl.c:27:
/var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/spl/sys/time.h: In function ‘gethrtime’:
/var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/spl/sys/time.h:112:18: error: storage size of ‘ts’ isn’t known
112 | struct timespec ts;
| ^~
/var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/spl/sys/time.h:113:2: error: implicit declaration of function ‘getrawmonotonic’ [-Werror=implicit-function-declaration]
113 | getrawmonotonic(&ts);
| ^~~~~~~~~~~~~~~
/var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/spl/sys/time.h:112:18: warning: unused variable ‘ts’ [-Wunused-variable]
112 | struct timespec ts;
| ^~
cc1: some warnings being treated as errors
make[5]: *** [scripts/Makefile.build:268: /var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/module/nvpair/fnvpair.o] Error 1
cc1: some warnings being treated as errors
make[5]: *** [scripts/Makefile.build:268: /var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/module/nvpair/nvpair_alloc_spl.o] Error 1
make[4]: *** [scripts/Makefile.build:505: /var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/module/nvpair] Error 2
In file included from /var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/spl/sys/condvar.h:33,
from /var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/sys/zfs_context.h:38,
from /var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/sys/lua/lua.h:13,
from /var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/module/lua/lauxlib.c:16:
/var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/spl/sys/time.h: In function ‘gethrtime’:
/var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/spl/sys/time.h:112:18: error: storage size of ‘ts’ isn’t known
112 | struct timespec ts;
| ^~
/var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/spl/sys/time.h:113:2: error: implicit declaration of function ‘getrawmonotonic’ [-Werror=implicit-function-declaration]
113 | getrawmonotonic(&ts);
| ^~~~~~~~~~~~~~~
/var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/spl/sys/time.h:112:18: warning: unused variable ‘ts’ [-Wunused-variable]
112 | struct timespec ts;
| ^~
cc1: some warnings being treated as errors
make[5]: *** [scripts/Makefile.build:268: /var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/module/lua/lauxlib.o] Error 1
make[4]: *** [scripts/Makefile.build:505: /var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/module/lua] Error 2
make[3]: *** [Makefile:1683: /var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/module] Error 2
make[3]: Leaving directory '/usr/src/linux-5.6.0-gentoo'
make[2]: *** [Makefile:30: modules] Error 2
make[2]: Leaving directory '/var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/module'
make[1]: *** [Makefile:730: all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3'
make: *** [Makefile:599: all] Error 2

@behlendorf
Copy link
Contributor Author

This compatibility fix will be include in the next tag (0.8.4).

@dreamcat4
Copy link

Until then the patch #9961 (comment) remade from this pr by @satmandu worked fine for me ontop of 0.8.3 git tag. But you may also need the other patch for 5.5 compatibility with that certain kernel option too.

@mskarbek mskarbek mentioned this pull request Apr 3, 2020
@freswa
Copy link

freswa commented Apr 6, 2020

@behlendorf May I help to prepare 0.8.4?

@behlendorf
Copy link
Contributor Author

@freswa thanks for the offer, but we'd like to apply our usual process. If you need a version of 0.8.3 which works with 5.6 kernels you can apply the following patches from master.

bd0d24e Linux 5.5 compat: blkg_tryget()
2c3a837 Linux 5.6 compat: time_t
ff5587d Linux 5.6 compat: ktime_get_raw_ts64()
795699a Linux 5.6 compat: timestamp_truncate()
0dd7364 Linux 5.6 compat: struct proc_ops

@eirnym
Copy link

eirnym commented Apr 9, 2020

May I ask for a release?

@sunilvaltix
Copy link

sunilvaltix commented Apr 14, 2020

5.6.rc3 cumulative patch for zfs 0.8.x branch for ubuntu adapting #9961 & #10064 here: https://gist.github.com/satmandu/67cbae9c4d461be0e64428a1707aef1c

Is this patch sufficient for 5.6 support? I saw another issue which is a run time undefined symbol issue and not a build time: #10167

Do I need to include that one too for proper import of the pools with 5.6?

PS: never mind, the patch from that comment is not enough to build with 5.6, still lot of errors. Any ideas on when this will be fixed for 0.8.x?

@dreamcat4
Copy link

dreamcat4 commented Apr 14, 2020

@sunilvaltix the gist worked for me [edit] you may also need the 5.5.x patches. These seemed to work for other people too. However when you reboot then zfs might not import automatically your pools. That could be for a configuration reason, regarding disabled systemd services? Then there are other systemctl commands to deal with that. I run them after installing the new apt pkgs but before rebooting the system.

[edit] Here are my full instructions for building from start to finish. In the middle you find the patches and how to apply them. And finally at the very bottom are the systemctl commands to re-enable automatic import.

https://gist.github.com/dreamcat4/fd7d39c47ac361277283641ba6d68e66

...this is what works for myself, YMMV. Its instructions for ubuntu only. So may need to do something else for other distro(s).

gamanakis pushed a commit to gamanakis/zfs that referenced this pull request Apr 15, 2020
The proc_ops structure was introduced to replace the use of of the
file_operations structure when registering proc handlers.  This
change creates a new kstat_proc_op_t typedef for compatibility
which can be used to pass around the correct structure.

This change additionally adds the 'const' keyword to all of the
existing proc operations structures.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#9961
gamanakis pushed a commit to gamanakis/zfs that referenced this pull request Apr 15, 2020
The timestamp_truncate() function was added, it replaces the existing
timespec64_trunc() function.  This change renames our wrapper function
to be consistent with the upstream name and updates the compatibility
code for older kernels accordingly.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#9956
Closes openzfs#9961
gamanakis pushed a commit to gamanakis/zfs that referenced this pull request Apr 15, 2020
The proc_ops structure was introduced to replace the use of of the
file_operations structure when registering proc handlers.  This
change creates a new kstat_proc_op_t typedef for compatibility
which can be used to pass around the correct structure.

This change additionally adds the 'const' keyword to all of the
existing proc operations structures.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#9961
gamanakis pushed a commit to gamanakis/zfs that referenced this pull request Apr 15, 2020
The timestamp_truncate() function was added, it replaces the existing
timespec64_trunc() function.  This change renames our wrapper function
to be consistent with the upstream name and updates the compatibility
code for older kernels accordingly.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#9956
Closes openzfs#9961
tonyhutter pushed a commit to tonyhutter/zfs that referenced this pull request Apr 15, 2020
The timestamp_truncate() function was added, it replaces the existing
timespec64_trunc() function.  This change renames our wrapper function
to be consistent with the upstream name and updates the compatibility
code for older kernels accordingly.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#9956
Closes openzfs#9961
tonyhutter pushed a commit to tonyhutter/zfs that referenced this pull request Apr 15, 2020
The proc_ops structure was introduced to replace the use of of the
file_operations structure when registering proc handlers.  This
change creates a new kstat_proc_op_t typedef for compatibility
which can be used to pass around the correct structure.

This change additionally adds the 'const' keyword to all of the
existing proc operations structures.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#9961
@sunilvaltix
Copy link

sunilvaltix commented Apr 16, 2020

@behlendorf once again the latest version of zfs is incompatible with the latest version of linux, which is a bit awkward. While I appreciate your guidance on what patches to apply, it seems those patches don't all apply cleanly.

If anyone else needs to backport kernel 5.6 support, note that you'll need the 5.5 patch with conflicts resolved, as mentioned here: #9745 (comment)

2fcab87 Linux 5.5 compat: blkg_tryget()

And then additionally apply the roundup of 5.6 patches which @freswa created for eli-schwartz/pkgbuilds#14 (comment) and which is deployed to the Arch User Repository via https://aur.archlinux.org/cgit/aur.git/commit/?h=zfs-dkms&id=e4f228252dd51cc7a32b38fe417c03c0750480f9

0002-fix-5.6-build.patch is suitable for applying to https://github.com/openzfs/zfs/commits/zfs-0.8-release because it contains full git commitdiffs of the remaining 4 patches with intact commit messages for review purposes, not just tree diffs. It would be appreciated if this or an equivalent nonconflicting patch series was published to https://github.com/openzfs/zfs/commits/zfs-0.8-release to make it easier for downstream consumers to vet it, but for my purposes this patch file suffices.

Additional distros are welcome to reuse this patch file.

I took the 5.5 and 5.6 patches from this and put it /etc/portage/patches/sys-fs/zfs-kmod for gentoo to pick them up. The patches apply correctly. But I keep getting the errors I showed above.

/var/tmp/portage/sys-fs/zfs-kmod-0.8.3/work/zfs-0.8.3/include/spl/sys/time.h:112:18: error: storage size of 'ts' isn't known

@sunilvaltix
Copy link

I did another experiment:

  1. Checkout a tree at openzfs/zfs and update to 0.8.3 tag.
  2. Tar it up and put it in /usr/portage/distfiles instead of the official release tar.gz from https://github.com/zfsonlinux/zfs/releases/download/zfs-0.8.3/zfs-0.8.3.tar.gz
  3. Rerun the emerge with only the 0002-fix-5.6-build.patch from above. It builds fine!

So, how is this possible? How can official 0.8.3 tar patched with 0002-fix-5.6-build.patch not build but a tar created from git's 0.8.3 tag builds when patched with the same patch?

Can someone pls explain this?

@sunilvaltix
Copy link

Another mystery: the patch for 5.5 is not needed.

@eirnym
Copy link

eirnym commented Apr 16, 2020

@behlendorf Could we ask for a release, as it's too much confusion which patches to apply.

@dreamcat4
Copy link

dreamcat4 commented Apr 16, 2020

Hey guys you should not be bothering the lead developer about these release issues, because his time is far more valuable and better spent for everyone to keep working through dev issues on master branch. And not be bogged down by this type of stuff. That can be worked out by other people and / or may be specific to your environment and / or not reproducible in his own development environment. Were he to do so that then would have the knock on effect of slowing down the main developement branch for other really important matters such as critical bug fixes and new features! Which are also very significant to the integrity of the project. I hope you can understand this....

For Release matters that is the area of other team members such as @tonyhutter. In fact we already had some discussions about the current release cycle (how slow it's gotten) and were talking about whether it made sense or not for somehow altering the release cycle, including in light of breaking kernel changes. That discussion already took place a few months ago... forgive my memory for being so cloudy but I seem to remember there were some pretty good reasons why it cannot happen ATM for zfs project. There are certain constraints going on in with the release cycle and Tony is the best person to recap on that. It's slightly unfortunate that cannot actually remember the link, to dig that out again and point you guys back to the outcomes of that previous discussion.

Anyhow if you have an immediate problem (which may be important !) and either need assistance or otherwise want to just know when the next release is most likely coming up... then @tonyhutter is really the point person. He is currently the zfs release manager I believe, if I'm not mistaken? By all accounts also a very busy person too. There are certain other people involved too, unfortunately I forget their names right now. But certainly Tony is the one who has been putting together the last few official releases, bringing together patch sets.

[edit] Oh and BTW sorry if you were unaware of any of that... didn't want to butt in and add any extra unnecessary noise / detract from these discussions.
Kind Regards.

@tonyhutter
Copy link
Contributor

@eirnym - I actually opened a PR for 0.8.4 yesterday (#10209). You can grab the patches from there if you want.

@eirnym
Copy link

eirnym commented Apr 17, 2020

@tonyhutter Thank you! I'll follow it

@eli-schwartz
Copy link
Contributor

So, how is this possible? How can official 0.8.3 tar patched with 0002-fix-5.6-build.patch not build but a tar created from git's 0.8.3 tag builds when patched with the same patch?

Did your build recipe run autoreconf so that the new m4 macros are properly converted into an updated ./configure script? If you are relying on portage's autodetection in your ebuild, then it might not recognize it is needed if the outdated configure script exists -- but it will definitely be recognized if you use the git tarball and there is a 'configure.ac' but not a 'configure', that autoreconf must be run.

Another mystery: the patch for 5.5 is not needed.

It's only needed for PREEMPT_RCU kernels, which your self-compiled gentoo kernel might not be, but some generic distro kernels are.

tonyhutter pushed a commit to tonyhutter/zfs that referenced this pull request Apr 22, 2020
The timestamp_truncate() function was added, it replaces the existing
timespec64_trunc() function.  This change renames our wrapper function
to be consistent with the upstream name and updates the compatibility
code for older kernels accordingly.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#9956
Closes openzfs#9961
tonyhutter pushed a commit to tonyhutter/zfs that referenced this pull request Apr 22, 2020
The proc_ops structure was introduced to replace the use of of the
file_operations structure when registering proc handlers.  This
change creates a new kstat_proc_op_t typedef for compatibility
which can be used to pass around the correct structure.

This change additionally adds the 'const' keyword to all of the
existing proc operations structures.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#9961
tonyhutter pushed a commit to tonyhutter/zfs that referenced this pull request Apr 22, 2020
The timestamp_truncate() function was added, it replaces the existing
timespec64_trunc() function.  This change renames our wrapper function
to be consistent with the upstream name and updates the compatibility
code for older kernels accordingly.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#9956
Closes openzfs#9961
tonyhutter pushed a commit to tonyhutter/zfs that referenced this pull request Apr 22, 2020
The proc_ops structure was introduced to replace the use of of the
file_operations structure when registering proc handlers.  This
change creates a new kstat_proc_op_t typedef for compatibility
which can be used to pass around the correct structure.

This change additionally adds the 'const' keyword to all of the
existing proc operations structures.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#9961
tonyhutter pushed a commit to tonyhutter/zfs that referenced this pull request Apr 28, 2020
The timestamp_truncate() function was added, it replaces the existing
timespec64_trunc() function.  This change renames our wrapper function
to be consistent with the upstream name and updates the compatibility
code for older kernels accordingly.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#9956
Closes openzfs#9961
tonyhutter pushed a commit to tonyhutter/zfs that referenced this pull request Apr 28, 2020
The proc_ops structure was introduced to replace the use of of the
file_operations structure when registering proc handlers.  This
change creates a new kstat_proc_op_t typedef for compatibility
which can be used to pass around the correct structure.

This change additionally adds the 'const' keyword to all of the
existing proc operations structures.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#9961
tonyhutter pushed a commit that referenced this pull request May 12, 2020
The timestamp_truncate() function was added, it replaces the existing
timespec64_trunc() function.  This change renames our wrapper function
to be consistent with the upstream name and updates the compatibility
code for older kernels accordingly.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #9956
Closes #9961
tonyhutter pushed a commit that referenced this pull request May 12, 2020
The proc_ops structure was introduced to replace the use of of the
file_operations structure when registering proc handlers.  This
change creates a new kstat_proc_op_t typedef for compatibility
which can be used to pass around the correct structure.

This change additionally adds the 'const' keyword to all of the
existing proc operations structures.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #9961
snajpa pushed a commit to vpsfreecz/zfs that referenced this pull request May 28, 2020
The proc_ops structure was introduced to replace the use of of the
file_operations structure when registering proc handlers.  This
change creates a new kstat_proc_op_t typedef for compatibility
which can be used to pass around the correct structure.

This change additionally adds the 'const' keyword to all of the
existing proc operations structures.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#9961
snajpa pushed a commit to vpsfreecz/zfs that referenced this pull request May 28, 2020
The timestamp_truncate() function was added, it replaces the existing
timespec64_trunc() function.  This change renames our wrapper function
to be consistent with the upstream name and updates the compatibility
code for older kernels accordingly.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#9956
Closes openzfs#9961
jsai20 pushed a commit to jsai20/zfs that referenced this pull request Mar 30, 2021
The proc_ops structure was introduced to replace the use of of the
file_operations structure when registering proc handlers.  This
change creates a new kstat_proc_op_t typedef for compatibility
which can be used to pass around the correct structure.

This change additionally adds the 'const' keyword to all of the
existing proc operations structures.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#9961
jsai20 pushed a commit to jsai20/zfs that referenced this pull request Mar 30, 2021
The timestamp_truncate() function was added, it replaces the existing
timespec64_trunc() function.  This change renames our wrapper function
to be consistent with the upstream name and updates the compatibility
code for older kernels accordingly.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#9956
Closes openzfs#9961
@behlendorf behlendorf deleted the linux-5.6-compat branch April 19, 2021 19:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Accepted Ready to integrate (reviewed, tested) Type: Building Indicates an issue related to building binaries
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants