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);