libceph: allocate ceph_osd with GFP_NOFAIL
authorIlya Dryomov <idryomov@gmail.com>
Thu, 28 Apr 2016 14:07:25 +0000 (16:07 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Wed, 25 May 2016 23:12:29 +0000 (01:12 +0200)
commit7a28f59bf9fb220cdf56ac6ab539fc4a0ae59414
tree043c6542efd161eb0a6fc3d4dbc3efd842f0f9e3
parent0247a0cf3e777932a0cae37ab1d8055a3881458c
libceph: allocate ceph_osd with GFP_NOFAIL

create_osd() is called way too deep in the stack to be able to error
out in a sane way; a failing create_osd() just messes everything up.
The current req_notarget list solution is broken - the list is never
traversed as it's not entirely clear when to do it, I guess.

If we were to start traversing it at regular intervals and retrying
each request, we wouldn't be far off from what __GFP_NOFAIL is doing,
so allocate OSD sessions with __GFP_NOFAIL, at least until we come up
with a better fix.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
net/ceph/osd_client.c