capsnap 98 fs/ceph/addr.c struct ceph_cap_snap *capsnap = capsnap 102 fs/ceph/addr.c snapc = ceph_get_snap_context(capsnap->context); capsnap 103 fs/ceph/addr.c capsnap->dirty_pages++; capsnap 495 fs/ceph/addr.c struct ceph_cap_snap *capsnap = NULL; capsnap 498 fs/ceph/addr.c list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) { capsnap 499 fs/ceph/addr.c dout(" cap_snap %p snapc %p has %d dirty pages\n", capsnap, capsnap 500 fs/ceph/addr.c capsnap->context, capsnap->dirty_pages); capsnap 501 fs/ceph/addr.c if (!capsnap->dirty_pages) capsnap 505 fs/ceph/addr.c if (snapc && capsnap->context != page_snapc) capsnap 509 fs/ceph/addr.c if (capsnap->writing) { capsnap 513 fs/ceph/addr.c ctl->i_size = capsnap->size; capsnap 516 fs/ceph/addr.c ctl->truncate_size = capsnap->truncate_size; capsnap 517 fs/ceph/addr.c ctl->truncate_seq = capsnap->truncate_seq; capsnap 524 fs/ceph/addr.c snapc = ceph_get_snap_context(capsnap->context); capsnap 551 fs/ceph/addr.c struct ceph_cap_snap *capsnap = NULL; capsnap 557 fs/ceph/addr.c list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) { capsnap 558 fs/ceph/addr.c if (capsnap->context == snapc) { capsnap 559 fs/ceph/addr.c if (!capsnap->writing) capsnap 560 fs/ceph/addr.c end = capsnap->size; capsnap 1371 fs/ceph/caps.c struct ceph_cap_snap *capsnap; capsnap 1372 fs/ceph/caps.c list_for_each_entry_reverse(capsnap, &ci->i_cap_snaps, ci_item) { capsnap 1373 fs/ceph/caps.c if (capsnap->cap_flush.tid) capsnap 1375 fs/ceph/caps.c if (capsnap->need_flush) { capsnap 1401 fs/ceph/caps.c struct ceph_cap_snap *capsnap, capsnap 1409 fs/ceph/caps.c arg.follows = capsnap->follows; capsnap 1410 fs/ceph/caps.c arg.flush_tid = capsnap->cap_flush.tid; capsnap 1413 fs/ceph/caps.c arg.size = capsnap->size; capsnap 1415 fs/ceph/caps.c arg.xattr_version = capsnap->xattr_version; capsnap 1416 fs/ceph/caps.c arg.xattr_buf = capsnap->xattr_blob; capsnap 1418 fs/ceph/caps.c arg.atime = capsnap->atime; capsnap 1419 fs/ceph/caps.c arg.mtime = capsnap->mtime; capsnap 1420 fs/ceph/caps.c arg.ctime = capsnap->ctime; capsnap 1421 fs/ceph/caps.c arg.btime = capsnap->btime; capsnap 1422 fs/ceph/caps.c arg.change_attr = capsnap->change_attr; capsnap 1425 fs/ceph/caps.c arg.caps = capsnap->issued; capsnap 1427 fs/ceph/caps.c arg.dirty = capsnap->dirty; capsnap 1432 fs/ceph/caps.c arg.time_warp_seq = capsnap->time_warp_seq; capsnap 1434 fs/ceph/caps.c arg.uid = capsnap->uid; capsnap 1435 fs/ceph/caps.c arg.gid = capsnap->gid; capsnap 1436 fs/ceph/caps.c arg.mode = capsnap->mode; capsnap 1438 fs/ceph/caps.c arg.inline_data = capsnap->inline_data; capsnap 1460 fs/ceph/caps.c struct ceph_cap_snap *capsnap; capsnap 1466 fs/ceph/caps.c list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) { capsnap 1471 fs/ceph/caps.c if (capsnap->dirty_pages || capsnap->writing) capsnap 1475 fs/ceph/caps.c BUG_ON(!capsnap->need_flush); capsnap 1478 fs/ceph/caps.c if (capsnap->cap_flush.tid > 0) { capsnap 1479 fs/ceph/caps.c dout(" already flushed %p, skipping\n", capsnap); capsnap 1484 fs/ceph/caps.c capsnap->cap_flush.tid = ++mdsc->last_cap_flush_tid; capsnap 1485 fs/ceph/caps.c list_add_tail(&capsnap->cap_flush.g_list, capsnap 1495 fs/ceph/caps.c list_add_tail(&capsnap->cap_flush.i_list, capsnap 1499 fs/ceph/caps.c first_tid = capsnap->cap_flush.tid; capsnap 1500 fs/ceph/caps.c last_tid = capsnap->cap_flush.tid; capsnap 1528 fs/ceph/caps.c capsnap = container_of(cf, struct ceph_cap_snap, cap_flush); capsnap 1529 fs/ceph/caps.c refcount_inc(&capsnap->nref); capsnap 1533 fs/ceph/caps.c inode, capsnap, cf->tid, ceph_cap_string(capsnap->dirty)); capsnap 1535 fs/ceph/caps.c ret = __send_flush_snap(inode, session, capsnap, cap->mseq, capsnap 1540 fs/ceph/caps.c ceph_vinop(inode), cf->tid, capsnap->follows); capsnap 1543 fs/ceph/caps.c ceph_put_cap_snap(capsnap); capsnap 2362 fs/ceph/caps.c struct ceph_cap_snap *capsnap = capsnap 2366 fs/ceph/caps.c inode, capsnap, cf->tid, capsnap 2367 fs/ceph/caps.c ceph_cap_string(capsnap->dirty)); capsnap 2369 fs/ceph/caps.c refcount_inc(&capsnap->nref); capsnap 2372 fs/ceph/caps.c ret = __send_flush_snap(inode, session, capsnap, cap->mseq, capsnap 2379 fs/ceph/caps.c capsnap->follows); capsnap 2382 fs/ceph/caps.c ceph_put_cap_snap(capsnap); capsnap 2863 fs/ceph/caps.c struct ceph_cap_snap *capsnap) capsnap 2865 fs/ceph/caps.c if (!capsnap->need_flush && capsnap 2866 fs/ceph/caps.c !capsnap->writing && !capsnap->dirty_pages) { capsnap 2868 fs/ceph/caps.c capsnap, capsnap->follows); capsnap 2869 fs/ceph/caps.c BUG_ON(capsnap->cap_flush.tid > 0); capsnap 2870 fs/ceph/caps.c ceph_put_snap_context(capsnap->context); capsnap 2871 fs/ceph/caps.c if (!list_is_last(&capsnap->ci_item, &ci->i_cap_snaps)) capsnap 2874 fs/ceph/caps.c list_del(&capsnap->ci_item); capsnap 2875 fs/ceph/caps.c ceph_put_cap_snap(capsnap); capsnap 2916 fs/ceph/caps.c struct ceph_cap_snap *capsnap = capsnap 2920 fs/ceph/caps.c capsnap->writing = 0; capsnap 2921 fs/ceph/caps.c if (ceph_try_drop_cap_snap(ci, capsnap)) capsnap 2923 fs/ceph/caps.c else if (__ceph_finish_cap_snap(ci, capsnap)) capsnap 2964 fs/ceph/caps.c struct ceph_cap_snap *capsnap = NULL; capsnap 2994 fs/ceph/caps.c list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) { capsnap 2995 fs/ceph/caps.c if (capsnap->context == snapc) { capsnap 3001 fs/ceph/caps.c capsnap->dirty_pages -= nr; capsnap 3002 fs/ceph/caps.c if (capsnap->dirty_pages == 0) { capsnap 3004 fs/ceph/caps.c if (!capsnap->writing) { capsnap 3005 fs/ceph/caps.c if (ceph_try_drop_cap_snap(ci, capsnap)) { capsnap 3015 fs/ceph/caps.c inode, capsnap, capsnap->context->seq, capsnap 3016 fs/ceph/caps.c ci->i_wrbuffer_ref+nr, capsnap->dirty_pages + nr, capsnap 3017 fs/ceph/caps.c ci->i_wrbuffer_ref, capsnap->dirty_pages, capsnap 3484 fs/ceph/caps.c struct ceph_cap_snap *capsnap; capsnap 3493 fs/ceph/caps.c list_for_each_entry(capsnap, &ci->i_cap_snaps, ci_item) { capsnap 3494 fs/ceph/caps.c if (capsnap->follows == follows) { capsnap 3495 fs/ceph/caps.c if (capsnap->cap_flush.tid != flush_tid) { capsnap 3497 fs/ceph/caps.c " %lld\n", capsnap, follows, capsnap 3498 fs/ceph/caps.c flush_tid, capsnap->cap_flush.tid); capsnap 3505 fs/ceph/caps.c capsnap, capsnap->follows); capsnap 3509 fs/ceph/caps.c WARN_ON(capsnap->dirty_pages || capsnap->writing); capsnap 3511 fs/ceph/caps.c inode, capsnap, follows); capsnap 3512 fs/ceph/caps.c list_del(&capsnap->ci_item); capsnap 3513 fs/ceph/caps.c if (__finish_cap_flush(NULL, ci, &capsnap->cap_flush)) capsnap 3521 fs/ceph/caps.c if (__finish_cap_flush(mdsc, NULL, &capsnap->cap_flush)) capsnap 3528 fs/ceph/caps.c ceph_put_snap_context(capsnap->context); capsnap 3529 fs/ceph/caps.c ceph_put_cap_snap(capsnap); capsnap 873 fs/ceph/file.c struct ceph_cap_snap *capsnap = capsnap 877 fs/ceph/file.c snapc = ceph_get_snap_context(capsnap->context); capsnap 1520 fs/ceph/file.c struct ceph_cap_snap *capsnap = capsnap 1524 fs/ceph/file.c snapc = ceph_get_snap_context(capsnap->context); capsnap 3376 fs/ceph/mds_client.c struct ceph_cap_snap *capsnap = capsnap 3379 fs/ceph/mds_client.c snap_follows = capsnap->follows; capsnap 466 fs/ceph/snap.c struct ceph_cap_snap *capsnap; capsnap 471 fs/ceph/snap.c capsnap = kzalloc(sizeof(*capsnap), GFP_NOFS); capsnap 472 fs/ceph/snap.c if (!capsnap) { capsnap 518 fs/ceph/snap.c capsnap->need_flush = true; capsnap 529 fs/ceph/snap.c inode, capsnap, old_snapc, ceph_cap_string(dirty), capsnap 530 fs/ceph/snap.c capsnap->need_flush ? "" : "no_flush"); capsnap 533 fs/ceph/snap.c refcount_set(&capsnap->nref, 1); capsnap 534 fs/ceph/snap.c INIT_LIST_HEAD(&capsnap->ci_item); capsnap 536 fs/ceph/snap.c capsnap->follows = old_snapc->seq; capsnap 537 fs/ceph/snap.c capsnap->issued = __ceph_caps_issued(ci, NULL); capsnap 538 fs/ceph/snap.c capsnap->dirty = dirty; capsnap 540 fs/ceph/snap.c capsnap->mode = inode->i_mode; capsnap 541 fs/ceph/snap.c capsnap->uid = inode->i_uid; capsnap 542 fs/ceph/snap.c capsnap->gid = inode->i_gid; capsnap 546 fs/ceph/snap.c capsnap->xattr_blob = capsnap 548 fs/ceph/snap.c capsnap->xattr_version = ci->i_xattrs.version; capsnap 550 fs/ceph/snap.c capsnap->xattr_blob = NULL; capsnap 551 fs/ceph/snap.c capsnap->xattr_version = 0; capsnap 554 fs/ceph/snap.c capsnap->inline_data = ci->i_inline_version != CEPH_INLINE_NONE; capsnap 559 fs/ceph/snap.c capsnap->dirty_pages = ci->i_wrbuffer_ref_head; capsnap 561 fs/ceph/snap.c capsnap->context = old_snapc; capsnap 562 fs/ceph/snap.c list_add_tail(&capsnap->ci_item, &ci->i_cap_snaps); capsnap 567 fs/ceph/snap.c capsnap, old_snapc, old_snapc->seq); capsnap 568 fs/ceph/snap.c capsnap->writing = 1; capsnap 571 fs/ceph/snap.c __ceph_finish_cap_snap(ci, capsnap); capsnap 573 fs/ceph/snap.c capsnap = NULL; capsnap 589 fs/ceph/snap.c kfree(capsnap); capsnap 602 fs/ceph/snap.c struct ceph_cap_snap *capsnap) capsnap 607 fs/ceph/snap.c BUG_ON(capsnap->writing); capsnap 608 fs/ceph/snap.c capsnap->size = inode->i_size; capsnap 609 fs/ceph/snap.c capsnap->mtime = inode->i_mtime; capsnap 610 fs/ceph/snap.c capsnap->atime = inode->i_atime; capsnap 611 fs/ceph/snap.c capsnap->ctime = inode->i_ctime; capsnap 612 fs/ceph/snap.c capsnap->btime = ci->i_btime; capsnap 613 fs/ceph/snap.c capsnap->change_attr = inode_peek_iversion_raw(inode); capsnap 614 fs/ceph/snap.c capsnap->time_warp_seq = ci->i_time_warp_seq; capsnap 615 fs/ceph/snap.c capsnap->truncate_size = ci->i_truncate_size; capsnap 616 fs/ceph/snap.c capsnap->truncate_seq = ci->i_truncate_seq; capsnap 617 fs/ceph/snap.c if (capsnap->dirty_pages) { capsnap 619 fs/ceph/snap.c "still has %d dirty pages\n", inode, capsnap, capsnap 620 fs/ceph/snap.c capsnap->context, capsnap->context->seq, capsnap 621 fs/ceph/snap.c ceph_cap_string(capsnap->dirty), capsnap->size, capsnap 622 fs/ceph/snap.c capsnap->dirty_pages); capsnap 628 fs/ceph/snap.c inode, capsnap, capsnap->context, capsnap 629 fs/ceph/snap.c capsnap->context->seq, ceph_cap_string(capsnap->dirty), capsnap 630 fs/ceph/snap.c capsnap->size); capsnap 218 fs/ceph/super.h static inline void ceph_put_cap_snap(struct ceph_cap_snap *capsnap) capsnap 220 fs/ceph/super.h if (refcount_dec_and_test(&capsnap->nref)) { capsnap 221 fs/ceph/super.h if (capsnap->xattr_blob) capsnap 222 fs/ceph/super.h ceph_buffer_put(capsnap->xattr_blob); capsnap 223 fs/ceph/super.h kfree(capsnap); capsnap 874 fs/ceph/super.h struct ceph_cap_snap *capsnap);