Lines Matching refs:lim

103 static unsigned int bio_allowed_max_sectors(struct queue_limits *lim)  in bio_allowed_max_sectors()  argument
105 return round_down(UINT_MAX, lim->logical_block_size) >> SECTOR_SHIFT; in bio_allowed_max_sectors()
108 static struct bio *bio_split_discard(struct bio *bio, struct queue_limits *lim, in bio_split_discard() argument
118 granularity = max(lim->discard_granularity >> 9, 1U); in bio_split_discard()
121 min(lim->max_discard_sectors, bio_allowed_max_sectors(lim)); in bio_split_discard()
139 ((lim->discard_alignment >> 9) % granularity); in bio_split_discard()
149 struct queue_limits *lim, unsigned *nsegs, struct bio_set *bs) in bio_split_write_zeroes() argument
152 if (!lim->max_write_zeroes_sectors) in bio_split_write_zeroes()
154 if (bio_sectors(bio) <= lim->max_write_zeroes_sectors) in bio_split_write_zeroes()
156 return bio_split(bio, lim->max_write_zeroes_sectors, GFP_NOIO, bs); in bio_split_write_zeroes()
168 struct queue_limits *lim) in get_max_io_size() argument
170 unsigned pbs = lim->physical_block_size >> SECTOR_SHIFT; in get_max_io_size()
171 unsigned lbs = lim->logical_block_size >> SECTOR_SHIFT; in get_max_io_size()
172 unsigned max_sectors = lim->max_sectors, start, end; in get_max_io_size()
174 if (lim->chunk_sectors) { in get_max_io_size()
177 lim->chunk_sectors)); in get_max_io_size()
187 static inline unsigned get_max_segment_size(struct queue_limits *lim, in get_max_segment_size() argument
190 unsigned long mask = lim->seg_boundary_mask; in get_max_segment_size()
199 (unsigned long)lim->max_segment_size); in get_max_segment_size()
222 static bool bvec_split_segs(struct queue_limits *lim, const struct bio_vec *bv, in bvec_split_segs() argument
232 seg_size = get_max_segment_size(lim, bv->bv_page, in bvec_split_segs()
240 if ((bv->bv_offset + total_len) & lim->virt_boundary_mask) in bvec_split_segs()
270 static struct bio *bio_split_rw(struct bio *bio, struct queue_limits *lim, in bio_split_rw() argument
282 if (bvprvp && bvec_gap_to_prev(lim, bvprvp, bv.bv_offset)) in bio_split_rw()
285 if (nsegs < lim->max_segments && in bio_split_rw()
291 if (bvec_split_segs(lim, &bv, &nsegs, &bytes, in bio_split_rw()
292 lim->max_segments, max_bytes)) in bio_split_rw()
310 bytes = ALIGN_DOWN(bytes, lim->logical_block_size); in bio_split_rw()
334 struct bio *__bio_split_to_limits(struct bio *bio, struct queue_limits *lim, in __bio_split_to_limits() argument
343 split = bio_split_discard(bio, lim, nr_segs, bs); in __bio_split_to_limits()
346 split = bio_split_write_zeroes(bio, lim, nr_segs, bs); in __bio_split_to_limits()
349 split = bio_split_rw(bio, lim, nr_segs, bs, in __bio_split_to_limits()
350 get_max_io_size(bio, lim) << SECTOR_SHIFT); in __bio_split_to_limits()
380 struct queue_limits *lim = &bdev_get_queue(bio->bi_bdev)->limits; in bio_split_to_limits() local
383 if (bio_may_exceed_limits(bio, lim)) in bio_split_to_limits()
384 return __bio_split_to_limits(bio, lim, &nr_segs); in bio_split_to_limits()