Lines Matching +full:len +full:- +full:or +full:- +full:limit
1 // SPDX-License-Identifier: GPL-2.0
19 sector += bdev->bd_start_sect; in bio_discard_limit()
29 return granularity_aligned_sector - sector; in bio_discard_limit()
50 bio->bi_iter.bi_sector = *sector; in blk_alloc_discard_bio()
51 bio->bi_iter.bi_size = bio_sects << SECTOR_SHIFT; in blk_alloc_discard_bio()
53 *nr_sects -= bio_sects; in blk_alloc_discard_bio()
76 * blkdev_issue_discard - queue a discard
96 if (ret == -EOPNOTSUPP) in blkdev_issue_discard()
108 sector_t bs_mask = (bdev_logical_block_size(bdev) >> 9) - 1; in bio_write_zeroes_limit()
119 * queue limit is likely to change at runtime.
123 struct bio **biop, unsigned flags, sector_t limit) in __blkdev_issue_write_zeroes() argument
127 unsigned int len = min(nr_sects, limit); in __blkdev_issue_write_zeroes() local
135 bio->bi_iter.bi_sector = sector; in __blkdev_issue_write_zeroes()
137 bio->bi_opf |= REQ_NOUNMAP; in __blkdev_issue_write_zeroes()
139 bio->bi_iter.bi_size = len << SECTOR_SHIFT; in __blkdev_issue_write_zeroes()
142 nr_sects -= len; in __blkdev_issue_write_zeroes()
143 sector += len; in __blkdev_issue_write_zeroes()
151 sector_t limit = bio_write_zeroes_limit(bdev); in blkdev_issue_write_zeroes() local
158 flags, limit); in blkdev_issue_write_zeroes()
164 return -EINTR; in blkdev_issue_write_zeroes()
172 * For some devices there is no non-destructive way to verify whether in blkdev_issue_write_zeroes()
178 return -EOPNOTSUPP; in blkdev_issue_write_zeroes()
204 bio->bi_iter.bi_sector = sector; in __blkdev_issue_zero_pages()
211 unsigned int len, added; in __blkdev_issue_zero_pages() local
213 len = min_t(sector_t, in __blkdev_issue_zero_pages()
215 added = bio_add_page(bio, ZERO_PAGE(0), len, 0); in __blkdev_issue_zero_pages()
216 if (added < len) in __blkdev_issue_zero_pages()
218 nr_sects -= added >> SECTOR_SHIFT; in __blkdev_issue_zero_pages()
235 return -EOPNOTSUPP; in blkdev_issue_zero_pages()
244 return -EINTR; in blkdev_issue_zero_pages()
255 * __blkdev_issue_zeroout - generate number of zero filed write bios
264 * Zero-fill a block range, either using hardware offload or by explicitly
271 * -EOPNOTSUPP if no explicit hardware offload for zeroing is provided.
277 sector_t limit = bio_write_zeroes_limit(bdev); in __blkdev_issue_zeroout() local
280 return -EPERM; in __blkdev_issue_zeroout()
282 if (limit) { in __blkdev_issue_zeroout()
284 gfp_mask, biop, flags, limit); in __blkdev_issue_zeroout()
287 return -EOPNOTSUPP; in __blkdev_issue_zeroout()
296 * blkdev_issue_zeroout - zero-fill a block range
304 * Zero-fill a block range, either using hardware offload or by explicitly
313 if ((sector | nr_sects) & ((bdev_logical_block_size(bdev) >> 9) - 1)) in blkdev_issue_zeroout()
314 return -EINVAL; in blkdev_issue_zeroout()
316 return -EPERM; in blkdev_issue_zeroout()
321 if (ret != -EOPNOTSUPP) in blkdev_issue_zeroout()
332 sector_t bs_mask = (bdev_logical_block_size(bdev) >> 9) - 1; in blkdev_issue_secure_erase()
338 /* make sure that "len << SECTOR_SHIFT" doesn't overflow */ in blkdev_issue_secure_erase()
344 return -EOPNOTSUPP; in blkdev_issue_secure_erase()
346 return -EINVAL; in blkdev_issue_secure_erase()
348 return -EPERM; in blkdev_issue_secure_erase()
352 unsigned int len = min_t(sector_t, nr_sects, max_sectors); in blkdev_issue_secure_erase() local
355 bio->bi_iter.bi_sector = sector; in blkdev_issue_secure_erase()
356 bio->bi_iter.bi_size = len << SECTOR_SHIFT; in blkdev_issue_secure_erase()
358 sector += len; in blkdev_issue_secure_erase()
359 nr_sects -= len; in blkdev_issue_secure_erase()