NFS/pNFS: Support commit arrays in nfs_clear_pnfs_ds_commit_verifiers()
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Fri, 20 Mar 2020 23:06:48 +0000 (19:06 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Fri, 27 Mar 2020 20:34:34 +0000 (16:34 -0400)
Add support for scanning the full list of per-layout segment commit
arrays to nfs_clear_pnfs_ds_commit_verifiers().

Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/internal.h

index 6542411..4a1adad 100644 (file)
@@ -517,13 +517,26 @@ int nfs_filemap_write_and_wait_range(struct address_space *mapping,
                loff_t lstart, loff_t lend);
 
 #ifdef CONFIG_NFS_V4_1
+static inline void
+pnfs_bucket_clear_pnfs_ds_commit_verifiers(struct pnfs_commit_bucket *buckets,
+               unsigned int nbuckets)
+{
+       unsigned int i;
+
+       for (i = 0; i < nbuckets; i++)
+               buckets[i].direct_verf.committed = NFS_INVALID_STABLE_HOW;
+}
 static inline
 void nfs_clear_pnfs_ds_commit_verifiers(struct pnfs_ds_commit_info *cinfo)
 {
-       int i;
+       struct pnfs_commit_array *array;
+
+       pnfs_bucket_clear_pnfs_ds_commit_verifiers(cinfo->buckets,
+                       cinfo->nbuckets);
 
-       for (i = 0; i < cinfo->nbuckets; i++)
-               cinfo->buckets[i].direct_verf.committed = NFS_INVALID_STABLE_HOW;
+       list_for_each_entry(array, &cinfo->commits, cinfo_list)
+               pnfs_bucket_clear_pnfs_ds_commit_verifiers(array->buckets,
+                               array->nbuckets);
 }
 #else
 static inline