Lines Matching refs:bio
205 static void gfs2_end_log_write(struct bio *bio, int error) in gfs2_end_log_write() argument
207 struct gfs2_sbd *sdp = bio->bi_private; in gfs2_end_log_write()
217 bio_for_each_segment_all(bvec, bio, i) { 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()
265 struct bio *bio; in gfs2_log_alloc_bio() local
270 bio = bio_alloc(GFP_NOIO, nrvecs); in gfs2_log_alloc_bio()
271 if (likely(bio)) in gfs2_log_alloc_bio()
276 bio->bi_iter.bi_sector = blkno * (sb->s_blocksize >> 9); in gfs2_log_alloc_bio()
277 bio->bi_bdev = sb->s_bdev; in gfs2_log_alloc_bio()
278 bio->bi_end_io = gfs2_end_log_write; in gfs2_log_alloc_bio()
279 bio->bi_private = sdp; in gfs2_log_alloc_bio()
281 sdp->sd_log_bio = bio; in gfs2_log_alloc_bio()
283 return bio; in gfs2_log_alloc_bio()
299 static struct bio *gfs2_log_get_bio(struct gfs2_sbd *sdp, u64 blkno) in gfs2_log_get_bio()
301 struct bio *bio = sdp->sd_log_bio; in gfs2_log_get_bio() local
304 if (bio) { in gfs2_log_get_bio()
305 nblk = bio_end_sector(bio); in gfs2_log_get_bio()
308 return bio; in gfs2_log_get_bio()
332 struct bio *bio; in gfs2_log_write() local
335 bio = gfs2_log_get_bio(sdp, blkno); in gfs2_log_write()
336 ret = bio_add_page(bio, page, size, offset); in gfs2_log_write()
339 bio = gfs2_log_alloc_bio(sdp, blkno); in gfs2_log_write()
340 ret = bio_add_page(bio, page, size, offset); in gfs2_log_write()