Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'ceph-for-4.11-rc4' of git://github.com/ceph/ceph-client

Pull ceph fix from Ilya Dryomov:
"A fix for a writeback deadlock caused by a GFP_KERNEL allocation on
the reclaim path, tagged for stable"

* tag 'ceph-for-4.11-rc4' of git://github.com/ceph/ceph-client:
libceph: force GFP_NOIO for socket allocations

+6
+6
net/ceph/messenger.c
··· 7 7 #include <linux/kthread.h> 8 8 #include <linux/net.h> 9 9 #include <linux/nsproxy.h> 10 + #include <linux/sched/mm.h> 10 11 #include <linux/slab.h> 11 12 #include <linux/socket.h> 12 13 #include <linux/string.h> ··· 470 469 { 471 470 struct sockaddr_storage *paddr = &con->peer_addr.in_addr; 472 471 struct socket *sock; 472 + unsigned int noio_flag; 473 473 int ret; 474 474 475 475 BUG_ON(con->sock); 476 + 477 + /* sock_create_kern() allocates with GFP_KERNEL */ 478 + noio_flag = memalloc_noio_save(); 476 479 ret = sock_create_kern(read_pnet(&con->msgr->net), paddr->ss_family, 477 480 SOCK_STREAM, IPPROTO_TCP, &sock); 481 + memalloc_noio_restore(noio_flag); 478 482 if (ret) 479 483 return ret; 480 484 sock->sk->sk_allocation = GFP_NOFS;