diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2020-03-08 11:02:31 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2020-03-08 11:02:31 +0000 |
commit | 3df8d77dd05e135c1b79f5ef048ff606d2b70cd1 (patch) | |
tree | 0a989ca7971f969924115e2a71c5f41b47bde679 /sys-kernel/zfs-dkms/files/kernel-5.5.patch | |
parent | 1278e2f4fda8248bf2d37aeddf211be75e973517 (diff) |
sys-kernel/zfs-dkms : fix kernel 5.5 compat
Diffstat (limited to 'sys-kernel/zfs-dkms/files/kernel-5.5.patch')
-rw-r--r-- | sys-kernel/zfs-dkms/files/kernel-5.5.patch | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/sys-kernel/zfs-dkms/files/kernel-5.5.patch b/sys-kernel/zfs-dkms/files/kernel-5.5.patch new file mode 100644 index 00000000..8d2a950f --- /dev/null +++ b/sys-kernel/zfs-dkms/files/kernel-5.5.patch @@ -0,0 +1,35 @@ +diff --git a/module/zfs/vdev_disk.c b/module/zfs/vdev_disk.c +index 4ffc41cca34..cbe9e18316e 100644 +--- a/module/zfs/vdev_disk.c ++++ b/module/zfs/vdev_disk.c +@@ -473,6 +473,30 @@ + + #ifdef HAVE_BIO_SET_DEV + #if defined(CONFIG_BLK_CGROUP) && defined(HAVE_BIO_SET_DEV_GPL_ONLY) ++static inline bool vdev_percpu_ref_tryget(struct percpu_ref *ref) ++{ ++ unsigned long __percpu *percpu_count; ++ bool ret; ++ ++ rcu_read_lock_sched(); ++ ++ if (__ref_is_percpu(ref, &percpu_count)) { ++ this_cpu_inc(*percpu_count); ++ ret = true; ++ } else { ++ ret = atomic_long_inc_not_zero(&ref->count); ++ } ++ ++ rcu_read_unlock_sched(); ++ ++ return ret; ++} ++#define percpu_ref_tryget vdev_percpu_ref_tryget ++static inline bool vdev_blkg_tryget(struct blkcg_gq *blkg) ++{ ++ return blkg && vdev_percpu_ref_tryget(&blkg->refcnt); ++} ++#define blkg_tryget vdev_blkg_tryget + /* + * The Linux 5.0 kernel updated the bio_set_dev() macro so it calls the + * GPL-only bio_associate_blkg() symbol thus inadvertently converting |