Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.3:Update
drbd
compat_get_fs.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File compat_get_fs.patch of Package drbd
3d13f313c, Add force_uaccess_{begin,end} helpers for get_fs/set_fs diff -Naur drbd-9.0.26~0+git.9114a038.orig/drbd/drbd-kernel-compat/tests/have_force_uaccess_begin.c drbd-9.0.26~0+git.9114a038/drbd/drbd-kernel-compat/tests/have_force_uaccess_begin.c --- drbd-9.0.26~0+git.9114a038.orig/drbd/drbd-kernel-compat/tests/have_force_uaccess_begin.c 1970-01-01 08:00:00.000000000 +0800 +++ drbd-9.0.26~0+git.9114a038/drbd/drbd-kernel-compat/tests/have_force_uaccess_begin.c 2020-12-09 19:36:17.554021899 +0800 @@ -0,0 +1,7 @@ +/* 3d13f313c Add force_uaccess_{begin,end} helpers for get_fs/set_fs */ +#include <linux/uaccess.h> + +void dummy(void) +{ + force_uaccess_begin(); +} diff -Naur drbd-9.0.26~0+git.9114a038.orig/drbd/drbd_transport_tcp.c drbd-9.0.26~0+git.9114a038/drbd/drbd_transport_tcp.c --- drbd-9.0.26~0+git.9114a038.orig/drbd/drbd_transport_tcp.c 2020-12-09 19:35:57.493892623 +0800 +++ drbd-9.0.26~0+git.9114a038/drbd/drbd_transport_tcp.c 2020-12-09 19:40:44.863689731 +0800 @@ -1145,7 +1145,12 @@ struct drbd_tcp_transport *tcp_transport = container_of(transport, struct drbd_tcp_transport, transport); struct socket *socket = tcp_transport->stream[stream]; +#ifdef COMPAT_HAVE_FORCE_UACCESS_BEGIN + mm_segment_t oldfs = force_uaccess_begin(); +#else mm_segment_t oldfs = get_fs(); + set_fs(KERNEL_DS); +#endif int len = size; int err = -EIO; @@ -1154,7 +1159,6 @@ msg_flags |= MSG_NOSIGNAL; dtt_update_congested(tcp_transport); - set_fs(KERNEL_DS); do { int sent; @@ -1180,7 +1184,11 @@ * and add that to the while() condition below. */ } while (len > 0 /* THINK && peer_device->repl_state[NOW] >= L_ESTABLISHED */); +#ifdef COMPAT_HAVE_FORCE_UACCESS_BEGIN + force_uaccess_end(oldfs); +#else set_fs(oldfs); +#endif clear_bit(NET_CONGESTED, &tcp_transport->transport.flags); if (len == 0)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor