libceph: put request only if it's done in handle_reply()
authorIlya Dryomov <idryomov@gmail.com>
Fri, 27 May 2016 13:18:34 +0000 (15:18 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 30 May 2016 21:00:23 +0000 (23:00 +0200)
commitdc045a9168c83b2dc590930a0565e066346de382
treef2a0d74e082a7a359b470a40fe068dece067e42f
parentb7ec35b304b64af2830027350cc99d31e6e537c2
libceph: put request only if it's done in handle_reply()

handle_reply() may be called twice on the same request: on ack and then
on commit.  This occurs on btrfs-formatted OSDs or if cephfs sync write
path is triggered - CEPH_OSD_FLAG_ACK | CEPH_OSD_FLAG_ONDISK.

handle_reply() handles this with the help of done_request().

Fixes: 5aea3dcd5021 ("libceph: a major OSD client update")
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
net/ceph/osd_client.c