Lines Matching refs:capsnap

1391 				    struct ceph_cap_snap *capsnap,  in __send_flush_snap()  argument
1399 arg.follows = capsnap->follows; in __send_flush_snap()
1400 arg.flush_tid = capsnap->cap_flush.tid; in __send_flush_snap()
1403 arg.size = capsnap->size; in __send_flush_snap()
1405 arg.xattr_version = capsnap->xattr_version; in __send_flush_snap()
1406 arg.xattr_buf = capsnap->xattr_blob; in __send_flush_snap()
1408 arg.atime = capsnap->atime; in __send_flush_snap()
1409 arg.mtime = capsnap->mtime; in __send_flush_snap()
1410 arg.ctime = capsnap->ctime; in __send_flush_snap()
1413 arg.caps = capsnap->issued; in __send_flush_snap()
1415 arg.dirty = capsnap->dirty; in __send_flush_snap()
1420 arg.time_warp_seq = capsnap->time_warp_seq; in __send_flush_snap()
1422 arg.uid = capsnap->uid; in __send_flush_snap()
1423 arg.gid = capsnap->gid; in __send_flush_snap()
1424 arg.mode = capsnap->mode; in __send_flush_snap()
1426 arg.inline_data = capsnap->inline_data; in __send_flush_snap()
1448 struct ceph_cap_snap *capsnap; in __ceph_flush_snaps() local
1454 list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) { in __ceph_flush_snaps()
1459 if (capsnap->dirty_pages || capsnap->writing) in __ceph_flush_snaps()
1463 BUG_ON(!capsnap->need_flush); in __ceph_flush_snaps()
1466 if (capsnap->cap_flush.tid > 0) { in __ceph_flush_snaps()
1467 dout(" already flushed %p, skipping\n", capsnap); in __ceph_flush_snaps()
1472 capsnap->cap_flush.tid = ++mdsc->last_cap_flush_tid; in __ceph_flush_snaps()
1473 list_add_tail(&capsnap->cap_flush.g_list, in __ceph_flush_snaps()
1483 list_add_tail(&capsnap->cap_flush.i_list, in __ceph_flush_snaps()
1487 first_tid = capsnap->cap_flush.tid; in __ceph_flush_snaps()
1488 last_tid = capsnap->cap_flush.tid; in __ceph_flush_snaps()
1516 capsnap = container_of(cf, struct ceph_cap_snap, cap_flush); in __ceph_flush_snaps()
1517 refcount_inc(&capsnap->nref); in __ceph_flush_snaps()
1521 inode, capsnap, cf->tid, ceph_cap_string(capsnap->dirty)); in __ceph_flush_snaps()
1523 ret = __send_flush_snap(inode, session, capsnap, cap->mseq, in __ceph_flush_snaps()
1528 ceph_vinop(inode), cf->tid, capsnap->follows); in __ceph_flush_snaps()
1531 ceph_put_cap_snap(capsnap); in __ceph_flush_snaps()
2327 struct ceph_cap_snap *capsnap = in __kick_flushing_caps() local
2331 inode, capsnap, cf->tid, in __kick_flushing_caps()
2332 ceph_cap_string(capsnap->dirty)); in __kick_flushing_caps()
2334 refcount_inc(&capsnap->nref); in __kick_flushing_caps()
2337 ret = __send_flush_snap(inode, session, capsnap, cap->mseq, in __kick_flushing_caps()
2344 capsnap->follows); in __kick_flushing_caps()
2347 ceph_put_cap_snap(capsnap); in __kick_flushing_caps()
2809 struct ceph_cap_snap *capsnap) in ceph_try_drop_cap_snap() argument
2811 if (!capsnap->need_flush && in ceph_try_drop_cap_snap()
2812 !capsnap->writing && !capsnap->dirty_pages) { in ceph_try_drop_cap_snap()
2814 capsnap, capsnap->follows); in ceph_try_drop_cap_snap()
2815 BUG_ON(capsnap->cap_flush.tid > 0); in ceph_try_drop_cap_snap()
2816 ceph_put_snap_context(capsnap->context); in ceph_try_drop_cap_snap()
2817 if (!list_is_last(&capsnap->ci_item, &ci->i_cap_snaps)) in ceph_try_drop_cap_snap()
2820 list_del(&capsnap->ci_item); in ceph_try_drop_cap_snap()
2821 ceph_put_cap_snap(capsnap); in ceph_try_drop_cap_snap()
2862 struct ceph_cap_snap *capsnap = in ceph_put_cap_refs() local
2866 capsnap->writing = 0; in ceph_put_cap_refs()
2867 if (ceph_try_drop_cap_snap(ci, capsnap)) in ceph_put_cap_refs()
2869 else if (__ceph_finish_cap_snap(ci, capsnap)) in ceph_put_cap_refs()
2910 struct ceph_cap_snap *capsnap = NULL; in ceph_put_wrbuffer_cap_refs() local
2940 list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) { in ceph_put_wrbuffer_cap_refs()
2941 if (capsnap->context == snapc) { in ceph_put_wrbuffer_cap_refs()
2947 capsnap->dirty_pages -= nr; in ceph_put_wrbuffer_cap_refs()
2948 if (capsnap->dirty_pages == 0) { in ceph_put_wrbuffer_cap_refs()
2950 if (!capsnap->writing) { in ceph_put_wrbuffer_cap_refs()
2951 if (ceph_try_drop_cap_snap(ci, capsnap)) { in ceph_put_wrbuffer_cap_refs()
2961 inode, capsnap, capsnap->context->seq, in ceph_put_wrbuffer_cap_refs()
2962 ci->i_wrbuffer_ref+nr, capsnap->dirty_pages + nr, in ceph_put_wrbuffer_cap_refs()
2963 ci->i_wrbuffer_ref, capsnap->dirty_pages, in ceph_put_wrbuffer_cap_refs()
3411 struct ceph_cap_snap *capsnap; in handle_cap_flushsnap_ack() local
3420 list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) { in handle_cap_flushsnap_ack()
3421 if (capsnap->follows == follows) { in handle_cap_flushsnap_ack()
3422 if (capsnap->cap_flush.tid != flush_tid) { in handle_cap_flushsnap_ack()
3424 " %lld\n", capsnap, follows, in handle_cap_flushsnap_ack()
3425 flush_tid, capsnap->cap_flush.tid); in handle_cap_flushsnap_ack()
3432 capsnap, capsnap->follows); in handle_cap_flushsnap_ack()
3436 WARN_ON(capsnap->dirty_pages || capsnap->writing); in handle_cap_flushsnap_ack()
3438 inode, capsnap, follows); in handle_cap_flushsnap_ack()
3439 list_del(&capsnap->ci_item); in handle_cap_flushsnap_ack()
3440 if (__finish_cap_flush(NULL, ci, &capsnap->cap_flush)) in handle_cap_flushsnap_ack()
3448 if (__finish_cap_flush(mdsc, NULL, &capsnap->cap_flush)) in handle_cap_flushsnap_ack()
3455 ceph_put_snap_context(capsnap->context); in handle_cap_flushsnap_ack()
3456 ceph_put_cap_snap(capsnap); in handle_cap_flushsnap_ack()