{
        struct afs_vnode *vnode = AFS_FS_I(folio_inode(folio));
        struct iov_iter iter;
-       struct bio_vec bv[1];
+       struct bio_vec bv;
        unsigned long priv;
        unsigned int f, t;
        int ret = 0;
                        t = afs_folio_dirty_to(folio, priv);
                }
 
-               bv[0].bv_page = &folio->page;
-               bv[0].bv_offset = f;
-               bv[0].bv_len = t - f;
-               iov_iter_bvec(&iter, ITER_SOURCE, bv, 1, bv[0].bv_len);
+               bvec_set_folio(&bv, folio, t - f, f);
+               iov_iter_bvec(&iter, ITER_SOURCE, &bv, 1, bv.bv_len);
 
                trace_afs_folio_dirty(vnode, tracepoint_string("launder"), folio);
                ret = afs_store_data(vnode, &iter, folio_pos(folio) + f, true);