aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ceph
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ceph')
-rw-r--r--fs/ceph/file.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/ceph/file.c b/fs/ceph/file.c
index 7d0e4a82d898..db5d86309744 100644
--- a/fs/ceph/file.c
+++ b/fs/ceph/file.c
@@ -568,7 +568,14 @@ more:
568 spin_unlock(&ci->i_unsafe_lock); 568 spin_unlock(&ci->i_unsafe_lock);
569 ceph_get_cap_refs(ci, CEPH_CAP_FILE_WR); 569 ceph_get_cap_refs(ci, CEPH_CAP_FILE_WR);
570 } 570 }
571
571 ret = ceph_osdc_wait_request(&fsc->client->osdc, req); 572 ret = ceph_osdc_wait_request(&fsc->client->osdc, req);
573 if (ret < 0 && req->r_safe_callback) {
574 spin_lock(&ci->i_unsafe_lock);
575 list_del_init(&req->r_unsafe_item);
576 spin_unlock(&ci->i_unsafe_lock);
577 ceph_put_cap_refs(ci, CEPH_CAP_FILE_WR);
578 }
572 } 579 }
573 580
574 if (file->f_flags & O_DIRECT) 581 if (file->f_flags & O_DIRECT)