summaryrefslogtreecommitdiff
path: root/src/kernel/caps.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/caps.c')
-rw-r--r--src/kernel/caps.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/kernel/caps.c b/src/kernel/caps.c
index 06756cc1da0..4e338083183 100644
--- a/src/kernel/caps.c
+++ b/src/kernel/caps.c
@@ -822,8 +822,13 @@ retry_locked:
* Reschedule delayed caps release, unless we are called from
* the delayed work handler (i.e. this _is_ the delayed release)
*/
- if (!is_delayed)
+ if (!is_delayed) {
__cap_delay_requeue(mdsc, ci);
+ } else if (ci->i_ceph_flags & CEPH_I_NEW) {
+ spin_unlock(&inode->i_lock);
+ ceph_pending_flush(d_find_alias(inode));
+ return;
+ }
/*
* If we no longer need to hold onto old our caps, and we may