提交 0cb1f6df 编写于 作者: T Trond Myklebust

pNFS: Support per-layout segment commits in pnfs_generic_commit_pagelist()

Add support for scanning the full list of per-layout segment commit
arrays to pnfs_generic_commit_pagelist().
Signed-off-by: NTrond Myklebust <trond.myklebust@hammerspace.com>
上级 fce9ed03
...@@ -322,6 +322,20 @@ pnfs_bucket_alloc_ds_commits(struct list_head *list, ...@@ -322,6 +322,20 @@ pnfs_bucket_alloc_ds_commits(struct list_head *list,
return nreq; return nreq;
} }
static unsigned int
pnfs_alloc_ds_commits_list(struct list_head *list,
struct pnfs_ds_commit_info *fl_cinfo,
struct nfs_commit_info *cinfo)
{
struct pnfs_commit_array *array;
unsigned int ret = 0;
list_for_each_entry(array, &fl_cinfo->commits, cinfo_list)
ret += pnfs_bucket_alloc_ds_commits(list, array->buckets,
array->nbuckets, cinfo);
return ret;
}
/* This follows nfs_commit_list pretty closely */ /* This follows nfs_commit_list pretty closely */
int int
pnfs_generic_commit_pagelist(struct inode *inode, struct list_head *mds_pages, pnfs_generic_commit_pagelist(struct inode *inode, struct list_head *mds_pages,
...@@ -345,6 +359,8 @@ pnfs_generic_commit_pagelist(struct inode *inode, struct list_head *mds_pages, ...@@ -345,6 +359,8 @@ pnfs_generic_commit_pagelist(struct inode *inode, struct list_head *mds_pages,
nreq += pnfs_bucket_alloc_ds_commits(&list, fl_cinfo->buckets, nreq += pnfs_bucket_alloc_ds_commits(&list, fl_cinfo->buckets,
fl_cinfo->nbuckets, cinfo); fl_cinfo->nbuckets, cinfo);
nreq += pnfs_alloc_ds_commits_list(&list, fl_cinfo, cinfo);
if (nreq == 0) if (nreq == 0)
goto out; goto out;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册