Lines Matching full:ci
530 static void ceph_queue_cap_snap(struct ceph_inode_info *ci, in ceph_queue_cap_snap() argument
533 struct inode *inode = &ci->netfs.inode; in ceph_queue_cap_snap()
540 spin_lock(&ci->i_ceph_lock); in ceph_queue_cap_snap()
541 used = __ceph_caps_used(ci); in ceph_queue_cap_snap()
542 dirty = __ceph_caps_dirty(ci); in ceph_queue_cap_snap()
544 old_snapc = ci->i_head_snapc; in ceph_queue_cap_snap()
545 new_snapc = ci->i_snap_realm->cached_context; in ceph_queue_cap_snap()
555 if (__ceph_have_pending_cap_snap(ci)) { in ceph_queue_cap_snap()
564 if (ci->i_wrbuffer_ref_head == 0 && in ceph_queue_cap_snap()
586 ci->i_wrbuffer_ref_head == 0) { in ceph_queue_cap_snap()
599 capsnap->issued = __ceph_caps_issued(ci, NULL); in ceph_queue_cap_snap()
607 old_blob = __ceph_build_xattrs_blob(ci); in ceph_queue_cap_snap()
609 ceph_buffer_get(ci->i_xattrs.blob); in ceph_queue_cap_snap()
610 capsnap->xattr_version = ci->i_xattrs.version; in ceph_queue_cap_snap()
616 capsnap->inline_data = ci->i_inline_version != CEPH_INLINE_NONE; in ceph_queue_cap_snap()
621 capsnap->dirty_pages = ci->i_wrbuffer_ref_head; in ceph_queue_cap_snap()
622 ci->i_wrbuffer_ref_head = 0; in ceph_queue_cap_snap()
624 list_add_tail(&capsnap->ci_item, &ci->i_cap_snaps); in ceph_queue_cap_snap()
633 __ceph_finish_cap_snap(ci, capsnap); in ceph_queue_cap_snap()
639 if (ci->i_wrbuffer_ref_head == 0 && in ceph_queue_cap_snap()
640 ci->i_wr_ref == 0 && in ceph_queue_cap_snap()
641 ci->i_dirty_caps == 0 && in ceph_queue_cap_snap()
642 ci->i_flushing_caps == 0) { in ceph_queue_cap_snap()
643 ci->i_head_snapc = NULL; in ceph_queue_cap_snap()
645 ci->i_head_snapc = ceph_get_snap_context(new_snapc); in ceph_queue_cap_snap()
648 spin_unlock(&ci->i_ceph_lock); in ceph_queue_cap_snap()
662 int __ceph_finish_cap_snap(struct ceph_inode_info *ci, in __ceph_finish_cap_snap() argument
665 struct inode *inode = &ci->netfs.inode; in __ceph_finish_cap_snap()
674 capsnap->btime = ci->i_btime; in __ceph_finish_cap_snap()
676 capsnap->time_warp_seq = ci->i_time_warp_seq; in __ceph_finish_cap_snap()
677 capsnap->truncate_size = ci->i_truncate_size; in __ceph_finish_cap_snap()
678 capsnap->truncate_seq = ci->i_truncate_seq; in __ceph_finish_cap_snap()
693 if (ci->i_wrbuffer_ref) { in __ceph_finish_cap_snap()
703 set_bit(CEPH_I_FLUSH_SNAPS_BIT, &ci->i_ceph_flags); in __ceph_finish_cap_snap()
710 if (list_empty(&ci->i_snap_flush_item)) { in __ceph_finish_cap_snap()
712 list_add_tail(&ci->i_snap_flush_item, &mdsc->snap_flush_list); in __ceph_finish_cap_snap()
726 struct ceph_inode_info *ci; in queue_realm_cap_snaps() local
733 list_for_each_entry(ci, &realm->inodes_with_caps, i_snap_realm_item) { in queue_realm_cap_snaps()
734 struct inode *inode = igrab(&ci->netfs.inode); in queue_realm_cap_snaps()
761 ceph_queue_cap_snap(ci, &capsnap); in queue_realm_cap_snaps()
945 struct ceph_inode_info *ci; in flush_snaps() local
952 ci = list_first_entry(&mdsc->snap_flush_list, in flush_snaps()
954 inode = &ci->netfs.inode; in flush_snaps()
957 ceph_flush_snaps(ci, &session); in flush_snaps()
979 struct ceph_inode_info *ci = ceph_inode(inode); in ceph_change_snap_realm() local
981 struct ceph_snap_realm *oldrealm = ci->i_snap_realm; in ceph_change_snap_realm()
983 lockdep_assert_held(&ci->i_ceph_lock); in ceph_change_snap_realm()
987 list_del_init(&ci->i_snap_realm_item); in ceph_change_snap_realm()
988 if (oldrealm->ino == ci->i_vino.ino) in ceph_change_snap_realm()
994 ci->i_snap_realm = realm; in ceph_change_snap_realm()
998 list_add(&ci->i_snap_realm_item, &realm->inodes_with_caps); in ceph_change_snap_realm()
999 if (realm->ino == ci->i_vino.ino) in ceph_change_snap_realm()
1090 struct ceph_inode_info *ci; in ceph_handle_snap() local
1094 ci = ceph_inode(inode); in ceph_handle_snap()
1096 spin_lock(&ci->i_ceph_lock); in ceph_handle_snap()
1097 if (!ci->i_snap_realm) in ceph_handle_snap()
1106 if (ci->i_snap_realm->created > in ceph_handle_snap()
1109 inode, ceph_vinop(inode), ci->i_snap_realm->ino, in ceph_handle_snap()
1110 ci->i_snap_realm); in ceph_handle_snap()
1118 spin_unlock(&ci->i_ceph_lock); in ceph_handle_snap()
1123 spin_unlock(&ci->i_ceph_lock); in ceph_handle_snap()