Lines Matching defs:snapc
80 struct ceph_snap_context *snapc;
100 snapc = ceph_get_snap_context(capsnap->context);
104 snapc = ceph_get_snap_context(ci->i_head_snapc);
111 "snapc %p seq %lld (%d snaps)\n",
115 snapc, snapc->seq, snapc->num_snaps);
123 page->private = (unsigned long)snapc;
139 struct ceph_snap_context *snapc = page_snap_context(page);
159 ceph_put_wrbuffer_cap_refs(ci, 1, snapc);
160 ceph_put_snap_context(snapc);
498 * Get ref for the oldest snapc for an inode with dirty data... that is, the
506 struct ceph_snap_context *snapc = NULL;
511 dout(" cap_snap %p snapc %p has %d dirty pages\n", capsnap,
517 if (snapc && capsnap->context != page_snapc)
533 if (snapc)
536 snapc = ceph_get_snap_context(capsnap->context);
538 page_snapc == snapc ||
539 page_snapc->seq > snapc->seq)
542 if (!snapc && ci->i_wrbuffer_ref_head) {
543 snapc = ceph_get_snap_context(ci->i_head_snapc);
544 dout(" head snapc %p has %d dirty pages\n",
545 snapc, ci->i_wrbuffer_ref_head);
555 return snapc;
562 struct ceph_snap_context *snapc = page_snap_context(page);
566 if (snapc != ci->i_head_snapc) {
570 if (capsnap->context == snapc) {
596 struct ceph_snap_context *snapc, *oldest;
607 snapc = page_snap_context(page);
608 if (!snapc) {
612 oldest = get_oldest_context(inode, &ceph_wbc, snapc);
613 if (snapc->seq > oldest->seq) {
614 dout("writepage %p page %p snapc %p not writeable - noop\n",
615 inode, page, snapc);
634 dout("writepage %p page %p index %lu on %llu~%llu snapc %p seq %lld\n",
635 inode, page, page->index, page_off, len, snapc, snapc->seq);
643 CEPH_OSD_OP_WRITE, CEPH_OSD_FLAG_WRITE, snapc,
693 ceph_put_wrbuffer_cap_refs(ci, 1, snapc);
694 ceph_put_snap_context(snapc); /* page's reference */
735 struct ceph_snap_context *snapc = req->r_snapc;
801 ceph_put_wrbuffer_cap_refs(ci, total_pages, snapc);
822 struct ceph_snap_context *snapc = NULL, *last_snapc = NULL, *pgsnapc;
854 snapc = get_oldest_context(inode, &ceph_wbc, NULL);
855 if (!snapc) {
861 dout(" oldest snapc is %p seq %lld (%d snaps)\n",
862 snapc, snapc->seq, snapc->num_snaps);
865 if (ceph_wbc.head_snapc && snapc != last_snapc) {
882 * in that range can be associated with newer snapc.
884 * associated with 'snapc' get written */
887 dout(" non-head snapc, range whole\n");
891 last_snapc = snapc;
927 if (pgsnapc != snapc) {
928 dout("page snapc %p %lld != oldest %p %lld\n",
929 pgsnapc, pgsnapc->seq, snapc, snapc->seq);
1067 snapc, ceph_wbc.truncate_seq,
1077 snapc, ceph_wbc.truncate_seq,
1189 /* to write dirty pages associated with next snapc,
1202 if (page_snap_context(page) != snapc)
1229 * See if a given @snapc is either writeable, or already written.
1232 struct ceph_snap_context *snapc)
1235 int ret = !oldest || snapc->seq <= oldest->seq;
1265 struct ceph_snap_context *snapc, *oldest;
1269 snapc = page_snap_context(page);
1270 if (!snapc || snapc == ci->i_head_snapc)
1278 if (snapc->seq > oldest->seq) {
1281 dout(" page %p snapc %p not current or oldest\n", page, snapc);
1282 return ceph_get_snap_context(snapc);
1287 dout(" page %p snapc %p not current, but oldest\n", page, snapc);
1346 struct ceph_snap_context *snapc;
1360 snapc = ceph_find_incompatible(page);
1361 if (snapc) {
1362 if (IS_ERR(snapc)) {
1363 r = PTR_ERR(snapc);
1371 context_is_writeable_or_written(inode, snapc));
1372 ceph_put_snap_context(snapc);
1640 struct ceph_snap_context *snapc;
1650 snapc = ceph_find_incompatible(page);
1651 if (!snapc) {
1660 if (IS_ERR(snapc)) {
1667 context_is_writeable_or_written(inode, snapc));
1668 ceph_put_snap_context(snapc);