Lines Matching defs:snapc

84 	struct ceph_snap_context *snapc;
104 snapc = ceph_get_snap_context(capsnap->context);
108 snapc = ceph_get_snap_context(ci->i_head_snapc);
115 "snapc %p seq %lld (%d snaps)\n",
119 snapc, snapc->seq, snapc->num_snaps);
127 folio_attach_private(folio, snapc);
142 struct ceph_snap_context *snapc;
158 snapc = folio_detach_private(folio);
159 ceph_put_wrbuffer_cap_refs(ci, 1, snapc);
160 ceph_put_snap_context(snapc);
558 * Get ref for the oldest snapc for an inode with dirty data... that is, the
566 struct ceph_snap_context *snapc = NULL;
571 dout(" cap_snap %p snapc %p has %d dirty pages\n", capsnap,
577 if (snapc && capsnap->context != page_snapc)
593 if (snapc)
596 snapc = ceph_get_snap_context(capsnap->context);
598 page_snapc == snapc ||
599 page_snapc->seq > snapc->seq)
602 if (!snapc && ci->i_wrbuffer_ref_head) {
603 snapc = ceph_get_snap_context(ci->i_head_snapc);
604 dout(" head snapc %p has %d dirty pages\n",
605 snapc, ci->i_wrbuffer_ref_head);
615 return snapc;
622 struct ceph_snap_context *snapc;
627 snapc = page_snap_context(ceph_fscrypt_pagecache_page(page));
628 if (snapc != ci->i_head_snapc) {
632 if (capsnap->context == snapc) {
662 struct ceph_snap_context *snapc, *oldest;
679 snapc = page_snap_context(page);
680 if (!snapc) {
684 oldest = get_oldest_context(inode, &ceph_wbc, snapc);
685 if (snapc->seq > oldest->seq) {
686 dout("writepage %p page %p snapc %p not writeable - noop\n",
687 inode, page, snapc);
708 dout("writepage %p page %p index %lu on %llu~%llu snapc %p seq %lld\n",
709 inode, page, page->index, page_off, wlen, snapc, snapc->seq);
717 CEPH_OSD_FLAG_WRITE, snapc,
786 WARN_ON_ONCE(oldest != snapc);
788 ceph_put_wrbuffer_cap_refs(ci, 1, snapc);
789 ceph_put_snap_context(snapc); /* page's reference */
837 struct ceph_snap_context *snapc = req->r_snapc;
910 ceph_put_wrbuffer_cap_refs(ci, total_pages, snapc);
932 struct ceph_snap_context *snapc = NULL, *last_snapc = NULL, *pgsnapc;
975 snapc = get_oldest_context(inode, &ceph_wbc, NULL);
976 if (!snapc) {
982 dout(" oldest snapc is %p seq %lld (%d snaps)\n",
983 snapc, snapc->seq, snapc->num_snaps);
986 if (ceph_wbc.head_snapc && snapc != last_snapc) {
1003 * in that range can be associated with newer snapc.
1005 * associated with 'snapc' get written */
1008 dout(" non-head snapc, range whole\n");
1015 last_snapc = snapc;
1051 if (pgsnapc != snapc) {
1052 dout("page snapc %p %lld != oldest %p %lld\n",
1053 pgsnapc, pgsnapc->seq, snapc, snapc->seq);
1210 snapc, ceph_wbc.truncate_seq,
1220 snapc, ceph_wbc.truncate_seq,
1358 /* to write dirty pages associated with next snapc,
1373 if (page_snap_context(page) != snapc)
1400 * See if a given @snapc is either writeable, or already written.
1403 struct ceph_snap_context *snapc)
1406 int ret = !oldest || snapc->seq <= oldest->seq;
1436 struct ceph_snap_context *snapc, *oldest;
1440 snapc = page_snap_context(page);
1441 if (!snapc || snapc == ci->i_head_snapc)
1449 if (snapc->seq > oldest->seq) {
1452 dout(" page %p snapc %p not current or oldest\n", page, snapc);
1453 return ceph_get_snap_context(snapc);
1458 dout(" page %p snapc %p not current, but oldest\n", page, snapc);
1473 struct ceph_snap_context *snapc;
1475 snapc = ceph_find_incompatible(folio_page(*foliop, 0));
1476 if (snapc) {
1482 if (IS_ERR(snapc))
1483 return PTR_ERR(snapc);
1487 context_is_writeable_or_written(inode, snapc));
1488 ceph_put_snap_context(snapc);
1725 struct ceph_snap_context *snapc;
1735 snapc = ceph_find_incompatible(page);
1736 if (!snapc) {
1745 if (IS_ERR(snapc)) {
1752 context_is_writeable_or_written(inode, snapc));
1753 ceph_put_snap_context(snapc);