Lines Matching refs:mdsc

44 static u64 __get_oldest_flush_tid(struct ceph_mds_client *mdsc);
45 static void __kick_flushing_caps(struct ceph_mds_client *mdsc,
126 void ceph_caps_init(struct ceph_mds_client *mdsc) in ceph_caps_init() argument
128 INIT_LIST_HEAD(&mdsc->caps_list); in ceph_caps_init()
129 spin_lock_init(&mdsc->caps_list_lock); in ceph_caps_init()
132 void ceph_caps_finalize(struct ceph_mds_client *mdsc) in ceph_caps_finalize() argument
136 spin_lock(&mdsc->caps_list_lock); in ceph_caps_finalize()
137 while (!list_empty(&mdsc->caps_list)) { in ceph_caps_finalize()
138 cap = list_first_entry(&mdsc->caps_list, in ceph_caps_finalize()
143 mdsc->caps_total_count = 0; in ceph_caps_finalize()
144 mdsc->caps_avail_count = 0; in ceph_caps_finalize()
145 mdsc->caps_use_count = 0; in ceph_caps_finalize()
146 mdsc->caps_reserve_count = 0; in ceph_caps_finalize()
147 mdsc->caps_min_count = 0; in ceph_caps_finalize()
148 spin_unlock(&mdsc->caps_list_lock); in ceph_caps_finalize()
151 void ceph_adjust_min_caps(struct ceph_mds_client *mdsc, int delta) in ceph_adjust_min_caps() argument
153 spin_lock(&mdsc->caps_list_lock); in ceph_adjust_min_caps()
154 mdsc->caps_min_count += delta; in ceph_adjust_min_caps()
155 BUG_ON(mdsc->caps_min_count < 0); in ceph_adjust_min_caps()
156 spin_unlock(&mdsc->caps_list_lock); in ceph_adjust_min_caps()
159 static void __ceph_unreserve_caps(struct ceph_mds_client *mdsc, int nr_caps) in __ceph_unreserve_caps() argument
165 BUG_ON(mdsc->caps_reserve_count < nr_caps); in __ceph_unreserve_caps()
166 mdsc->caps_reserve_count -= nr_caps; in __ceph_unreserve_caps()
167 if (mdsc->caps_avail_count >= in __ceph_unreserve_caps()
168 mdsc->caps_reserve_count + mdsc->caps_min_count) { in __ceph_unreserve_caps()
169 mdsc->caps_total_count -= nr_caps; in __ceph_unreserve_caps()
171 cap = list_first_entry(&mdsc->caps_list, in __ceph_unreserve_caps()
177 mdsc->caps_avail_count += nr_caps; in __ceph_unreserve_caps()
182 mdsc->caps_total_count, mdsc->caps_use_count, in __ceph_unreserve_caps()
183 mdsc->caps_reserve_count, mdsc->caps_avail_count); in __ceph_unreserve_caps()
184 BUG_ON(mdsc->caps_total_count != mdsc->caps_use_count + in __ceph_unreserve_caps()
185 mdsc->caps_reserve_count + in __ceph_unreserve_caps()
186 mdsc->caps_avail_count); in __ceph_unreserve_caps()
193 int ceph_reserve_caps(struct ceph_mds_client *mdsc, in ceph_reserve_caps() argument
209 spin_lock(&mdsc->caps_list_lock); in ceph_reserve_caps()
210 if (mdsc->caps_avail_count >= need) in ceph_reserve_caps()
213 have = mdsc->caps_avail_count; in ceph_reserve_caps()
214 mdsc->caps_avail_count -= have; in ceph_reserve_caps()
215 mdsc->caps_reserve_count += have; in ceph_reserve_caps()
216 BUG_ON(mdsc->caps_total_count != mdsc->caps_use_count + in ceph_reserve_caps()
217 mdsc->caps_reserve_count + in ceph_reserve_caps()
218 mdsc->caps_avail_count); in ceph_reserve_caps()
219 spin_unlock(&mdsc->caps_list_lock); in ceph_reserve_caps()
231 for (j = 0; j < mdsc->max_sessions; j++) { in ceph_reserve_caps()
232 s = __ceph_lookup_mds_session(mdsc, j); in ceph_reserve_caps()
235 mutex_unlock(&mdsc->mutex); in ceph_reserve_caps()
239 ceph_trim_caps(mdsc, s, max_caps); in ceph_reserve_caps()
243 mutex_lock(&mdsc->mutex); in ceph_reserve_caps()
247 spin_lock(&mdsc->caps_list_lock); in ceph_reserve_caps()
248 if (mdsc->caps_avail_count) { in ceph_reserve_caps()
250 if (mdsc->caps_avail_count >= need - i) in ceph_reserve_caps()
253 more_have = mdsc->caps_avail_count; in ceph_reserve_caps()
257 mdsc->caps_avail_count -= more_have; in ceph_reserve_caps()
258 mdsc->caps_reserve_count += more_have; in ceph_reserve_caps()
261 spin_unlock(&mdsc->caps_list_lock); in ceph_reserve_caps()
277 spin_lock(&mdsc->caps_list_lock); in ceph_reserve_caps()
278 mdsc->caps_total_count += alloc; in ceph_reserve_caps()
279 mdsc->caps_reserve_count += alloc; in ceph_reserve_caps()
280 list_splice(&newcaps, &mdsc->caps_list); in ceph_reserve_caps()
282 BUG_ON(mdsc->caps_total_count != mdsc->caps_use_count + in ceph_reserve_caps()
283 mdsc->caps_reserve_count + in ceph_reserve_caps()
284 mdsc->caps_avail_count); in ceph_reserve_caps()
287 __ceph_unreserve_caps(mdsc, have + alloc); in ceph_reserve_caps()
289 spin_unlock(&mdsc->caps_list_lock); in ceph_reserve_caps()
292 ctx, mdsc->caps_total_count, mdsc->caps_use_count, in ceph_reserve_caps()
293 mdsc->caps_reserve_count, mdsc->caps_avail_count); in ceph_reserve_caps()
297 void ceph_unreserve_caps(struct ceph_mds_client *mdsc, in ceph_unreserve_caps() argument
301 spin_lock(&mdsc->caps_list_lock); in ceph_unreserve_caps()
302 __ceph_unreserve_caps(mdsc, ctx->count); in ceph_unreserve_caps()
304 spin_unlock(&mdsc->caps_list_lock); in ceph_unreserve_caps()
307 struct ceph_cap *ceph_get_cap(struct ceph_mds_client *mdsc, in ceph_get_cap() argument
316 spin_lock(&mdsc->caps_list_lock); in ceph_get_cap()
317 mdsc->caps_use_count++; in ceph_get_cap()
318 mdsc->caps_total_count++; in ceph_get_cap()
319 spin_unlock(&mdsc->caps_list_lock); in ceph_get_cap()
321 spin_lock(&mdsc->caps_list_lock); in ceph_get_cap()
322 if (mdsc->caps_avail_count) { in ceph_get_cap()
323 BUG_ON(list_empty(&mdsc->caps_list)); in ceph_get_cap()
325 mdsc->caps_avail_count--; in ceph_get_cap()
326 mdsc->caps_use_count++; in ceph_get_cap()
327 cap = list_first_entry(&mdsc->caps_list, in ceph_get_cap()
331 BUG_ON(mdsc->caps_total_count != mdsc->caps_use_count + in ceph_get_cap()
332 mdsc->caps_reserve_count + mdsc->caps_avail_count); in ceph_get_cap()
334 spin_unlock(&mdsc->caps_list_lock); in ceph_get_cap()
340 spin_lock(&mdsc->caps_list_lock); in ceph_get_cap()
342 ctx, ctx->count, mdsc->caps_total_count, mdsc->caps_use_count, in ceph_get_cap()
343 mdsc->caps_reserve_count, mdsc->caps_avail_count); in ceph_get_cap()
345 BUG_ON(ctx->count > mdsc->caps_reserve_count); in ceph_get_cap()
346 BUG_ON(list_empty(&mdsc->caps_list)); in ceph_get_cap()
349 mdsc->caps_reserve_count--; in ceph_get_cap()
350 mdsc->caps_use_count++; in ceph_get_cap()
352 cap = list_first_entry(&mdsc->caps_list, struct ceph_cap, caps_item); in ceph_get_cap()
355 BUG_ON(mdsc->caps_total_count != mdsc->caps_use_count + in ceph_get_cap()
356 mdsc->caps_reserve_count + mdsc->caps_avail_count); in ceph_get_cap()
357 spin_unlock(&mdsc->caps_list_lock); in ceph_get_cap()
361 void ceph_put_cap(struct ceph_mds_client *mdsc, struct ceph_cap *cap) in ceph_put_cap() argument
363 spin_lock(&mdsc->caps_list_lock); in ceph_put_cap()
365 cap, mdsc->caps_total_count, mdsc->caps_use_count, in ceph_put_cap()
366 mdsc->caps_reserve_count, mdsc->caps_avail_count); in ceph_put_cap()
367 mdsc->caps_use_count--; in ceph_put_cap()
372 if (mdsc->caps_avail_count >= mdsc->caps_reserve_count + in ceph_put_cap()
373 mdsc->caps_min_count) { in ceph_put_cap()
374 mdsc->caps_total_count--; in ceph_put_cap()
377 mdsc->caps_avail_count++; in ceph_put_cap()
378 list_add(&cap->caps_item, &mdsc->caps_list); in ceph_put_cap()
381 BUG_ON(mdsc->caps_total_count != mdsc->caps_use_count + in ceph_put_cap()
382 mdsc->caps_reserve_count + mdsc->caps_avail_count); in ceph_put_cap()
383 spin_unlock(&mdsc->caps_list_lock); in ceph_put_cap()
390 struct ceph_mds_client *mdsc = fsc->mdsc; in ceph_reservation_status() local
392 spin_lock(&mdsc->caps_list_lock); in ceph_reservation_status()
395 *total = mdsc->caps_total_count; in ceph_reservation_status()
397 *avail = mdsc->caps_avail_count; in ceph_reservation_status()
399 *used = mdsc->caps_use_count; in ceph_reservation_status()
401 *reserved = mdsc->caps_reserve_count; in ceph_reservation_status()
403 *min = mdsc->caps_min_count; in ceph_reservation_status()
405 spin_unlock(&mdsc->caps_list_lock); in ceph_reservation_status()
500 static void __cap_set_timeouts(struct ceph_mds_client *mdsc, in __cap_set_timeouts() argument
503 struct ceph_mount_options *ma = mdsc->fsc->mount_options; in __cap_set_timeouts()
521 static void __cap_delay_requeue(struct ceph_mds_client *mdsc, in __cap_delay_requeue() argument
524 __cap_set_timeouts(mdsc, ci); in __cap_delay_requeue()
527 if (!mdsc->stopping) { in __cap_delay_requeue()
528 spin_lock(&mdsc->cap_delay_lock); in __cap_delay_requeue()
534 list_add_tail(&ci->i_cap_delay_list, &mdsc->cap_delay_list); in __cap_delay_requeue()
536 spin_unlock(&mdsc->cap_delay_lock); in __cap_delay_requeue()
545 static void __cap_delay_requeue_front(struct ceph_mds_client *mdsc, in __cap_delay_requeue_front() argument
549 spin_lock(&mdsc->cap_delay_lock); in __cap_delay_requeue_front()
553 list_add(&ci->i_cap_delay_list, &mdsc->cap_delay_list); in __cap_delay_requeue_front()
554 spin_unlock(&mdsc->cap_delay_lock); in __cap_delay_requeue_front()
562 static void __cap_delay_cancel(struct ceph_mds_client *mdsc, in __cap_delay_cancel() argument
568 spin_lock(&mdsc->cap_delay_lock); in __cap_delay_cancel()
570 spin_unlock(&mdsc->cap_delay_lock); in __cap_delay_cancel()
621 struct ceph_mds_client *mdsc = ceph_inode_to_client(inode)->mdsc; in ceph_add_cap() local
683 struct ceph_snap_realm *realm = ceph_lookup_snap_realm(mdsc, in ceph_add_cap()
702 ceph_put_snap_realm(mdsc, oldrealm); in ceph_add_cap()
723 __cap_delay_requeue(mdsc, ci); in ceph_add_cap()
1034 ceph_put_snap_realm(ceph_sb_to_client(ci->vfs_inode.i_sb)->mdsc, in drop_inode_snap_realm()
1048 struct ceph_mds_client *mdsc = in __ceph_remove_cap() local
1049 ceph_sb_to_client(ci->vfs_inode.i_sb)->mdsc; in __ceph_remove_cap()
1095 ceph_put_cap(mdsc, cap); in __ceph_remove_cap()
1105 __cap_delay_cancel(mdsc, ci); in __ceph_remove_cap()
1271 static int __send_cap(struct ceph_mds_client *mdsc, struct ceph_cap *cap, in __send_cap() argument
1314 __cap_set_timeouts(mdsc, ci); in __send_cap()
1447 struct ceph_mds_client *mdsc = session->s_mdsc; in __ceph_flush_snaps() local
1471 spin_lock(&mdsc->cap_dirty_lock); in __ceph_flush_snaps()
1472 capsnap->cap_flush.tid = ++mdsc->last_cap_flush_tid; in __ceph_flush_snaps()
1474 &mdsc->cap_flush_list); in __ceph_flush_snaps()
1476 oldest_flush_tid = __get_oldest_flush_tid(mdsc); in __ceph_flush_snaps()
1481 spin_unlock(&mdsc->cap_dirty_lock); in __ceph_flush_snaps()
1540 struct ceph_mds_client *mdsc = ceph_inode_to_client(inode)->mdsc; in ceph_flush_snaps() local
1567 mutex_lock(&mdsc->mutex); in ceph_flush_snaps()
1568 session = __ceph_lookup_mds_session(mdsc, mds); in ceph_flush_snaps()
1569 mutex_unlock(&mdsc->mutex); in ceph_flush_snaps()
1579 __kick_flushing_caps(mdsc, session, ci, 0); in ceph_flush_snaps()
1594 spin_lock(&mdsc->snap_flush_lock); in ceph_flush_snaps()
1596 spin_unlock(&mdsc->snap_flush_lock); in ceph_flush_snaps()
1607 struct ceph_mds_client *mdsc = in __ceph_mark_dirty_caps() local
1608 ceph_sb_to_client(ci->vfs_inode.i_sb)->mdsc; in __ceph_mark_dirty_caps()
1629 WARN_ON_ONCE(!rwsem_is_locked(&mdsc->snap_rwsem)); in __ceph_mark_dirty_caps()
1636 spin_lock(&mdsc->cap_dirty_lock); in __ceph_mark_dirty_caps()
1637 list_add(&ci->i_dirty_item, &mdsc->cap_dirty); in __ceph_mark_dirty_caps()
1638 spin_unlock(&mdsc->cap_dirty_lock); in __ceph_mark_dirty_caps()
1650 __cap_delay_requeue(mdsc, ci); in __ceph_mark_dirty_caps()
1665 static u64 __get_oldest_flush_tid(struct ceph_mds_client *mdsc) in __get_oldest_flush_tid() argument
1667 if (!list_empty(&mdsc->cap_flush_list)) { in __get_oldest_flush_tid()
1669 list_first_entry(&mdsc->cap_flush_list, in __get_oldest_flush_tid()
1680 static bool __finish_cap_flush(struct ceph_mds_client *mdsc, in __finish_cap_flush() argument
1686 if (mdsc) { in __finish_cap_flush()
1688 if (wake && cf->g_list.prev != &mdsc->cap_flush_list) { in __finish_cap_flush()
1717 struct ceph_mds_client *mdsc = ceph_sb_to_client(inode->i_sb)->mdsc; in __mark_caps_flushing() local
1739 spin_lock(&mdsc->cap_dirty_lock); in __mark_caps_flushing()
1742 cf->tid = ++mdsc->last_cap_flush_tid; in __mark_caps_flushing()
1743 list_add_tail(&cf->g_list, &mdsc->cap_flush_list); in __mark_caps_flushing()
1744 *oldest_flush_tid = __get_oldest_flush_tid(mdsc); in __mark_caps_flushing()
1748 mdsc->num_cap_flushing++; in __mark_caps_flushing()
1750 spin_unlock(&mdsc->cap_dirty_lock); in __mark_caps_flushing()
1812 struct ceph_mds_client *mdsc = fsc->mdsc; in ceph_check_caps() local
1828 if (mdsc->stopping) in ceph_check_caps()
1838 __cap_delay_cancel(mdsc, ci); in ceph_check_caps()
1851 if (!mdsc->stopping && inode->i_nlink > 0) { in ceph_check_caps()
1894 if ((!no_delay || mdsc->stopping) && in ceph_check_caps()
2008 up_read(&mdsc->snap_rwsem); in ceph_check_caps()
2022 __kick_flushing_caps(mdsc, session, ci, 0); in ceph_check_caps()
2033 if (down_read_trylock(&mdsc->snap_rwsem) == 0) { in ceph_check_caps()
2037 down_read(&mdsc->snap_rwsem); in ceph_check_caps()
2051 spin_lock(&mdsc->cap_dirty_lock); in ceph_check_caps()
2052 oldest_flush_tid = __get_oldest_flush_tid(mdsc); in ceph_check_caps()
2053 spin_unlock(&mdsc->cap_dirty_lock); in ceph_check_caps()
2060 delayed += __send_cap(mdsc, cap, CEPH_CAP_OP_UPDATE, false, in ceph_check_caps()
2068 __cap_delay_requeue(mdsc, ci); in ceph_check_caps()
2078 up_read(&mdsc->snap_rwsem); in ceph_check_caps()
2086 struct ceph_mds_client *mdsc = ceph_sb_to_client(inode->i_sb)->mdsc; in try_flush_caps() local
2122 delayed = __send_cap(mdsc, cap, CEPH_CAP_OP_FLUSH, true, in try_flush_caps()
2128 __cap_delay_requeue(mdsc, ci); in try_flush_caps()
2273 struct ceph_mds_client *mdsc = in ceph_write_inode() local
2274 ceph_sb_to_client(inode->i_sb)->mdsc; in ceph_write_inode()
2278 __cap_delay_requeue_front(mdsc, ci); in ceph_write_inode()
2284 static void __kick_flushing_caps(struct ceph_mds_client *mdsc, in __kick_flushing_caps() argument
2314 ret = __send_cap(mdsc, cap, CEPH_CAP_OP_FLUSH, in __kick_flushing_caps()
2354 void ceph_early_kick_flushing_caps(struct ceph_mds_client *mdsc, in ceph_early_kick_flushing_caps() argument
2363 spin_lock(&mdsc->cap_dirty_lock); in ceph_early_kick_flushing_caps()
2364 oldest_flush_tid = __get_oldest_flush_tid(mdsc); in ceph_early_kick_flushing_caps()
2365 spin_unlock(&mdsc->cap_dirty_lock); in ceph_early_kick_flushing_caps()
2387 __kick_flushing_caps(mdsc, session, ci, in ceph_early_kick_flushing_caps()
2397 void ceph_kick_flushing_caps(struct ceph_mds_client *mdsc, in ceph_kick_flushing_caps() argument
2406 spin_lock(&mdsc->cap_dirty_lock); in ceph_kick_flushing_caps()
2407 oldest_flush_tid = __get_oldest_flush_tid(mdsc); in ceph_kick_flushing_caps()
2408 spin_unlock(&mdsc->cap_dirty_lock); in ceph_kick_flushing_caps()
2421 __kick_flushing_caps(mdsc, session, ci, in ceph_kick_flushing_caps()
2428 static void kick_flushing_inode_caps(struct ceph_mds_client *mdsc, in kick_flushing_inode_caps() argument
2442 spin_lock(&mdsc->cap_dirty_lock); in kick_flushing_inode_caps()
2445 oldest_flush_tid = __get_oldest_flush_tid(mdsc); in kick_flushing_inode_caps()
2446 spin_unlock(&mdsc->cap_dirty_lock); in kick_flushing_inode_caps()
2449 __kick_flushing_caps(mdsc, session, ci, oldest_flush_tid); in kick_flushing_inode_caps()
2500 struct ceph_mds_client *mdsc = ceph_inode_to_client(inode)->mdsc; in try_get_cap_refs() local
2526 up_read(&mdsc->snap_rwsem); in try_get_cap_refs()
2571 if (!down_read_trylock(&mdsc->snap_rwsem)) { in try_get_cap_refs()
2583 down_read(&mdsc->snap_rwsem); in try_get_cap_refs()
2614 if (READ_ONCE(mdsc->fsc->mount_state) == in try_get_cap_refs()
2639 up_read(&mdsc->snap_rwsem); in try_get_cap_refs()
3306 struct ceph_mds_client *mdsc = ceph_sb_to_client(inode->i_sb)->mdsc; in handle_cap_flush_ack() local
3343 spin_lock(&mdsc->cap_dirty_lock); in handle_cap_flush_ack()
3346 if (__finish_cap_flush(mdsc, NULL, cf)) in handle_cap_flush_ack()
3361 mdsc->num_cap_flushing--; in handle_cap_flush_ack()
3378 spin_unlock(&mdsc->cap_dirty_lock); in handle_cap_flush_ack()
3393 wake_up_all(&mdsc->cap_flushing_wq); in handle_cap_flush_ack()
3409 struct ceph_mds_client *mdsc = ceph_sb_to_client(inode->i_sb)->mdsc; in handle_cap_flushsnap_ack() local
3443 spin_lock(&mdsc->cap_dirty_lock); in handle_cap_flushsnap_ack()
3448 if (__finish_cap_flush(mdsc, NULL, &capsnap->cap_flush)) in handle_cap_flushsnap_ack()
3451 spin_unlock(&mdsc->cap_dirty_lock); in handle_cap_flushsnap_ack()
3460 wake_up_all(&mdsc->cap_flushing_wq); in handle_cap_flushsnap_ack()
3510 struct ceph_mds_client *mdsc = ceph_inode_to_client(inode)->mdsc; in handle_cap_export() local
3577 spin_lock(&mdsc->cap_dirty_lock); in handle_cap_export()
3580 spin_unlock(&mdsc->cap_dirty_lock); in handle_cap_export()
3594 spin_lock(&mdsc->cap_dirty_lock); in handle_cap_export()
3597 spin_unlock(&mdsc->cap_dirty_lock); in handle_cap_export()
3608 tsession = ceph_mdsc_open_export_target_session(mdsc, target); in handle_cap_export()
3619 new_cap = ceph_get_cap(mdsc, NULL); in handle_cap_export()
3635 ceph_put_cap(mdsc, new_cap); in handle_cap_export()
3643 static void handle_cap_import(struct ceph_mds_client *mdsc, in handle_cap_import() argument
3680 new_cap = ceph_get_cap(mdsc, NULL); in handle_cap_import()
3686 ceph_put_cap(mdsc, new_cap); in handle_cap_import()
3731 struct ceph_mds_client *mdsc = session->s_mdsc; in ceph_handle_caps() local
3794 struct ceph_osd_client *osdc = &mdsc->fsc->client->osdc; in ceph_handle_caps()
3841 inode = ceph_find_inode(mdsc->fsc->sb, vino); in ceph_handle_caps()
3855 cap = ceph_get_cap(mdsc, NULL); in ceph_handle_caps()
3885 down_write(&mdsc->snap_rwsem); in ceph_handle_caps()
3886 ceph_update_snap_trace(mdsc, snaptrace, in ceph_handle_caps()
3889 downgrade_write(&mdsc->snap_rwsem); in ceph_handle_caps()
3891 down_read(&mdsc->snap_rwsem); in ceph_handle_caps()
3893 handle_cap_import(mdsc, inode, h, peer, session, in ceph_handle_caps()
3898 ceph_put_snap_realm(mdsc, realm); in ceph_handle_caps()
3946 ceph_send_cap_releases(mdsc, session); in ceph_handle_caps()
3964 void ceph_check_delayed_caps(struct ceph_mds_client *mdsc) in ceph_check_delayed_caps() argument
3972 spin_lock(&mdsc->cap_delay_lock); in ceph_check_delayed_caps()
3973 if (list_empty(&mdsc->cap_delay_list)) in ceph_check_delayed_caps()
3975 ci = list_first_entry(&mdsc->cap_delay_list, in ceph_check_delayed_caps()
3984 spin_unlock(&mdsc->cap_delay_lock); in ceph_check_delayed_caps()
3992 spin_unlock(&mdsc->cap_delay_lock); in ceph_check_delayed_caps()
3998 void ceph_flush_dirty_caps(struct ceph_mds_client *mdsc) in ceph_flush_dirty_caps() argument
4004 spin_lock(&mdsc->cap_dirty_lock); in ceph_flush_dirty_caps()
4005 while (!list_empty(&mdsc->cap_dirty)) { in ceph_flush_dirty_caps()
4006 ci = list_first_entry(&mdsc->cap_dirty, struct ceph_inode_info, in ceph_flush_dirty_caps()
4011 spin_unlock(&mdsc->cap_dirty_lock); in ceph_flush_dirty_caps()
4014 spin_lock(&mdsc->cap_dirty_lock); in ceph_flush_dirty_caps()
4016 spin_unlock(&mdsc->cap_dirty_lock); in ceph_flush_dirty_caps()
4074 struct ceph_mds_client *mdsc = in ceph_drop_caps_for_unlink() local
4075 ceph_inode_to_client(inode)->mdsc; in ceph_drop_caps_for_unlink()
4076 __cap_delay_requeue_front(mdsc, ci); in ceph_drop_caps_for_unlink()