Lines Matching refs:bio
205 static void gfs2_end_log_write(struct bio *bio) in gfs2_end_log_write() argument
207 struct gfs2_sbd *sdp = bio->bi_private; in gfs2_end_log_write()
212 if (bio->bi_error) { in gfs2_end_log_write()
213 sdp->sd_log_error = bio->bi_error; in gfs2_end_log_write()
214 fs_err(sdp, "Error %d writing to log\n", bio->bi_error); in gfs2_end_log_write()
217 bio_for_each_segment_all(bvec, bio, i) { in gfs2_end_log_write()
220 gfs2_end_log_write_bh(sdp, bvec, bio->bi_error); in gfs2_end_log_write()
225 bio_put(bio); in gfs2_end_log_write()
261 static struct bio *gfs2_log_alloc_bio(struct gfs2_sbd *sdp, u64 blkno) in gfs2_log_alloc_bio()
264 struct bio *bio; in gfs2_log_alloc_bio() local
268 bio = bio_alloc(GFP_NOIO, BIO_MAX_PAGES); in gfs2_log_alloc_bio()
269 bio->bi_iter.bi_sector = blkno * (sb->s_blocksize >> 9); in gfs2_log_alloc_bio()
270 bio->bi_bdev = sb->s_bdev; in gfs2_log_alloc_bio()
271 bio->bi_end_io = gfs2_end_log_write; in gfs2_log_alloc_bio()
272 bio->bi_private = sdp; in gfs2_log_alloc_bio()
274 sdp->sd_log_bio = bio; in gfs2_log_alloc_bio()
276 return bio; in gfs2_log_alloc_bio()
292 static struct bio *gfs2_log_get_bio(struct gfs2_sbd *sdp, u64 blkno) in gfs2_log_get_bio()
294 struct bio *bio = sdp->sd_log_bio; in gfs2_log_get_bio() local
297 if (bio) { in gfs2_log_get_bio()
298 nblk = bio_end_sector(bio); in gfs2_log_get_bio()
301 return bio; in gfs2_log_get_bio()
325 struct bio *bio; in gfs2_log_write() local
328 bio = gfs2_log_get_bio(sdp, blkno); in gfs2_log_write()
329 ret = bio_add_page(bio, page, size, offset); in gfs2_log_write()
332 bio = gfs2_log_alloc_bio(sdp, blkno); in gfs2_log_write()
333 ret = bio_add_page(bio, page, size, offset); in gfs2_log_write()