Lines Matching refs:cinfo

61 static void nfs_clear_request_commit(struct nfs_commit_info *cinfo,
63 static void nfs_init_cinfo_from_inode(struct nfs_commit_info *cinfo,
504 void nfs_join_page_group(struct nfs_page *head, struct nfs_commit_info *cinfo,
535 nfs_clear_request_commit(cinfo, subreq);
569 struct nfs_commit_info cinfo;
572 nfs_init_cinfo_from_inode(&cinfo, inode);
589 nfs_join_page_group(head, &cinfo, inode);
812 * Must be called while holding the inode (which is cinfo) lock.
821 struct nfs_commit_info cinfo;
824 nfs_init_cinfo_from_inode(&cinfo, inode);
827 freq = pnfs_search_commit_reqs(inode, &cinfo, page);
832 list_for_each_entry_safe(freq, t, &cinfo.mds->list, wb_list) {
844 * @cinfo: holds list lock and accounting info
846 * This sets the PG_CLEAN bit, updates the cinfo count of
850 * The caller must hold NFS_I(cinfo->inode)->commit_mutex, and the
855 struct nfs_commit_info *cinfo)
859 atomic_long_inc(&cinfo->mds->ncommit);
866 * @cinfo: holds list lock and accounting info
868 * This sets the PG_CLEAN bit, updates the cinfo count of
872 * The caller must _not_ hold the cinfo->lock, but must be
876 nfs_request_add_commit_list(struct nfs_page *req, struct nfs_commit_info *cinfo)
878 mutex_lock(&NFS_I(cinfo->inode)->commit_mutex);
879 nfs_request_add_commit_list_locked(req, &cinfo->mds->list, cinfo);
880 mutex_unlock(&NFS_I(cinfo->inode)->commit_mutex);
882 nfs_mark_page_unstable(req->wb_page, cinfo);
889 * @cinfo: holds list lock and accounting info
891 * This clears the PG_CLEAN bit, and updates the cinfo's count of
895 * The caller _must_ hold the cinfo->lock and the nfs_page lock.
899 struct nfs_commit_info *cinfo)
904 atomic_long_dec(&cinfo->mds->ncommit);
908 static void nfs_init_cinfo_from_inode(struct nfs_commit_info *cinfo,
911 cinfo->inode = inode;
912 cinfo->mds = &NFS_I(inode)->commit_info;
913 cinfo->ds = pnfs_get_ds_info(inode);
914 cinfo->dreq = NULL;
915 cinfo->completion_ops = &nfs_commit_completion_ops;
918 void nfs_init_cinfo(struct nfs_commit_info *cinfo,
923 nfs_init_cinfo_from_dreq(cinfo, dreq);
925 nfs_init_cinfo_from_inode(cinfo, inode);
934 struct nfs_commit_info *cinfo, u32 ds_commit_idx)
936 if (pnfs_mark_request_commit(req, lseg, cinfo, ds_commit_idx))
938 nfs_request_add_commit_list(req, cinfo);
950 static void nfs_clear_request_commit(struct nfs_commit_info *cinfo,
958 if (!pnfs_clear_request_commit(req, cinfo)) {
959 nfs_request_remove_commit_list(req, cinfo);
980 struct nfs_commit_info cinfo;
985 nfs_init_cinfo_from_inode(&cinfo, hdr->inode);
1001 nfs_mark_request_commit(req, hdr->lseg, &cinfo,
1017 nfs_reqs_to_commit(struct nfs_commit_info *cinfo)
1019 return atomic_long_read(&cinfo->mds->ncommit);
1022 /* NFS_I(cinfo->inode)->commit_mutex held by caller */
1025 struct nfs_commit_info *cinfo, int max)
1036 nfs_request_remove_commit_list(req, cinfo);
1040 if ((ret == max) && !cinfo->dreq)
1052 * @cinfo: mds and ds lists of reqs ready to commit
1059 struct nfs_commit_info *cinfo)
1063 if (!atomic_long_read(&cinfo->mds->ncommit))
1065 mutex_lock(&NFS_I(cinfo->inode)->commit_mutex);
1066 if (atomic_long_read(&cinfo->mds->ncommit) > 0) {
1069 ret = nfs_scan_commit_list(&cinfo->mds->list, dst,
1070 cinfo, max);
1071 ret += pnfs_scan_commit_lists(inode, cinfo, max - ret);
1073 mutex_unlock(&NFS_I(cinfo->inode)->commit_mutex);
1634 static int wait_on_commit(struct nfs_mds_commit_info *cinfo)
1636 return wait_var_event_killable(&cinfo->rpcs_out,
1637 !atomic_read(&cinfo->rpcs_out));
1640 void nfs_commit_begin(struct nfs_mds_commit_info *cinfo)
1642 atomic_inc(&cinfo->rpcs_out);
1645 bool nfs_commit_end(struct nfs_mds_commit_info *cinfo)
1647 if (atomic_dec_and_test(&cinfo->rpcs_out)) {
1648 wake_up_var(&cinfo->rpcs_out);
1717 struct nfs_commit_info *cinfo)
1740 data->completion_ops = cinfo->completion_ops;
1741 data->dreq = cinfo->dreq;
1751 nfs_commit_begin(cinfo->mds);
1757 struct nfs_commit_info *cinfo,
1765 nfs_mark_request_commit(req, lseg, cinfo, ds_commit_idx);
1766 if (!cinfo->dreq)
1774 nfs_commit_resched_write(struct nfs_commit_info *cinfo,
1785 struct nfs_commit_info *cinfo)
1795 nfs_retry_commit(head, NULL, cinfo, -1);
1800 nfs_init_commit(data, head, NULL, cinfo);
1825 struct nfs_commit_info cinfo;
1871 nfs_init_cinfo(&cinfo, data->inode, data->dreq);
1872 nfs_commit_end(cinfo.mds);
1895 int how, struct nfs_commit_info *cinfo)
1899 status = pnfs_commit_list(inode, head, how, cinfo);
1901 status = nfs_commit_list(inode, head, how, cinfo);
1909 struct nfs_commit_info cinfo;
1914 nfs_init_cinfo_from_inode(&cinfo, inode);
1915 nfs_commit_begin(cinfo.mds);
1917 ret = nscan = nfs_scan_commit(inode, &head, &cinfo);
1920 ret = nfs_generic_commit_list(inode, &head, how, &cinfo);
1934 nfs_commit_end(cinfo.mds);
1937 return wait_on_commit(cinfo.mds);