Lines Matching refs:capsnap
480 struct ceph_cap_snap *capsnap; in ceph_queue_cap_snap() local
485 capsnap = kzalloc(sizeof(*capsnap), GFP_NOFS); in ceph_queue_cap_snap()
486 if (!capsnap) { in ceph_queue_cap_snap()
490 capsnap->cap_flush.is_capsnap = true; in ceph_queue_cap_snap()
491 INIT_LIST_HEAD(&capsnap->cap_flush.i_list); in ceph_queue_cap_snap()
492 INIT_LIST_HEAD(&capsnap->cap_flush.g_list); in ceph_queue_cap_snap()
535 capsnap->need_flush = true; in ceph_queue_cap_snap()
546 inode, capsnap, old_snapc, ceph_cap_string(dirty), in ceph_queue_cap_snap()
547 capsnap->need_flush ? "" : "no_flush"); in ceph_queue_cap_snap()
550 refcount_set(&capsnap->nref, 1); in ceph_queue_cap_snap()
551 INIT_LIST_HEAD(&capsnap->ci_item); in ceph_queue_cap_snap()
553 capsnap->follows = old_snapc->seq; in ceph_queue_cap_snap()
554 capsnap->issued = __ceph_caps_issued(ci, NULL); in ceph_queue_cap_snap()
555 capsnap->dirty = dirty; in ceph_queue_cap_snap()
557 capsnap->mode = inode->i_mode; in ceph_queue_cap_snap()
558 capsnap->uid = inode->i_uid; in ceph_queue_cap_snap()
559 capsnap->gid = inode->i_gid; in ceph_queue_cap_snap()
563 capsnap->xattr_blob = in ceph_queue_cap_snap()
565 capsnap->xattr_version = ci->i_xattrs.version; in ceph_queue_cap_snap()
567 capsnap->xattr_blob = NULL; in ceph_queue_cap_snap()
568 capsnap->xattr_version = 0; in ceph_queue_cap_snap()
571 capsnap->inline_data = ci->i_inline_version != CEPH_INLINE_NONE; in ceph_queue_cap_snap()
576 capsnap->dirty_pages = ci->i_wrbuffer_ref_head; in ceph_queue_cap_snap()
578 capsnap->context = old_snapc; in ceph_queue_cap_snap()
579 list_add_tail(&capsnap->ci_item, &ci->i_cap_snaps); in ceph_queue_cap_snap()
584 capsnap, old_snapc, old_snapc->seq); in ceph_queue_cap_snap()
585 capsnap->writing = 1; in ceph_queue_cap_snap()
588 __ceph_finish_cap_snap(ci, capsnap); in ceph_queue_cap_snap()
590 capsnap = NULL; in ceph_queue_cap_snap()
606 kfree(capsnap); in ceph_queue_cap_snap()
619 struct ceph_cap_snap *capsnap) in __ceph_finish_cap_snap() argument
624 BUG_ON(capsnap->writing); in __ceph_finish_cap_snap()
625 capsnap->size = i_size_read(inode); in __ceph_finish_cap_snap()
626 capsnap->mtime = inode->i_mtime; in __ceph_finish_cap_snap()
627 capsnap->atime = inode->i_atime; in __ceph_finish_cap_snap()
628 capsnap->ctime = inode->i_ctime; in __ceph_finish_cap_snap()
629 capsnap->btime = ci->i_btime; in __ceph_finish_cap_snap()
630 capsnap->change_attr = inode_peek_iversion_raw(inode); in __ceph_finish_cap_snap()
631 capsnap->time_warp_seq = ci->i_time_warp_seq; in __ceph_finish_cap_snap()
632 capsnap->truncate_size = ci->i_truncate_size; in __ceph_finish_cap_snap()
633 capsnap->truncate_seq = ci->i_truncate_seq; in __ceph_finish_cap_snap()
634 if (capsnap->dirty_pages) { in __ceph_finish_cap_snap()
636 "still has %d dirty pages\n", inode, capsnap, in __ceph_finish_cap_snap()
637 capsnap->context, capsnap->context->seq, in __ceph_finish_cap_snap()
638 ceph_cap_string(capsnap->dirty), capsnap->size, in __ceph_finish_cap_snap()
639 capsnap->dirty_pages); in __ceph_finish_cap_snap()
646 "used WRBUFFER, delaying\n", inode, capsnap, in __ceph_finish_cap_snap()
647 capsnap->context, capsnap->context->seq, in __ceph_finish_cap_snap()
648 ceph_cap_string(capsnap->dirty), capsnap->size); in __ceph_finish_cap_snap()
649 capsnap->writing = 1; in __ceph_finish_cap_snap()
655 inode, capsnap, capsnap->context, in __ceph_finish_cap_snap()
656 capsnap->context->seq, ceph_cap_string(capsnap->dirty), in __ceph_finish_cap_snap()
657 capsnap->size); in __ceph_finish_cap_snap()