Lines Matching refs:ci

454 void ceph_queue_cap_snap(struct ceph_inode_info *ci)  in ceph_queue_cap_snap()  argument
456 struct inode *inode = &ci->vfs_inode; in ceph_queue_cap_snap()
466 spin_lock(&ci->i_ceph_lock); in ceph_queue_cap_snap()
467 used = __ceph_caps_used(ci); in ceph_queue_cap_snap()
468 dirty = __ceph_caps_dirty(ci); in ceph_queue_cap_snap()
478 if (__ceph_have_pending_cap_snap(ci)) { in ceph_queue_cap_snap()
485 } else if (ci->i_snap_realm->cached_context == empty_snapc) { in ceph_queue_cap_snap()
490 struct ceph_snap_context *snapc = ci->i_head_snapc; in ceph_queue_cap_snap()
497 snapc = ci->i_snap_realm->cached_context; in ceph_queue_cap_snap()
504 capsnap->ci = ci; in ceph_queue_cap_snap()
509 capsnap->issued = __ceph_caps_issued(ci, NULL); in ceph_queue_cap_snap()
517 __ceph_build_xattrs_blob(ci); in ceph_queue_cap_snap()
519 ceph_buffer_get(ci->i_xattrs.blob); in ceph_queue_cap_snap()
520 capsnap->xattr_version = ci->i_xattrs.version; in ceph_queue_cap_snap()
526 capsnap->inline_data = ci->i_inline_version != CEPH_INLINE_NONE; in ceph_queue_cap_snap()
531 capsnap->dirty_pages = ci->i_wrbuffer_ref_head; in ceph_queue_cap_snap()
532 ci->i_wrbuffer_ref_head = 0; in ceph_queue_cap_snap()
534 ci->i_head_snapc = in ceph_queue_cap_snap()
535 ceph_get_snap_context(ci->i_snap_realm->cached_context); in ceph_queue_cap_snap()
536 dout(" new snapc is %p\n", ci->i_head_snapc); in ceph_queue_cap_snap()
537 list_add_tail(&capsnap->ci_item, &ci->i_cap_snaps); in ceph_queue_cap_snap()
546 __ceph_finish_cap_snap(ci, capsnap); in ceph_queue_cap_snap()
553 spin_unlock(&ci->i_ceph_lock); in ceph_queue_cap_snap()
564 int __ceph_finish_cap_snap(struct ceph_inode_info *ci, in __ceph_finish_cap_snap() argument
567 struct inode *inode = &ci->vfs_inode; in __ceph_finish_cap_snap()
575 capsnap->time_warp_seq = ci->i_time_warp_seq; in __ceph_finish_cap_snap()
590 list_add_tail(&ci->i_snap_flush_item, &mdsc->snap_flush_list); in __ceph_finish_cap_snap()
601 struct ceph_inode_info *ci; in queue_realm_cap_snaps() local
608 list_for_each_entry(ci, &realm->inodes_with_caps, in queue_realm_cap_snaps()
610 struct inode *inode = igrab(&ci->vfs_inode); in queue_realm_cap_snaps()
616 ceph_queue_cap_snap(ci); in queue_realm_cap_snaps()
766 struct ceph_inode_info *ci; in flush_snaps() local
773 ci = list_first_entry(&mdsc->snap_flush_list, in flush_snaps()
775 inode = &ci->vfs_inode; in flush_snaps()
778 spin_lock(&ci->i_ceph_lock); in flush_snaps()
779 __ceph_flush_snaps(ci, &session, 0); in flush_snaps()
780 spin_unlock(&ci->i_ceph_lock); in flush_snaps()
878 struct ceph_inode_info *ci; in ceph_handle_snap() local
883 ci = ceph_inode(inode); in ceph_handle_snap()
885 spin_lock(&ci->i_ceph_lock); in ceph_handle_snap()
886 if (!ci->i_snap_realm) in ceph_handle_snap()
895 if (ci->i_snap_realm->created > in ceph_handle_snap()
898 inode, ci->i_snap_realm->ino, in ceph_handle_snap()
899 ci->i_snap_realm); in ceph_handle_snap()
908 list_del_init(&ci->i_snap_realm_item); in ceph_handle_snap()
909 list_add(&ci->i_snap_realm_item, in ceph_handle_snap()
911 oldrealm = ci->i_snap_realm; in ceph_handle_snap()
912 ci->i_snap_realm = realm; in ceph_handle_snap()
914 spin_unlock(&ci->i_ceph_lock); in ceph_handle_snap()
923 spin_unlock(&ci->i_ceph_lock); in ceph_handle_snap()