Lines Matching refs:capsnap

1235 	struct ceph_cap_snap *capsnap;  in __ceph_flush_snaps()  local
1249 list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) { in __ceph_flush_snaps()
1251 if (capsnap->follows < next_follows) in __ceph_flush_snaps()
1257 if (capsnap->dirty_pages || capsnap->writing) in __ceph_flush_snaps()
1261 BUG_ON(!capsnap->need_flush); in __ceph_flush_snaps()
1270 if (!kick && !list_empty(&capsnap->flushing_item)) { in __ceph_flush_snaps()
1271 dout("already flushed %p, skipping\n", capsnap); in __ceph_flush_snaps()
1307 capsnap->flush_tid = ++mdsc->last_cap_flush_tid; in __ceph_flush_snaps()
1310 atomic_inc(&capsnap->nref); in __ceph_flush_snaps()
1311 if (list_empty(&capsnap->flushing_item)) in __ceph_flush_snaps()
1312 list_add_tail(&capsnap->flushing_item, in __ceph_flush_snaps()
1317 inode, capsnap, capsnap->follows, capsnap->flush_tid); in __ceph_flush_snaps()
1319 CEPH_CAP_OP_FLUSHSNAP, capsnap->issued, 0, in __ceph_flush_snaps()
1320 capsnap->dirty, 0, capsnap->flush_tid, 0, in __ceph_flush_snaps()
1321 0, mseq, capsnap->size, 0, in __ceph_flush_snaps()
1322 &capsnap->mtime, &capsnap->atime, in __ceph_flush_snaps()
1323 capsnap->time_warp_seq, in __ceph_flush_snaps()
1324 capsnap->uid, capsnap->gid, capsnap->mode, in __ceph_flush_snaps()
1325 capsnap->xattr_version, capsnap->xattr_blob, in __ceph_flush_snaps()
1326 capsnap->follows, capsnap->inline_data); in __ceph_flush_snaps()
1328 next_follows = capsnap->follows + 1; in __ceph_flush_snaps()
1329 ceph_put_cap_snap(capsnap); in __ceph_flush_snaps()
2096 struct ceph_cap_snap *capsnap; in kick_flushing_capsnaps() local
2099 list_for_each_entry(capsnap, &session->s_cap_snaps_flushing, in kick_flushing_capsnaps()
2101 struct ceph_inode_info *ci = capsnap->ci; in kick_flushing_capsnaps()
2109 cap, capsnap); in kick_flushing_capsnaps()
2553 static int ceph_try_drop_cap_snap(struct ceph_cap_snap *capsnap) in ceph_try_drop_cap_snap() argument
2555 if (!capsnap->need_flush && in ceph_try_drop_cap_snap()
2556 !capsnap->writing && !capsnap->dirty_pages) { in ceph_try_drop_cap_snap()
2559 capsnap, capsnap->follows); in ceph_try_drop_cap_snap()
2560 ceph_put_snap_context(capsnap->context); in ceph_try_drop_cap_snap()
2561 list_del(&capsnap->ci_item); in ceph_try_drop_cap_snap()
2562 list_del(&capsnap->flushing_item); in ceph_try_drop_cap_snap()
2563 ceph_put_cap_snap(capsnap); in ceph_try_drop_cap_snap()
2604 struct ceph_cap_snap *capsnap = in ceph_put_cap_refs() local
2608 capsnap->writing = 0; in ceph_put_cap_refs()
2609 if (ceph_try_drop_cap_snap(capsnap)) in ceph_put_cap_refs()
2611 else if (__ceph_finish_cap_snap(ci, capsnap)) in ceph_put_cap_refs()
2656 struct ceph_cap_snap *capsnap = NULL; in ceph_put_wrbuffer_cap_refs() local
2678 list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) { in ceph_put_wrbuffer_cap_refs()
2679 if (capsnap->context == snapc) { in ceph_put_wrbuffer_cap_refs()
2685 capsnap->dirty_pages -= nr; in ceph_put_wrbuffer_cap_refs()
2686 if (capsnap->dirty_pages == 0) { in ceph_put_wrbuffer_cap_refs()
2688 drop_capsnap = ceph_try_drop_cap_snap(capsnap); in ceph_put_wrbuffer_cap_refs()
2692 inode, capsnap, capsnap->context->seq, in ceph_put_wrbuffer_cap_refs()
2693 ci->i_wrbuffer_ref+nr, capsnap->dirty_pages + nr, in ceph_put_wrbuffer_cap_refs()
2694 ci->i_wrbuffer_ref, capsnap->dirty_pages, in ceph_put_wrbuffer_cap_refs()
3111 struct ceph_cap_snap *capsnap; in handle_cap_flushsnap_ack() local
3118 list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) { in handle_cap_flushsnap_ack()
3119 if (capsnap->follows == follows) { in handle_cap_flushsnap_ack()
3120 if (capsnap->flush_tid != flush_tid) { in handle_cap_flushsnap_ack()
3122 " %lld\n", capsnap, follows, in handle_cap_flushsnap_ack()
3123 flush_tid, capsnap->flush_tid); in handle_cap_flushsnap_ack()
3126 WARN_ON(capsnap->dirty_pages || capsnap->writing); in handle_cap_flushsnap_ack()
3128 inode, capsnap, follows); in handle_cap_flushsnap_ack()
3129 ceph_put_snap_context(capsnap->context); in handle_cap_flushsnap_ack()
3130 list_del(&capsnap->ci_item); in handle_cap_flushsnap_ack()
3131 list_del(&capsnap->flushing_item); in handle_cap_flushsnap_ack()
3132 ceph_put_cap_snap(capsnap); in handle_cap_flushsnap_ack()
3138 capsnap, capsnap->follows); in handle_cap_flushsnap_ack()