A messenger fix, marked for stable.
-----BEGIN PGP SIGNATURE----- iQFHBAABCAAxFiEEydHwtzie9C7TfviiSn/eOAIR84sFAlv4ScMTHGlkcnlvbW92 QGdtYWlsLmNvbQAKCRBKf944AhHzi1AlCACGgnN3hy/1AS2/fWVkPNZmfAyNC2vb 1MZcYY2eXV+gx5MGr9/DKAGgvlxDRjn+FQAXqTVGNGULTNBEujWa4Z+Hl/gzYXfX LdK90pBe/E2WwcuDMK8WrMSuumJYElLpAcvEoxmAdJCDSXZ4ZGLfktGuaBqBGEJm 9NftKpJzqavuhVMt3wlNnaiZCD++BzMXTnMvcgpSWZIdlGpAXYYfeyFkPu5s1tUl 0PnsS2fP53JPR3nUz5EOksJidn0A9RYnYz/jKMvKFDLwURuRouHbugaZw/tXqUB3 atcd6u+XV3v7RS/fhIybJ7yoO5bE0TehcP7D7qY2R4R8bG+yWc1L124g =yrY2 -----END PGP SIGNATURE----- Merge tag 'ceph-for-4.20-rc4' of https://github.com/ceph/ceph-client Pullk ceph fix from Ilya Dryomov: "A messenger fix, marked for stable" * tag 'ceph-for-4.20-rc4' of https://github.com/ceph/ceph-client: libceph: fall back to sendmsg for slab pages
This commit is contained in:
commit
7c98a42618
|
@ -580,9 +580,15 @@ static int ceph_tcp_sendpage(struct socket *sock, struct page *page,
|
|||
struct bio_vec bvec;
|
||||
int ret;
|
||||
|
||||
/* sendpage cannot properly handle pages with page_count == 0,
|
||||
* we need to fallback to sendmsg if that's the case */
|
||||
if (page_count(page) >= 1)
|
||||
/*
|
||||
* sendpage cannot properly handle pages with page_count == 0,
|
||||
* we need to fall back to sendmsg if that's the case.
|
||||
*
|
||||
* Same goes for slab pages: skb_can_coalesce() allows
|
||||
* coalescing neighboring slab objects into a single frag which
|
||||
* triggers one of hardened usercopy checks.
|
||||
*/
|
||||
if (page_count(page) >= 1 && !PageSlab(page))
|
||||
return __ceph_tcp_sendpage(sock, page, offset, size, more);
|
||||
|
||||
bvec.bv_page = page;
|
||||
|
|
Loading…
Reference in New Issue