Lines Matching defs:capsnap

1434 		struct ceph_cap_snap *capsnap;
1435 list_for_each_entry_reverse(capsnap, &ci->i_cap_snaps, ci_item) {
1436 if (capsnap->cap_flush.tid)
1438 if (capsnap->need_flush) {
1478 struct ceph_cap_snap *capsnap,
1491 arg.follows = capsnap->follows;
1492 arg.flush_tid = capsnap->cap_flush.tid;
1495 arg.size = capsnap->size;
1497 arg.xattr_version = capsnap->xattr_version;
1498 arg.xattr_buf = capsnap->xattr_blob;
1501 arg.atime = capsnap->atime;
1502 arg.mtime = capsnap->mtime;
1503 arg.ctime = capsnap->ctime;
1504 arg.btime = capsnap->btime;
1505 arg.change_attr = capsnap->change_attr;
1508 arg.caps = capsnap->issued;
1510 arg.dirty = capsnap->dirty;
1515 arg.time_warp_seq = capsnap->time_warp_seq;
1517 arg.uid = capsnap->uid;
1518 arg.gid = capsnap->gid;
1519 arg.mode = capsnap->mode;
1521 arg.inline_data = capsnap->inline_data;
1546 struct ceph_cap_snap *capsnap;
1552 list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) {
1557 if (capsnap->dirty_pages || capsnap->writing)
1561 BUG_ON(!capsnap->need_flush);
1563 /* only flush each capsnap once */
1564 if (capsnap->cap_flush.tid > 0) {
1565 dout(" already flushed %p, skipping\n", capsnap);
1570 capsnap->cap_flush.tid = ++mdsc->last_cap_flush_tid;
1571 list_add_tail(&capsnap->cap_flush.g_list,
1581 list_add_tail(&capsnap->cap_flush.i_list,
1585 first_tid = capsnap->cap_flush.tid;
1586 last_tid = capsnap->cap_flush.tid;
1614 capsnap = container_of(cf, struct ceph_cap_snap, cap_flush);
1615 refcount_inc(&capsnap->nref);
1618 dout("__flush_snaps %p capsnap %p tid %llu %s\n",
1619 inode, capsnap, cf->tid, ceph_cap_string(capsnap->dirty));
1621 ret = __send_flush_snap(inode, session, capsnap, cap->mseq,
1626 ceph_vinop(inode), cf->tid, capsnap->follows);
1629 ceph_put_cap_snap(capsnap);
1649 dout(" no capsnap needs flush, doing nothing\n");
2544 struct ceph_cap_snap *capsnap =
2547 dout("kick_flushing_caps %p capsnap %p tid %llu %s\n",
2548 inode, capsnap, cf->tid,
2549 ceph_cap_string(capsnap->dirty));
2551 refcount_inc(&capsnap->nref);
2554 ret = __send_flush_snap(inode, session, capsnap, cap->mseq,
2561 capsnap->follows);
2564 ceph_put_cap_snap(capsnap);
3097 struct ceph_cap_snap *capsnap)
3099 if (!capsnap->need_flush &&
3100 !capsnap->writing && !capsnap->dirty_pages) {
3102 capsnap, capsnap->follows);
3103 BUG_ON(capsnap->cap_flush.tid > 0);
3104 ceph_put_snap_context(capsnap->context);
3105 if (!list_is_last(&capsnap->ci_item, &ci->i_cap_snaps))
3108 list_del(&capsnap->ci_item);
3109 ceph_put_cap_snap(capsnap);
3154 struct ceph_cap_snap *capsnap =
3158 capsnap->writing = 0;
3159 if (ceph_try_drop_cap_snap(ci, capsnap))
3161 else if (__ceph_finish_cap_snap(ci, capsnap))
3214 struct ceph_cap_snap *capsnap = NULL;
3244 list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) {
3245 if (capsnap->context == snapc) {
3253 * The capsnap should already be removed when removing
3260 capsnap->dirty_pages -= nr;
3261 if (capsnap->dirty_pages == 0) {
3263 if (!capsnap->writing) {
3264 if (ceph_try_drop_cap_snap(ci, capsnap)) {
3274 inode, capsnap, capsnap->context->seq,
3275 ci->i_wrbuffer_ref+nr, capsnap->dirty_pages + nr,
3276 ci->i_wrbuffer_ref, capsnap->dirty_pages,
3278 complete_capsnap ? " (complete capsnap)" : "");
3669 /* Is this a capsnap? */
3756 void __ceph_remove_capsnap(struct inode *inode, struct ceph_cap_snap *capsnap,
3765 dout("removing capsnap %p, inode %p ci %p\n", capsnap, inode, ci);
3767 list_del_init(&capsnap->ci_item);
3768 ret = __detach_cap_flush_from_ci(ci, &capsnap->cap_flush);
3776 ret = __detach_cap_flush_from_mdsc(mdsc, &capsnap->cap_flush);
3782 void ceph_remove_capsnap(struct inode *inode, struct ceph_cap_snap *capsnap,
3789 WARN_ON_ONCE(capsnap->dirty_pages || capsnap->writing);
3790 __ceph_remove_capsnap(inode, capsnap, wake_ci, wake_mdsc);
3806 struct ceph_cap_snap *capsnap;
3815 list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) {
3816 if (capsnap->follows == follows) {
3817 if (capsnap->cap_flush.tid != flush_tid) {
3819 " %lld\n", capsnap, follows,
3820 flush_tid, capsnap->cap_flush.tid);
3827 capsnap, capsnap->follows);
3831 ceph_remove_capsnap(inode, capsnap, &wake_ci, &wake_mdsc);
3835 ceph_put_snap_context(capsnap->context);
3836 ceph_put_cap_snap(capsnap);