Lines Matching refs:capsnap
1275 struct ceph_cap_snap *capsnap; in __ceph_flush_snaps() local
1289 list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) { in __ceph_flush_snaps()
1291 if (capsnap->follows < next_follows) in __ceph_flush_snaps()
1297 if (capsnap->dirty_pages || capsnap->writing) in __ceph_flush_snaps()
1304 BUG_ON(capsnap->dirty == 0); in __ceph_flush_snaps()
1313 if (!again && !list_empty(&capsnap->flushing_item)) { in __ceph_flush_snaps()
1314 dout("already flushed %p, skipping\n", capsnap); in __ceph_flush_snaps()
1346 capsnap->flush_tid = ++ci->i_cap_flush_last_tid; in __ceph_flush_snaps()
1347 atomic_inc(&capsnap->nref); in __ceph_flush_snaps()
1348 if (!list_empty(&capsnap->flushing_item)) in __ceph_flush_snaps()
1349 list_del_init(&capsnap->flushing_item); in __ceph_flush_snaps()
1350 list_add_tail(&capsnap->flushing_item, in __ceph_flush_snaps()
1355 inode, capsnap, capsnap->follows, capsnap->flush_tid); in __ceph_flush_snaps()
1357 CEPH_CAP_OP_FLUSHSNAP, capsnap->issued, 0, in __ceph_flush_snaps()
1358 capsnap->dirty, 0, capsnap->flush_tid, 0, mseq, in __ceph_flush_snaps()
1359 capsnap->size, 0, in __ceph_flush_snaps()
1360 &capsnap->mtime, &capsnap->atime, in __ceph_flush_snaps()
1361 capsnap->time_warp_seq, in __ceph_flush_snaps()
1362 capsnap->uid, capsnap->gid, capsnap->mode, in __ceph_flush_snaps()
1363 capsnap->xattr_version, capsnap->xattr_blob, in __ceph_flush_snaps()
1364 capsnap->follows, capsnap->inline_data); in __ceph_flush_snaps()
1366 next_follows = capsnap->follows + 1; in __ceph_flush_snaps()
1367 ceph_put_cap_snap(capsnap); in __ceph_flush_snaps()
1974 struct ceph_cap_snap *capsnap; in kick_flushing_capsnaps() local
1977 list_for_each_entry(capsnap, &session->s_cap_snaps_flushing, in kick_flushing_capsnaps()
1979 struct ceph_inode_info *ci = capsnap->ci; in kick_flushing_capsnaps()
1987 cap, capsnap); in kick_flushing_capsnaps()
2306 struct ceph_cap_snap *capsnap; in ceph_put_cap_refs() local
2329 capsnap = list_first_entry(&ci->i_cap_snaps, in ceph_put_cap_refs()
2332 if (capsnap->writing) { in ceph_put_cap_refs()
2333 capsnap->writing = 0; in ceph_put_cap_refs()
2336 capsnap); in ceph_put_cap_refs()
2374 struct ceph_cap_snap *capsnap = NULL; in ceph_put_wrbuffer_cap_refs() local
2394 list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) { in ceph_put_wrbuffer_cap_refs()
2395 if (capsnap->context == snapc) { in ceph_put_wrbuffer_cap_refs()
2401 capsnap->dirty_pages -= nr; in ceph_put_wrbuffer_cap_refs()
2402 if (capsnap->dirty_pages == 0) { in ceph_put_wrbuffer_cap_refs()
2404 if (capsnap->dirty == 0) in ceph_put_wrbuffer_cap_refs()
2411 inode, capsnap, capsnap->context->seq, in ceph_put_wrbuffer_cap_refs()
2412 ci->i_wrbuffer_ref+nr, capsnap->dirty_pages + nr, in ceph_put_wrbuffer_cap_refs()
2413 ci->i_wrbuffer_ref, capsnap->dirty_pages, in ceph_put_wrbuffer_cap_refs()
2418 ceph_put_snap_context(capsnap->context); in ceph_put_wrbuffer_cap_refs()
2419 list_del(&capsnap->ci_item); in ceph_put_wrbuffer_cap_refs()
2420 list_del(&capsnap->flushing_item); in ceph_put_wrbuffer_cap_refs()
2421 ceph_put_cap_snap(capsnap); in ceph_put_wrbuffer_cap_refs()
2804 struct ceph_cap_snap *capsnap; in handle_cap_flushsnap_ack() local
2811 list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) { in handle_cap_flushsnap_ack()
2812 if (capsnap->follows == follows) { in handle_cap_flushsnap_ack()
2813 if (capsnap->flush_tid != flush_tid) { in handle_cap_flushsnap_ack()
2815 " %lld\n", capsnap, follows, in handle_cap_flushsnap_ack()
2816 flush_tid, capsnap->flush_tid); in handle_cap_flushsnap_ack()
2819 WARN_ON(capsnap->dirty_pages || capsnap->writing); in handle_cap_flushsnap_ack()
2821 inode, capsnap, follows); in handle_cap_flushsnap_ack()
2822 ceph_put_snap_context(capsnap->context); in handle_cap_flushsnap_ack()
2823 list_del(&capsnap->ci_item); in handle_cap_flushsnap_ack()
2824 list_del(&capsnap->flushing_item); in handle_cap_flushsnap_ack()
2825 ceph_put_cap_snap(capsnap); in handle_cap_flushsnap_ack()
2830 capsnap, capsnap->follows); in handle_cap_flushsnap_ack()