Symbol: stripe
drivers/md/bcache/writeback.c
601
int stripe;
drivers/md/bcache/writeback.c
606
stripe = offset_to_stripe(d, offset);
drivers/md/bcache/writeback.c
607
if (stripe < 0)
drivers/md/bcache/writeback.c
622
if (stripe >= d->nr_stripes)
drivers/md/bcache/writeback.c
626
d->stripe_sectors_dirty + stripe);
drivers/md/bcache/writeback.c
628
if (!test_bit(stripe, d->full_dirty_stripes))
drivers/md/bcache/writeback.c
629
set_bit(stripe, d->full_dirty_stripes);
drivers/md/bcache/writeback.c
631
if (test_bit(stripe, d->full_dirty_stripes))
drivers/md/bcache/writeback.c
632
clear_bit(stripe, d->full_dirty_stripes);
drivers/md/bcache/writeback.c
637
stripe++;
drivers/md/bcache/writeback.c
656
int stripe;
drivers/md/bcache/writeback.c
659
stripe = offset_to_stripe(&dc->disk, KEY_OFFSET(&buf->last_scanned));
drivers/md/bcache/writeback.c
660
if (stripe < 0)
drivers/md/bcache/writeback.c
661
stripe = 0;
drivers/md/bcache/writeback.c
663
start_stripe = stripe;
drivers/md/bcache/writeback.c
666
stripe = find_next_bit(dc->disk.full_dirty_stripes,
drivers/md/bcache/writeback.c
667
dc->disk.nr_stripes, stripe);
drivers/md/bcache/writeback.c
669
if (stripe == dc->disk.nr_stripes)
drivers/md/bcache/writeback.c
673
dc->disk.nr_stripes, stripe);
drivers/md/bcache/writeback.c
676
stripe * dc->disk.stripe_size, 0);
drivers/md/bcache/writeback.c
686
stripe = next_stripe;
drivers/md/bcache/writeback.c
688
if (wrapped && stripe > start_stripe)
drivers/md/bcache/writeback.c
691
if (stripe == dc->disk.nr_stripes) {
drivers/md/bcache/writeback.c
692
stripe = 0;
drivers/md/bcache/writeback.h
82
int stripe = offset_to_stripe(&dc->disk, offset);
drivers/md/bcache/writeback.h
84
if (stripe < 0)
drivers/md/bcache/writeback.h
88
if (atomic_read(dc->disk.stripe_sectors_dirty + stripe))
drivers/md/bcache/writeback.h
95
stripe++;
drivers/md/dm-stripe.c
132
sc = kmalloc_flex(*sc, stripe, stripes);
drivers/md/dm-stripe.c
178
dm_put_device(ti, sc->stripe[i].dev);
drivers/md/dm-stripe.c
182
atomic_set(&(sc->stripe[i].error_count), 0);
drivers/md/dm-stripe.c
196
dm_put_device(ti, sc->stripe[i].dev);
drivers/md/dm-stripe.c
203
uint32_t *stripe, sector_t *result)
drivers/md/dm-stripe.c
216
*stripe = sector_div(chunk, sc->stripes);
drivers/md/dm-stripe.c
218
*stripe = chunk & (sc->stripes - 1);
drivers/md/dm-stripe.c
233
uint32_t stripe;
drivers/md/dm-stripe.c
235
stripe_map_sector(sc, sector, &stripe, result);
drivers/md/dm-stripe.c
236
if (stripe == target_stripe)
drivers/md/dm-stripe.c
246
if (target_stripe < stripe)
drivers/md/dm-stripe.c
260
bio_set_dev(bio, sc->stripe[target_stripe].dev->bdev);
drivers/md/dm-stripe.c
262
sc->stripe[target_stripe].physical_start;
drivers/md/dm-stripe.c
275
uint32_t stripe;
drivers/md/dm-stripe.c
281
bio_set_dev(bio, sc->stripe[target_bio_nr].dev->bdev);
drivers/md/dm-stripe.c
293
&stripe, &bio->bi_iter.bi_sector);
drivers/md/dm-stripe.c
295
bio->bi_iter.bi_sector += sc->stripe[stripe].physical_start;
drivers/md/dm-stripe.c
296
bio_set_dev(bio, sc->stripe[stripe].dev->bdev);
drivers/md/dm-stripe.c
307
uint32_t stripe;
drivers/md/dm-stripe.c
309
stripe_map_sector(sc, *pgoff * PAGE_SECTORS, &stripe, &dev_sector);
drivers/md/dm-stripe.c
310
dev_sector += sc->stripe[stripe].physical_start;
drivers/md/dm-stripe.c
311
bdev = sc->stripe[stripe].dev->bdev;
drivers/md/dm-stripe.c
314
return sc->stripe[stripe].dev->dax_dev;
drivers/md/dm-stripe.c
372
DMEMIT("%s ", sc->stripe[i].dev->name);
drivers/md/dm-stripe.c
376
DMEMIT("%c", atomic_read(&(sc->stripe[i].error_count)) ? 'D' : 'A');
drivers/md/dm-stripe.c
383
DMEMIT(" %s %llu", sc->stripe[i].dev->name,
drivers/md/dm-stripe.c
384
(unsigned long long)sc->stripe[i].physical_start);
drivers/md/dm-stripe.c
393
DMEMIT(",stripe_%d_device_name=%s", i, sc->stripe[i].dev->name);
drivers/md/dm-stripe.c
395
(unsigned long long)sc->stripe[i].physical_start);
drivers/md/dm-stripe.c
397
atomic_read(&(sc->stripe[i].error_count)) ? 'D' : 'A');
drivers/md/dm-stripe.c
429
if (!strcmp(sc->stripe[i].dev->name, major_minor)) {
drivers/md/dm-stripe.c
430
atomic_inc(&(sc->stripe[i].error_count));
drivers/md/dm-stripe.c
431
if (atomic_read(&(sc->stripe[i].error_count)) <
drivers/md/dm-stripe.c
447
ret = fn(ti, sc->stripe[i].dev,
drivers/md/dm-stripe.c
448
sc->stripe[i].physical_start,
drivers/md/dm-stripe.c
47
struct stripe stripe[] __counted_by(stripes);
drivers/md/dm-stripe.c
65
unsigned int stripe, char **argv)
drivers/md/dm-stripe.c
75
&sc->stripe[stripe].dev);
drivers/md/dm-stripe.c
79
sc->stripe[stripe].physical_start = start;
drivers/md/raid10.c
586
sector_t stripe;
drivers/md/raid10.c
602
stripe = chunk;
drivers/md/raid10.c
603
dev = sector_div(stripe, geo->raid_disks);
drivers/md/raid10.c
605
stripe *= geo->far_copies;
drivers/md/raid10.c
607
sector += stripe << geo->chunk_shift;
drivers/md/raid5.c
2950
sector_t stripe, stripe2;
drivers/md/raid5.c
2975
stripe = chunk_number;
drivers/md/raid5.c
2976
*dd_idx = sector_div(stripe, data_disks);
drivers/md/raid5.c
2977
stripe2 = stripe;
drivers/md/raid5.c
3144
new_sector = (sector_t)stripe * sectors_per_chunk + chunk_offset;
drivers/md/raid5.c
3158
sector_t stripe;
drivers/md/raid5.c
3166
stripe = new_sector;
drivers/md/raid5.c
3254
chunk_number = stripe * data_disks + i;
drivers/md/raid5.c
3569
static void stripe_set_idx(sector_t stripe, struct r5conf *conf, int previous,
drivers/md/raid5.c
3575
int chunk_offset = sector_div(stripe, sectors_per_chunk);
drivers/md/raid5.c
3579
stripe * (disks - conf->max_degraded)
drivers/md/raid5.c
577
static void stripe_set_idx(sector_t stripe, struct r5conf *conf, int previous,
drivers/md/raid5.c
7764
int data_disks, stripe;
drivers/md/raid5.c
7777
stripe = roundup_pow_of_two(data_disks * (mddev->chunk_sectors << 9));
drivers/md/raid5.c
7784
lim.discard_granularity = stripe;
drivers/md/raid5.c
7807
lim.max_discard_sectors < (stripe >> 9) ||
drivers/md/raid5.c
7808
lim.discard_granularity < stripe)
drivers/scsi/megaraid/megaraid_sas_fp.c
648
static u8 get_arm(struct megasas_instance *instance, u32 ld, u8 span, u64 stripe,
drivers/scsi/megaraid/megaraid_sas_fp.c
659
arm = mega_mod64(stripe, SPAN_ROW_SIZE(map, ld, span));
drivers/scsi/megaraid/megaraid_sas_fp.c
663
arm = get_arm_from_strip(instance, ld, stripe, map);
drivers/staging/media/ipu3/ipu3-abi.h
1058
struct imgu_abi_osys_stripe stripe[IPU3_UAPI_MAX_STRIPES];
drivers/staging/media/ipu3/ipu3-abi.h
1272
struct imgu_abi_stripe_data stripe;
drivers/staging/media/ipu3/ipu3-css-params.c
1005
osys->stripe[s].crop_top[pin] =
drivers/staging/media/ipu3/ipu3-css-params.c
1007
osys->stripe[s].input_width =
drivers/staging/media/ipu3/ipu3-css-params.c
1009
osys->stripe[s].input_height =
drivers/staging/media/ipu3/ipu3-css-params.c
1011
osys->stripe[s].block_height =
drivers/staging/media/ipu3/ipu3-css-params.c
1013
osys->stripe[s].block_width =
drivers/staging/media/ipu3/ipu3-css-params.c
1015
osys->stripe[s].output_width[pin] =
drivers/staging/media/ipu3/ipu3-css-params.c
1017
osys->stripe[s].output_height[pin] =
drivers/staging/media/ipu3/ipu3-css-params.c
1022
osys->stripe[s].crop_left[pin] =
drivers/staging/media/ipu3/ipu3-css-params.c
1024
osys->stripe[s].output_offset[pin] =
drivers/staging/media/ipu3/ipu3-css-params.c
1032
osys->stripe[s].crop_left[pin] = 0;
drivers/staging/media/ipu3/ipu3-css-params.c
1033
osys->stripe[s].output_offset[pin] =
drivers/staging/media/ipu3/ipu3-css-params.c
1035
osys->stripe[0].crop_left[pin]);
drivers/staging/media/ipu3/ipu3-css-params.c
1095
osys->stripe[s].buf_stride[pin] =
drivers/staging/media/ipu3/ipu3-css-params.c
1743
&scaler_chroma, acc->stripe.block_stripes))
drivers/staging/media/ipu3/ipu3-css-params.c
1757
acc->stripe.num_of_stripes = stripes;
drivers/staging/media/ipu3/ipu3-css-params.c
1758
acc->stripe.input_frame.width =
drivers/staging/media/ipu3/ipu3-css-params.c
1760
acc->stripe.input_frame.height =
drivers/staging/media/ipu3/ipu3-css-params.c
1762
acc->stripe.input_frame.bayer_order =
drivers/staging/media/ipu3/ipu3-css-params.c
1766
acc->stripe.bds_out_stripes[i].height =
drivers/staging/media/ipu3/ipu3-css-params.c
1768
acc->stripe.bds_out_stripes[0].offset = 0;
drivers/staging/media/ipu3/ipu3-css-params.c
1770
acc->stripe.bds_out_stripes[0].width =
drivers/staging/media/ipu3/ipu3-css-params.c
1774
acc->stripe.bds_out_stripes[0].width =
drivers/staging/media/ipu3/ipu3-css-params.c
1775
acc->stripe.bds_out_stripes[1].width =
drivers/staging/media/ipu3/ipu3-css-params.c
1784
acc->stripe.bds_out_stripes[0].width += f;
drivers/staging/media/ipu3/ipu3-css-params.c
1787
acc->stripe.bds_out_stripes[0].width += f;
drivers/staging/media/ipu3/ipu3-css-params.c
1788
acc->stripe.bds_out_stripes[1].width += f;
drivers/staging/media/ipu3/ipu3-css-params.c
1791
acc->stripe.bds_out_stripes[1].offset =
drivers/staging/media/ipu3/ipu3-css-params.c
1792
acc->stripe.bds_out_stripes[0].width - 2 * f;
drivers/staging/media/ipu3/ipu3-css-params.c
1795
acc->stripe.effective_stripes[0].height =
drivers/staging/media/ipu3/ipu3-css-params.c
1797
acc->stripe.effective_stripes[0].offset = 0;
drivers/staging/media/ipu3/ipu3-css-params.c
1798
acc->stripe.bds_out_stripes_no_overlap[0].height =
drivers/staging/media/ipu3/ipu3-css-params.c
1800
acc->stripe.bds_out_stripes_no_overlap[0].offset = 0;
drivers/staging/media/ipu3/ipu3-css-params.c
1801
acc->stripe.output_stripes[0].height =
drivers/staging/media/ipu3/ipu3-css-params.c
1803
acc->stripe.output_stripes[0].offset = 0;
drivers/staging/media/ipu3/ipu3-css-params.c
1805
acc->stripe.down_scaled_stripes[0].width =
drivers/staging/media/ipu3/ipu3-css-params.c
1807
acc->stripe.down_scaled_stripes[0].height =
drivers/staging/media/ipu3/ipu3-css-params.c
1809
acc->stripe.down_scaled_stripes[0].offset = 0;
drivers/staging/media/ipu3/ipu3-css-params.c
1811
acc->stripe.effective_stripes[0].width =
drivers/staging/media/ipu3/ipu3-css-params.c
1813
acc->stripe.bds_out_stripes_no_overlap[0].width =
drivers/staging/media/ipu3/ipu3-css-params.c
1816
acc->stripe.output_stripes[0].width =
drivers/staging/media/ipu3/ipu3-css-params.c
1823
acc->stripe.down_scaled_stripes[0] =
drivers/staging/media/ipu3/ipu3-css-params.c
1824
acc->stripe.bds_out_stripes[0];
drivers/staging/media/ipu3/ipu3-css-params.c
1825
acc->stripe.down_scaled_stripes[1] =
drivers/staging/media/ipu3/ipu3-css-params.c
1826
acc->stripe.bds_out_stripes[1];
drivers/staging/media/ipu3/ipu3-css-params.c
1828
acc->stripe.down_scaled_stripes[1].width +=
drivers/staging/media/ipu3/ipu3-css-params.c
1832
acc->stripe.effective_stripes[0].width = bds_ds *
drivers/staging/media/ipu3/ipu3-css-params.c
1833
acc->stripe.down_scaled_stripes[0].width /
drivers/staging/media/ipu3/ipu3-css-params.c
1835
acc->stripe.effective_stripes[1].width = bds_ds *
drivers/staging/media/ipu3/ipu3-css-params.c
1836
acc->stripe.down_scaled_stripes[1].width /
drivers/staging/media/ipu3/ipu3-css-params.c
1838
acc->stripe.effective_stripes[1].height =
drivers/staging/media/ipu3/ipu3-css-params.c
1840
acc->stripe.effective_stripes[1].offset = bds_ds *
drivers/staging/media/ipu3/ipu3-css-params.c
1841
acc->stripe.down_scaled_stripes[1].offset /
drivers/staging/media/ipu3/ipu3-css-params.c
1844
acc->stripe.bds_out_stripes_no_overlap[0].width =
drivers/staging/media/ipu3/ipu3-css-params.c
1845
acc->stripe.bds_out_stripes_no_overlap[1].offset =
drivers/staging/media/ipu3/ipu3-css-params.c
1847
acc->stripe.bds_out_stripes_no_overlap[1].width =
drivers/staging/media/ipu3/ipu3-css-params.c
1850
acc->stripe.bds_out_stripes_no_overlap[1].height =
drivers/staging/media/ipu3/ipu3-css-params.c
1853
acc->stripe.output_stripes[0].width =
drivers/staging/media/ipu3/ipu3-css-params.c
1854
acc->stripe.down_scaled_stripes[0].width - f;
drivers/staging/media/ipu3/ipu3-css-params.c
1855
acc->stripe.output_stripes[1].width =
drivers/staging/media/ipu3/ipu3-css-params.c
1856
acc->stripe.down_scaled_stripes[1].width - f;
drivers/staging/media/ipu3/ipu3-css-params.c
1857
acc->stripe.output_stripes[1].height =
drivers/staging/media/ipu3/ipu3-css-params.c
1859
acc->stripe.output_stripes[1].offset =
drivers/staging/media/ipu3/ipu3-css-params.c
1860
acc->stripe.output_stripes[0].width;
drivers/staging/media/ipu3/ipu3-css-params.c
1863
acc->stripe.output_system_in_frame_width =
drivers/staging/media/ipu3/ipu3-css-params.c
1865
acc->stripe.output_system_in_frame_height =
drivers/staging/media/ipu3/ipu3-css-params.c
1868
acc->stripe.effective_frame_width =
drivers/staging/media/ipu3/ipu3-css-params.c
1870
acc->stripe.bds_frame_width = css_pipe->rect[IPU3_CSS_RECT_BDS].width;
drivers/staging/media/ipu3/ipu3-css-params.c
1871
acc->stripe.out_frame_width =
drivers/staging/media/ipu3/ipu3-css-params.c
1873
acc->stripe.out_frame_height =
drivers/staging/media/ipu3/ipu3-css-params.c
1875
acc->stripe.gdc_in_buffer_width =
drivers/staging/media/ipu3/ipu3-css-params.c
1878
acc->stripe.gdc_in_buffer_height =
drivers/staging/media/ipu3/ipu3-css-params.c
1880
acc->stripe.gdc_in_buffer_offset_x = IMGU_GDC_BUF_X;
drivers/staging/media/ipu3/ipu3-css-params.c
1881
acc->stripe.gdc_in_buffer_offset_y = IMGU_GDC_BUF_Y;
drivers/staging/media/ipu3/ipu3-css-params.c
1882
acc->stripe.display_frame_width =
drivers/staging/media/ipu3/ipu3-css-params.c
1884
acc->stripe.display_frame_height =
drivers/staging/media/ipu3/ipu3-css-params.c
1886
acc->stripe.bds_aligned_frame_width =
drivers/staging/media/ipu3/ipu3-css-params.c
1891
acc->stripe.half_overlap_vectors =
drivers/staging/media/ipu3/ipu3-css-params.c
1894
acc->stripe.half_overlap_vectors = 0;
drivers/staging/media/ipu3/ipu3-css-params.c
1930
acc->stripe.down_scaled_stripes[i].width;
drivers/staging/media/ipu3/ipu3-css-params.c
1932
acc->stripe.down_scaled_stripes[i].width;
drivers/staging/media/ipu3/ipu3-css-params.c
1954
acc->stripe.bds_aligned_frame_width;
drivers/staging/media/ipu3/ipu3-css-params.c
1992
ofs_x += acc->stripe.effective_stripes[1].offset;
drivers/staging/media/ipu3/ipu3-css-params.c
2392
acc->stripe.down_scaled_stripes[1].offset + min_overlap) {
drivers/staging/media/ipu3/ipu3-css-params.c
2397
acc->stripe.bds_out_stripes[0].width - min_overlap) {
drivers/staging/media/ipu3/ipu3-css-params.c
2406
(acc->stripe.bds_out_stripes[0].width - min_overlap -
drivers/staging/media/ipu3/ipu3-css-params.c
2421
acc->stripe.down_scaled_stripes[1].offset) &
drivers/staging/media/ipu3/ipu3-css-params.c
2479
acc->stripe.down_scaled_stripes[1].offset) {
drivers/staging/media/ipu3/ipu3-css-params.c
2483
acc->stripe.bds_out_stripes[0].width) {
drivers/staging/media/ipu3/ipu3-css-params.c
2491
(acc->stripe.bds_out_stripes[0].width -
drivers/staging/media/ipu3/ipu3-css-params.c
2506
acc->stripe.down_scaled_stripes[1].offset) &
drivers/staging/media/ipu3/ipu3-css-params.c
2543
if (acc->stripe.bds_out_stripes[0].width <= min_overlap)
drivers/staging/media/ipu3/ipu3-css-params.c
2551
acc->stripe.bds_out_stripes[i].width;
drivers/staging/media/ipu3/ipu3-css-params.c
2555
acc->stripe.down_scaled_stripes[1].offset + min_overlap) {
drivers/staging/media/ipu3/ipu3-css-params.c
2561
acc->stripe.down_scaled_stripes[1].offset) &
drivers/staging/media/ipu3/ipu3-css-params.c
2569
acc->stripe.bds_out_stripes[0].width - min_overlap) {
drivers/staging/media/ipu3/ipu3-css-params.c
2577
(acc->stripe.bds_out_stripes[0].width - min_overlap -
drivers/staging/media/ipu3/ipu3-css-params.c
2592
acc->stripe.down_scaled_stripes[1].offset) &
drivers/staging/media/ipu3/ipu3-css-params.c
2636
acc->stripe.down_scaled_stripes[1].offset + min_overlap) {
drivers/staging/media/ipu3/ipu3-css-params.c
2642
acc->stripe.down_scaled_stripes[1].offset) &
drivers/staging/media/ipu3/ipu3-css-params.c
2651
acc->stripe.bds_out_stripes[0].width - min_overlap) {
drivers/staging/media/ipu3/ipu3-css-params.c
2658
(acc->stripe.bds_out_stripes[0].width -
drivers/staging/media/ipu3/ipu3-css-params.c
2672
acc->stripe.down_scaled_stripes[1].offset) &
fs/btrfs/accessors.h
194
offset += offsetof(struct btrfs_chunk, stripe);
fs/btrfs/bio.c
427
struct btrfs_io_stripe *stripe = bio->bi_private;
fs/btrfs/bio.c
428
struct btrfs_io_context *bioc = stripe->bioc;
fs/btrfs/bio.c
434
btrfs_log_dev_io_error(bio, stripe->dev);
fs/btrfs/bio.c
447
stripe->physical = bio->bi_iter.bi_sector << SECTOR_SHIFT;
fs/btrfs/bio.c
465
struct btrfs_io_stripe *stripe = bio->bi_private;
fs/btrfs/bio.c
468
atomic_inc(&stripe->bioc->error);
fs/btrfs/bio.c
469
btrfs_log_dev_io_error(bio, stripe->dev);
fs/btrfs/bio.c
471
stripe->physical = bio->bi_iter.bi_sector << SECTOR_SHIFT;
fs/btrfs/bio.c
475
bio_endio(stripe->bioc->orig_bio);
fs/btrfs/extent-tree.c
1384
static int do_discard_extent(struct btrfs_discard_stripe *stripe, u64 *bytes)
fs/btrfs/extent-tree.c
1386
struct btrfs_device *dev = stripe->dev;
fs/btrfs/extent-tree.c
1389
u64 phys = stripe->physical;
fs/btrfs/extent-tree.c
1390
u64 len = stripe->length;
fs/btrfs/extent-tree.c
1412
} else if (bdev_max_discard_sectors(stripe->dev->bdev)) {
fs/btrfs/extent-tree.c
1453
struct btrfs_discard_stripe *stripe = stripes + i;
fs/btrfs/extent-tree.c
1456
if (!stripe->dev->bdev) {
fs/btrfs/extent-tree.c
1462
&stripe->dev->dev_state))
fs/btrfs/extent-tree.c
1465
ret = do_discard_extent(stripe, &bytes);
fs/btrfs/print-tree.c
216
struct btrfs_stripe_extent *stripe)
fs/btrfs/print-tree.c
222
i, btrfs_raid_stride_devid(eb, &stripe->strides[i]),
fs/btrfs/print-tree.c
223
btrfs_raid_stride_physical(eb, &stripe->strides[i]));
fs/btrfs/raid-stripe-tree.c
365
u32 stripe_index, struct btrfs_io_stripe *stripe)
fs/btrfs/raid-stripe-tree.c
390
if (stripe->rst_search_commit_root) {
fs/btrfs/raid-stripe-tree.c
443
if (devid != stripe->dev->devid)
fs/btrfs/raid-stripe-tree.c
449
stripe->physical = physical + offset;
fs/btrfs/raid-stripe-tree.c
452
stripe->physical, devid);
fs/btrfs/raid-stripe-tree.c
462
if (ret && ret != -EIO && !stripe->rst_search_commit_root) {
fs/btrfs/raid-stripe-tree.c
465
logical, logical + *length, stripe->dev->devid,
fs/btrfs/raid-stripe-tree.h
28
u32 stripe_index, struct btrfs_io_stripe *stripe);
fs/btrfs/raid56.c
1246
struct btrfs_io_stripe *stripe;
fs/btrfs/raid56.c
1260
stripe = &rbio->bioc->stripes[stripe_nr];
fs/btrfs/raid56.c
1261
disk_start = stripe->physical + sector_nr * sectorsize;
fs/btrfs/raid56.c
1264
if (!stripe->dev->bdev) {
fs/btrfs/raid56.c
1288
last->bi_bdev == stripe->dev->bdev) {
fs/btrfs/raid56.c
1296
bio = bio_alloc(stripe->dev->bdev,
fs/btrfs/raid56.c
1413
int stripe;
fs/btrfs/raid56.c
1417
for (stripe = 0; stripe < rbio->nr_data; stripe++)
fs/btrfs/raid56.c
1418
pointers[stripe] = kmap_local_paddr(
fs/btrfs/raid56.c
1419
sector_paddr_in_rbio(rbio, stripe, sector_nr, step_nr, 0));
fs/btrfs/raid56.c
1422
pointers[stripe++] = kmap_local_paddr(rbio_pstripe_paddr(rbio, sector_nr, step_nr));
fs/btrfs/raid56.c
1429
pointers[stripe++] = kmap_local_paddr(
fs/btrfs/raid56.c
1439
for (stripe = stripe - 1; stripe >= 0; stripe--)
fs/btrfs/raid56.c
1440
kunmap_local(pointers[stripe]);
fs/btrfs/raid56.c
1464
int stripe;
fs/btrfs/raid56.c
1486
stripe = total_sector_nr / rbio->stripe_nsectors;
fs/btrfs/raid56.c
1493
if (stripe < rbio->nr_data) {
fs/btrfs/raid56.c
1494
paddrs = sector_paddrs_in_rbio(rbio, stripe, sectornr, 1);
fs/btrfs/raid56.c
1498
paddrs = rbio_stripe_paddrs(rbio, stripe, sectornr);
fs/btrfs/raid56.c
1501
ret = rbio_add_io_paddrs(rbio, bio_list, paddrs, stripe,
fs/btrfs/raid56.c
1521
stripe = total_sector_nr / rbio->stripe_nsectors;
fs/btrfs/raid56.c
1529
if (stripe != rbio->bioc->replace_stripe_src) {
fs/btrfs/raid56.c
1543
if (stripe < rbio->nr_data) {
fs/btrfs/raid56.c
1544
paddrs = sector_paddrs_in_rbio(rbio, stripe, sectornr, 1);
fs/btrfs/raid56.c
1548
paddrs = rbio_stripe_paddrs(rbio, stripe, sectornr);
fs/btrfs/raid56.c
2169
int stripe = total_sector_nr / rbio->stripe_nsectors;
fs/btrfs/raid56.c
2178
if (!rbio->bioc->stripes[stripe].dev->bdev ||
fs/btrfs/raid56.c
2188
paddrs = rbio_stripe_paddrs(rbio, stripe, sectornr);
fs/btrfs/raid56.c
2189
ret = rbio_add_io_paddrs(rbio, &bio_list, paddrs, stripe,
fs/btrfs/raid56.c
2386
int stripe = total_sector_nr / rbio->stripe_nsectors;
fs/btrfs/raid56.c
2390
paddrs = rbio_stripe_paddrs(rbio, stripe, sectornr);
fs/btrfs/raid56.c
2391
ret = rbio_add_io_paddrs(rbio, &bio_list, paddrs, stripe,
fs/btrfs/raid56.c
2663
for (int stripe = 0; stripe < nr_data; stripe++)
fs/btrfs/raid56.c
2664
pointers[stripe] = kmap_local_paddr(
fs/btrfs/raid56.c
2665
sector_paddr_in_rbio(rbio, stripe, sector_nr,
fs/btrfs/raid56.c
2686
for (int stripe = nr_data - 1; stripe >= 0; stripe--)
fs/btrfs/raid56.c
2687
kunmap_local(pointers[stripe]);
fs/btrfs/raid56.c
2827
static inline int is_data_stripe(struct btrfs_raid_bio *rbio, int stripe)
fs/btrfs/raid56.c
2829
if (stripe >= 0 && stripe < rbio->nr_data)
fs/btrfs/raid56.c
2928
int stripe = total_sector_nr / rbio->stripe_nsectors;
fs/btrfs/raid56.c
2940
paddrs = sector_paddrs_in_rbio(rbio, stripe, sectornr, 1);
fs/btrfs/raid56.c
2944
paddrs = rbio_stripe_paddrs(rbio, stripe, sectornr);
fs/btrfs/raid56.c
2949
if (test_bit(rbio_sector_index(rbio, stripe, sectornr),
fs/btrfs/raid56.c
2953
ret = rbio_add_io_paddrs(rbio, &bio_list, paddrs, stripe,
fs/btrfs/relocation.c
4687
btrfs_truncate_item(trans, path, offsetof(struct btrfs_chunk, stripe), 1);
fs/btrfs/scrub.c
1006
const unsigned long extent_bitmap = scrub_bitmap_read_has_extent(stripe);
fs/btrfs/scrub.c
1007
const unsigned long error_bitmap = scrub_bitmap_read_error(stripe);
fs/btrfs/scrub.c
1015
if (test_bit(SCRUB_STRIPE_FLAG_NO_REPORT, &stripe->state))
fs/btrfs/scrub.c
1024
if (!bitmap_empty(&errors->init_error_bitmap, stripe->nr_sectors)) {
fs/btrfs/scrub.c
1027
int stripe_index = stripe->mirror_num - 1;
fs/btrfs/scrub.c
1031
ASSERT(stripe->mirror_num >= 1, "stripe->mirror_num=%d", stripe->mirror_num);
fs/btrfs/scrub.c
1033
stripe->logical, &mapped_len, &bioc,
fs/btrfs/scrub.c
1047
for_each_set_bit(sector_nr, &extent_bitmap, stripe->nr_sectors) {
fs/btrfs/scrub.c
1050
if (scrub_bitmap_test_bit_is_metadata(stripe, sector_nr)) {
fs/btrfs/scrub.c
1054
if (!stripe->sectors[sector_nr].csum)
fs/btrfs/scrub.c
1076
stripe->logical, btrfs_dev_name(dev),
fs/btrfs/scrub.c
1081
stripe->logical, stripe->mirror_num);
fs/btrfs/scrub.c
1090
stripe->logical, btrfs_dev_name(dev),
fs/btrfs/scrub.c
1095
stripe->logical, stripe->mirror_num);
fs/btrfs/scrub.c
1098
if (scrub_bitmap_test_bit_io_error(stripe, sector_nr))
fs/btrfs/scrub.c
1101
stripe->logical, physical);
fs/btrfs/scrub.c
1102
if (scrub_bitmap_test_bit_csum_error(stripe, sector_nr))
fs/btrfs/scrub.c
1105
stripe->logical, physical);
fs/btrfs/scrub.c
1106
if (scrub_bitmap_test_bit_meta_error(stripe, sector_nr))
fs/btrfs/scrub.c
1109
stripe->logical, physical);
fs/btrfs/scrub.c
1110
if (scrub_bitmap_test_bit_meta_gen_error(stripe, sector_nr))
fs/btrfs/scrub.c
1113
stripe->logical, physical);
fs/btrfs/scrub.c
1118
btrfs_dev_stat_inc_and_print(stripe->dev, BTRFS_DEV_STAT_READ_ERRS);
fs/btrfs/scrub.c
1120
btrfs_dev_stat_inc_and_print(stripe->dev, BTRFS_DEV_STAT_CORRUPTION_ERRS);
fs/btrfs/scrub.c
1124
btrfs_dev_stat_inc_and_print(stripe->dev, BTRFS_DEV_STAT_GENERATION_ERRS);
fs/btrfs/scrub.c
1127
sctx->stat.data_extents_scrubbed += stripe->nr_data_extents;
fs/btrfs/scrub.c
1128
sctx->stat.tree_extents_scrubbed += stripe->nr_meta_extents;
fs/btrfs/scrub.c
1137
bitmap_weight(&error_bitmap, stripe->nr_sectors);
fs/btrfs/scrub.c
1142
static void scrub_write_sectors(struct scrub_ctx *sctx, struct scrub_stripe *stripe,
fs/btrfs/scrub.c
1160
struct scrub_stripe *stripe = container_of(work, struct scrub_stripe, work);
fs/btrfs/scrub.c
1161
struct scrub_ctx *sctx = stripe->sctx;
fs/btrfs/scrub.c
1164
int num_copies = btrfs_num_copies(fs_info, stripe->bg->start,
fs/btrfs/scrub.c
1165
stripe->bg->length);
fs/btrfs/scrub.c
1171
ASSERT(stripe->mirror_num >= 1, "stripe->mirror_num=%d", stripe->mirror_num);
fs/btrfs/scrub.c
1173
wait_scrub_stripe_io(stripe);
fs/btrfs/scrub.c
1174
scrub_verify_one_stripe(stripe, scrub_bitmap_read_has_extent(stripe));
fs/btrfs/scrub.c
1176
errors.init_error_bitmap = scrub_bitmap_read_error(stripe);
fs/btrfs/scrub.c
1177
errors.nr_io_errors = scrub_bitmap_weight_io_error(stripe);
fs/btrfs/scrub.c
1178
errors.nr_csum_errors = scrub_bitmap_weight_csum_error(stripe);
fs/btrfs/scrub.c
1179
errors.nr_meta_errors = scrub_bitmap_weight_meta_error(stripe);
fs/btrfs/scrub.c
1180
errors.nr_meta_gen_errors = scrub_bitmap_weight_meta_gen_error(stripe);
fs/btrfs/scrub.c
1182
if (bitmap_empty(&errors.init_error_bitmap, stripe->nr_sectors))
fs/btrfs/scrub.c
1191
for (mirror = calc_next_mirror(stripe->mirror_num, num_copies);
fs/btrfs/scrub.c
1192
mirror != stripe->mirror_num;
fs/btrfs/scrub.c
1194
const unsigned long old_error_bitmap = scrub_bitmap_read_error(stripe);
fs/btrfs/scrub.c
1196
scrub_stripe_submit_repair_read(stripe, mirror,
fs/btrfs/scrub.c
1198
wait_scrub_stripe_io(stripe);
fs/btrfs/scrub.c
1199
scrub_verify_one_stripe(stripe, old_error_bitmap);
fs/btrfs/scrub.c
1200
if (scrub_bitmap_empty_error(stripe))
fs/btrfs/scrub.c
1215
for (i = 0, mirror = stripe->mirror_num;
fs/btrfs/scrub.c
1218
const unsigned long old_error_bitmap = scrub_bitmap_read_error(stripe);
fs/btrfs/scrub.c
1220
scrub_stripe_submit_repair_read(stripe, mirror,
fs/btrfs/scrub.c
1222
wait_scrub_stripe_io(stripe);
fs/btrfs/scrub.c
1223
scrub_verify_one_stripe(stripe, old_error_bitmap);
fs/btrfs/scrub.c
1224
if (scrub_bitmap_empty_error(stripe))
fs/btrfs/scrub.c
1228
error = scrub_bitmap_read_error(stripe);
fs/btrfs/scrub.c
1234
stripe->nr_sectors);
fs/btrfs/scrub.c
1235
if (!sctx->readonly && !bitmap_empty(&repaired, stripe->nr_sectors)) {
fs/btrfs/scrub.c
1239
scrub_write_sectors(sctx, stripe, repaired, false);
fs/btrfs/scrub.c
1240
wait_scrub_stripe_io(stripe);
fs/btrfs/scrub.c
1244
scrub_stripe_report_errors(sctx, stripe, &errors);
fs/btrfs/scrub.c
1245
set_bit(SCRUB_STRIPE_FLAG_REPAIR_DONE, &stripe->state);
fs/btrfs/scrub.c
1246
wake_up(&stripe->repair_wait);
fs/btrfs/scrub.c
1251
struct scrub_stripe *stripe = bbio->private;
fs/btrfs/scrub.c
1253
int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio));
fs/btrfs/scrub.c
1258
ASSERT(sector_nr < stripe->nr_sectors);
fs/btrfs/scrub.c
1261
num_sectors = bio_size >> stripe->bg->fs_info->sectorsize_bits;
fs/btrfs/scrub.c
1264
scrub_bitmap_set_io_error(stripe, sector_nr, num_sectors);
fs/btrfs/scrub.c
1265
scrub_bitmap_set_error(stripe, sector_nr, num_sectors);
fs/btrfs/scrub.c
1267
scrub_bitmap_clear_io_error(stripe, sector_nr, num_sectors);
fs/btrfs/scrub.c
1270
if (atomic_dec_and_test(&stripe->pending_io)) {
fs/btrfs/scrub.c
1271
wake_up(&stripe->io_wait);
fs/btrfs/scrub.c
1272
INIT_WORK(&stripe->work, scrub_stripe_read_repair_worker);
fs/btrfs/scrub.c
1273
queue_work(stripe->bg->fs_info->scrub_workers, &stripe->work);
fs/btrfs/scrub.c
1279
struct scrub_stripe *stripe = bbio->private;
fs/btrfs/scrub.c
1280
struct btrfs_fs_info *fs_info = stripe->bg->fs_info;
fs/btrfs/scrub.c
1282
int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio));
fs/btrfs/scrub.c
1292
spin_lock_irqsave(&stripe->write_error_lock, flags);
fs/btrfs/scrub.c
1293
bitmap_set(&stripe->write_error_bitmap, sector_nr,
fs/btrfs/scrub.c
1295
spin_unlock_irqrestore(&stripe->write_error_lock, flags);
fs/btrfs/scrub.c
1297
btrfs_dev_stat_inc_and_print(stripe->dev,
fs/btrfs/scrub.c
1302
if (atomic_dec_and_test(&stripe->pending_io))
fs/btrfs/scrub.c
1303
wake_up(&stripe->io_wait);
fs/btrfs/scrub.c
1307
struct scrub_stripe *stripe,
fs/btrfs/scrub.c
1313
stripe->logical;
fs/btrfs/scrub.c
1315
fill_writer_pointer_gap(sctx, stripe->physical + bio_off);
fs/btrfs/scrub.c
1316
atomic_inc(&stripe->pending_io);
fs/btrfs/scrub.c
1317
btrfs_submit_repair_write(bbio, stripe->mirror_num, dev_replace);
fs/btrfs/scrub.c
1324
wait_scrub_stripe_io(stripe);
fs/btrfs/scrub.c
1331
&stripe->write_error_bitmap))
fs/btrfs/scrub.c
1348
static void scrub_write_sectors(struct scrub_ctx *sctx, struct scrub_stripe *stripe,
fs/btrfs/scrub.c
1351
struct btrfs_fs_info *fs_info = stripe->bg->fs_info;
fs/btrfs/scrub.c
1355
for_each_set_bit(sector_nr, &write_bitmap, stripe->nr_sectors) {
fs/btrfs/scrub.c
1357
ASSERT(scrub_bitmap_test_bit_has_extent(stripe, sector_nr));
fs/btrfs/scrub.c
1361
scrub_submit_write_bio(sctx, stripe, bbio, dev_replace);
fs/btrfs/scrub.c
1365
bbio = alloc_scrub_bbio(fs_info, stripe->nr_sectors, REQ_OP_WRITE,
fs/btrfs/scrub.c
1366
stripe->logical + (sector_nr << fs_info->sectorsize_bits),
fs/btrfs/scrub.c
1367
scrub_write_endio, stripe);
fs/btrfs/scrub.c
1368
scrub_bio_add_sector(bbio, stripe, sector_nr);
fs/btrfs/scrub.c
1371
scrub_submit_write_bio(sctx, stripe, bbio, dev_replace);
fs/btrfs/scrub.c
1627
struct scrub_stripe *stripe,
fs/btrfs/scrub.c
1631
for (u64 cur_logical = max(stripe->logical, extent_start);
fs/btrfs/scrub.c
1632
cur_logical < min(stripe->logical + BTRFS_STRIPE_LEN,
fs/btrfs/scrub.c
1635
const int nr_sector = (cur_logical - stripe->logical) >>
fs/btrfs/scrub.c
1638
&stripe->sectors[nr_sector];
fs/btrfs/scrub.c
1640
scrub_bitmap_set_bit_has_extent(stripe, nr_sector);
fs/btrfs/scrub.c
1642
scrub_bitmap_set_bit_is_metadata(stripe, nr_sector);
fs/btrfs/scrub.c
1648
static void scrub_stripe_reset_bitmaps(struct scrub_stripe *stripe)
fs/btrfs/scrub.c
1650
ASSERT(stripe->nr_sectors);
fs/btrfs/scrub.c
1651
bitmap_zero(stripe->bitmaps, scrub_bitmap_nr_last * stripe->nr_sectors);
fs/btrfs/scrub.c
1667
struct scrub_stripe *stripe)
fs/btrfs/scrub.c
1685
memset(stripe->sectors, 0, sizeof(struct scrub_sector_verification) *
fs/btrfs/scrub.c
1686
stripe->nr_sectors);
fs/btrfs/scrub.c
1687
scrub_stripe_reset_bitmaps(stripe);
fs/btrfs/scrub.c
1702
stripe->nr_meta_extents++;
fs/btrfs/scrub.c
1704
stripe->nr_data_extents++;
fs/btrfs/scrub.c
1713
stripe->logical = round_down(cur_logical - bg->start, BTRFS_STRIPE_LEN) +
fs/btrfs/scrub.c
1715
stripe->physical = physical + stripe->logical - logical_start;
fs/btrfs/scrub.c
1716
stripe->dev = dev;
fs/btrfs/scrub.c
1717
stripe->bg = bg;
fs/btrfs/scrub.c
1718
stripe->mirror_num = mirror_num;
fs/btrfs/scrub.c
1719
stripe_end = stripe->logical + BTRFS_STRIPE_LEN - 1;
fs/btrfs/scrub.c
1722
fill_one_extent_info(fs_info, stripe, extent_start, extent_len,
fs/btrfs/scrub.c
1739
stripe->nr_meta_extents++;
fs/btrfs/scrub.c
1741
stripe->nr_data_extents++;
fs/btrfs/scrub.c
1742
fill_one_extent_info(fs_info, stripe, extent_start, extent_len,
fs/btrfs/scrub.c
1753
ASSERT(stripe->csums);
fs/btrfs/scrub.c
1762
stripe->logical, stripe_end,
fs/btrfs/scrub.c
1763
stripe->csums, &csum_bitmap);
fs/btrfs/scrub.c
1769
for_each_set_bit(sector_nr, &csum_bitmap, stripe->nr_sectors) {
fs/btrfs/scrub.c
1770
stripe->sectors[sector_nr].csum = stripe->csums +
fs/btrfs/scrub.c
1774
set_bit(SCRUB_STRIPE_FLAG_INITIALIZED, &stripe->state);
fs/btrfs/scrub.c
1779
static void scrub_reset_stripe(struct scrub_stripe *stripe)
fs/btrfs/scrub.c
1781
scrub_stripe_reset_bitmaps(stripe);
fs/btrfs/scrub.c
1783
stripe->nr_meta_extents = 0;
fs/btrfs/scrub.c
1784
stripe->nr_data_extents = 0;
fs/btrfs/scrub.c
1785
stripe->state = 0;
fs/btrfs/scrub.c
1787
for (int i = 0; i < stripe->nr_sectors; i++) {
fs/btrfs/scrub.c
1788
stripe->sectors[i].csum = NULL;
fs/btrfs/scrub.c
1789
stripe->sectors[i].generation = 0;
fs/btrfs/scrub.c
1793
static u32 stripe_length(const struct scrub_stripe *stripe)
fs/btrfs/scrub.c
1795
ASSERT(stripe->bg);
fs/btrfs/scrub.c
1798
stripe->bg->start + stripe->bg->length - stripe->logical);
fs/btrfs/scrub.c
1801
static void scrub_submit_extent_sector_read(struct scrub_stripe *stripe)
fs/btrfs/scrub.c
1803
struct btrfs_fs_info *fs_info = stripe->bg->fs_info;
fs/btrfs/scrub.c
1805
unsigned int nr_sectors = stripe_length(stripe) >> fs_info->sectorsize_bits;
fs/btrfs/scrub.c
1806
const unsigned long has_extent = scrub_bitmap_read_has_extent(stripe);
fs/btrfs/scrub.c
1808
int mirror = stripe->mirror_num;
fs/btrfs/scrub.c
1811
atomic_inc(&stripe->pending_io);
fs/btrfs/scrub.c
1813
for_each_set_bit(i, &has_extent, stripe->nr_sectors) {
fs/btrfs/scrub.c
1823
atomic_inc(&stripe->pending_io);
fs/btrfs/scrub.c
1831
const u64 logical = stripe->logical +
fs/btrfs/scrub.c
1854
scrub_bitmap_set_bit_io_error(stripe, i);
fs/btrfs/scrub.c
1855
scrub_bitmap_set_bit_error(stripe, i);
fs/btrfs/scrub.c
1860
bbio = alloc_scrub_bbio(fs_info, stripe->nr_sectors, REQ_OP_READ,
fs/btrfs/scrub.c
1861
logical, scrub_read_endio, stripe);
fs/btrfs/scrub.c
1864
scrub_bio_add_sector(bbio, stripe, i);
fs/btrfs/scrub.c
1869
atomic_inc(&stripe->pending_io);
fs/btrfs/scrub.c
1873
if (atomic_dec_and_test(&stripe->pending_io)) {
fs/btrfs/scrub.c
1874
wake_up(&stripe->io_wait);
fs/btrfs/scrub.c
1875
INIT_WORK(&stripe->work, scrub_stripe_read_repair_worker);
fs/btrfs/scrub.c
1876
queue_work(stripe->bg->fs_info->scrub_workers, &stripe->work);
fs/btrfs/scrub.c
1881
struct scrub_stripe *stripe)
fs/btrfs/scrub.c
1886
unsigned int nr_sectors = stripe_length(stripe) >> fs_info->sectorsize_bits;
fs/btrfs/scrub.c
1887
int mirror = stripe->mirror_num;
fs/btrfs/scrub.c
1889
ASSERT(stripe->bg);
fs/btrfs/scrub.c
1890
ASSERT(stripe->mirror_num > 0);
fs/btrfs/scrub.c
1891
ASSERT(test_bit(SCRUB_STRIPE_FLAG_INITIALIZED, &stripe->state));
fs/btrfs/scrub.c
1893
if (btrfs_need_stripe_tree_update(fs_info, stripe->bg->flags)) {
fs/btrfs/scrub.c
1894
scrub_submit_extent_sector_read(stripe);
fs/btrfs/scrub.c
1899
stripe->logical, scrub_read_endio, stripe);
fs/btrfs/scrub.c
1902
scrub_bio_add_sector(bbio, stripe, cur);
fs/btrfs/scrub.c
1903
atomic_inc(&stripe->pending_io);
fs/btrfs/scrub.c
1912
!stripe->dev->bdev)) {
fs/btrfs/scrub.c
1913
int num_copies = btrfs_num_copies(fs_info, stripe->bg->start,
fs/btrfs/scrub.c
1914
stripe->bg->length);
fs/btrfs/scrub.c
1921
static bool stripe_has_metadata_error(struct scrub_stripe *stripe)
fs/btrfs/scrub.c
1923
const unsigned long error = scrub_bitmap_read_error(stripe);
fs/btrfs/scrub.c
1926
for_each_set_bit(i, &error, stripe->nr_sectors) {
fs/btrfs/scrub.c
1927
if (scrub_bitmap_test_bit_is_metadata(stripe, i)) {
fs/btrfs/scrub.c
1928
struct btrfs_fs_info *fs_info = stripe->bg->fs_info;
fs/btrfs/scrub.c
1932
stripe->logical,
fs/btrfs/scrub.c
1933
stripe->logical + (i << fs_info->sectorsize_bits));
fs/btrfs/scrub.c
1953
struct scrub_stripe *stripe = &sctx->stripes[first_slot + i];
fs/btrfs/scrub.c
1956
ASSERT(test_bit(SCRUB_STRIPE_FLAG_INITIALIZED, &stripe->state));
fs/btrfs/scrub.c
1957
scrub_submit_initial_read(sctx, stripe);
fs/btrfs/scrub.c
1965
struct scrub_stripe *stripe;
fs/btrfs/scrub.c
1982
stripe = &sctx->stripes[i];
fs/btrfs/scrub.c
1984
wait_event(stripe->repair_wait,
fs/btrfs/scrub.c
1985
test_bit(SCRUB_STRIPE_FLAG_REPAIR_DONE, &stripe->state));
fs/btrfs/scrub.c
2005
stripe = &sctx->stripes[i];
fs/btrfs/scrub.c
2007
ASSERT(stripe->dev == fs_info->dev_replace.srcdev);
fs/btrfs/scrub.c
2009
has_extent = scrub_bitmap_read_has_extent(stripe);
fs/btrfs/scrub.c
2010
error = scrub_bitmap_read_error(stripe);
fs/btrfs/scrub.c
2011
bitmap_andnot(&good, &has_extent, &error, stripe->nr_sectors);
fs/btrfs/scrub.c
2012
scrub_write_sectors(sctx, stripe, good, true);
fs/btrfs/scrub.c
2018
stripe = &sctx->stripes[i];
fs/btrfs/scrub.c
2020
wait_scrub_stripe_io(stripe);
fs/btrfs/scrub.c
2022
sctx->stat.last_physical = stripe->physical + stripe_length(stripe);
fs/btrfs/scrub.c
2024
scrub_reset_stripe(stripe);
fs/btrfs/scrub.c
2041
struct scrub_stripe *stripe;
fs/btrfs/scrub.c
2053
stripe = &sctx->stripes[sctx->cur_stripe];
fs/btrfs/scrub.c
2054
scrub_reset_stripe(stripe);
fs/btrfs/scrub.c
2057
mirror_num, logical, length, stripe);
fs/btrfs/scrub.c
2061
*found_logical_ret = stripe->logical;
fs/btrfs/scrub.c
2152
struct scrub_stripe *stripe = &sctx->raid56_data_stripes[i];
fs/btrfs/scrub.c
2154
raid56_parity_cache_data_folios(rbio, stripe->folios,
fs/btrfs/scrub.c
2175
struct scrub_stripe *stripe;
fs/btrfs/scrub.c
2212
stripe = &sctx->raid56_data_stripes[i];
fs/btrfs/scrub.c
2219
scrub_reset_stripe(stripe);
fs/btrfs/scrub.c
2220
set_bit(SCRUB_STRIPE_FLAG_NO_REPORT, &stripe->state);
fs/btrfs/scrub.c
2224
BTRFS_STRIPE_LEN, stripe);
fs/btrfs/scrub.c
2232
stripe->logical = full_stripe_start +
fs/btrfs/scrub.c
2234
stripe->dev = map->stripes[stripe_index].dev;
fs/btrfs/scrub.c
2235
stripe->mirror_num = 1;
fs/btrfs/scrub.c
2236
set_bit(SCRUB_STRIPE_FLAG_INITIALIZED, &stripe->state);
fs/btrfs/scrub.c
2242
stripe = &sctx->raid56_data_stripes[i];
fs/btrfs/scrub.c
2243
if (!scrub_bitmap_empty_has_extent(stripe)) {
fs/btrfs/scrub.c
2252
stripe = &sctx->raid56_data_stripes[i];
fs/btrfs/scrub.c
2253
scrub_submit_initial_read(sctx, stripe);
fs/btrfs/scrub.c
2256
stripe = &sctx->raid56_data_stripes[i];
fs/btrfs/scrub.c
2258
wait_event(stripe->repair_wait,
fs/btrfs/scrub.c
2259
test_bit(SCRUB_STRIPE_FLAG_REPAIR_DONE, &stripe->state));
fs/btrfs/scrub.c
2275
stripe = &sctx->raid56_data_stripes[i];
fs/btrfs/scrub.c
2277
error = scrub_bitmap_read_error(stripe);
fs/btrfs/scrub.c
2278
has_extent = scrub_bitmap_read_has_extent(stripe);
fs/btrfs/scrub.c
2284
bitmap_and(&error, &error, &has_extent, stripe->nr_sectors);
fs/btrfs/scrub.c
2285
if (unlikely(!bitmap_empty(&error, stripe->nr_sectors))) {
fs/btrfs/scrub.c
2288
full_stripe_start, i, stripe->nr_sectors,
fs/btrfs/scrub.c
2293
stripe->nr_sectors);
fs/btrfs/scrub.c
230
#define scrub_calc_start_bit(stripe, name, block_nr) \
fs/btrfs/scrub.c
234
ASSERT(block_nr < stripe->nr_sectors, \
fs/btrfs/scrub.c
235
"nr_sectors=%u block_nr=%u", stripe->nr_sectors, block_nr); \
fs/btrfs/scrub.c
236
__start_bit = scrub_bitmap_nr_##name * stripe->nr_sectors + block_nr; \
fs/btrfs/scrub.c
241
static inline void scrub_bitmap_set_##name(struct scrub_stripe *stripe, \
fs/btrfs/scrub.c
245
const unsigned int start_bit = scrub_calc_start_bit(stripe, \
fs/btrfs/scrub.c
248
bitmap_set(stripe->bitmaps, start_bit, nr_blocks); \
fs/btrfs/scrub.c
250
static inline void scrub_bitmap_clear_##name(struct scrub_stripe *stripe, \
fs/btrfs/scrub.c
254
const unsigned int start_bit = scrub_calc_start_bit(stripe, name, \
fs/btrfs/scrub.c
257
bitmap_clear(stripe->bitmaps, start_bit, nr_blocks); \
fs/btrfs/scrub.c
259
static inline bool scrub_bitmap_test_bit_##name(struct scrub_stripe *stripe, \
fs/btrfs/scrub.c
262
const unsigned int start_bit = scrub_calc_start_bit(stripe, name, \
fs/btrfs/scrub.c
265
return test_bit(start_bit, stripe->bitmaps); \
fs/btrfs/scrub.c
267
static inline void scrub_bitmap_set_bit_##name(struct scrub_stripe *stripe, \
fs/btrfs/scrub.c
270
const unsigned int start_bit = scrub_calc_start_bit(stripe, name, \
fs/btrfs/scrub.c
273
set_bit(start_bit, stripe->bitmaps); \
fs/btrfs/scrub.c
275
static inline void scrub_bitmap_clear_bit_##name(struct scrub_stripe *stripe, \
fs/btrfs/scrub.c
278
const unsigned int start_bit = scrub_calc_start_bit(stripe, name, \
fs/btrfs/scrub.c
281
clear_bit(start_bit, stripe->bitmaps); \
fs/btrfs/scrub.c
283
static inline unsigned long scrub_bitmap_read_##name(struct scrub_stripe *stripe) \
fs/btrfs/scrub.c
285
const unsigned int nr_blocks = stripe->nr_sectors; \
fs/btrfs/scrub.c
291
return bitmap_read(stripe->bitmaps, nr_blocks * scrub_bitmap_nr_##name, \
fs/btrfs/scrub.c
292
stripe->nr_sectors); \
fs/btrfs/scrub.c
294
static inline bool scrub_bitmap_empty_##name(struct scrub_stripe *stripe) \
fs/btrfs/scrub.c
296
unsigned long bitmap = scrub_bitmap_read_##name(stripe); \
fs/btrfs/scrub.c
298
return bitmap_empty(&bitmap, stripe->nr_sectors); \
fs/btrfs/scrub.c
300
static inline unsigned int scrub_bitmap_weight_##name(struct scrub_stripe *stripe) \
fs/btrfs/scrub.c
302
unsigned long bitmap = scrub_bitmap_read_##name(stripe); \
fs/btrfs/scrub.c
304
return bitmap_weight(&bitmap, stripe->nr_sectors); \
fs/btrfs/scrub.c
336
static void release_scrub_stripe(struct scrub_stripe *stripe)
fs/btrfs/scrub.c
338
if (!stripe)
fs/btrfs/scrub.c
342
if (stripe->folios[i])
fs/btrfs/scrub.c
343
folio_put(stripe->folios[i]);
fs/btrfs/scrub.c
344
stripe->folios[i] = NULL;
fs/btrfs/scrub.c
346
kfree(stripe->sectors);
fs/btrfs/scrub.c
347
kfree(stripe->csums);
fs/btrfs/scrub.c
348
stripe->sectors = NULL;
fs/btrfs/scrub.c
349
stripe->csums = NULL;
fs/btrfs/scrub.c
350
stripe->sctx = NULL;
fs/btrfs/scrub.c
351
stripe->state = 0;
fs/btrfs/scrub.c
355
struct scrub_stripe *stripe)
fs/btrfs/scrub.c
360
memset(stripe, 0, sizeof(*stripe));
fs/btrfs/scrub.c
362
stripe->nr_sectors = BTRFS_STRIPE_LEN >> fs_info->sectorsize_bits;
fs/btrfs/scrub.c
363
stripe->state = 0;
fs/btrfs/scrub.c
365
init_waitqueue_head(&stripe->io_wait);
fs/btrfs/scrub.c
366
init_waitqueue_head(&stripe->repair_wait);
fs/btrfs/scrub.c
367
atomic_set(&stripe->pending_io, 0);
fs/btrfs/scrub.c
368
spin_lock_init(&stripe->write_error_lock);
fs/btrfs/scrub.c
372
fs_info->block_min_order, stripe->folios);
fs/btrfs/scrub.c
376
stripe->sectors = kzalloc_objs(struct scrub_sector_verification,
fs/btrfs/scrub.c
377
stripe->nr_sectors);
fs/btrfs/scrub.c
378
if (!stripe->sectors)
fs/btrfs/scrub.c
381
stripe->csums = kcalloc(BTRFS_STRIPE_LEN >> fs_info->sectorsize_bits,
fs/btrfs/scrub.c
383
if (!stripe->csums)
fs/btrfs/scrub.c
387
release_scrub_stripe(stripe);
fs/btrfs/scrub.c
391
static void wait_scrub_stripe_io(struct scrub_stripe *stripe)
fs/btrfs/scrub.c
393
wait_event(stripe->io_wait, atomic_read(&stripe->pending_io) == 0);
fs/btrfs/scrub.c
684
static void *scrub_stripe_get_kaddr(struct scrub_stripe *stripe, int sector_nr)
fs/btrfs/scrub.c
686
struct btrfs_fs_info *fs_info = stripe->bg->fs_info;
fs/btrfs/scrub.c
689
const struct folio *folio = stripe->folios[offset >> min_folio_shift];
fs/btrfs/scrub.c
697
static phys_addr_t scrub_stripe_get_paddr(struct scrub_stripe *stripe, int sector_nr)
fs/btrfs/scrub.c
699
struct btrfs_fs_info *fs_info = stripe->bg->fs_info;
fs/btrfs/scrub.c
702
const struct folio *folio = stripe->folios[offset >> min_folio_shift];
fs/btrfs/scrub.c
712
static void scrub_verify_one_metadata(struct scrub_stripe *stripe, int sector_nr)
fs/btrfs/scrub.c
714
struct btrfs_fs_info *fs_info = stripe->bg->fs_info;
fs/btrfs/scrub.c
716
const u64 logical = stripe->logical + (sector_nr << fs_info->sectorsize_bits);
fs/btrfs/scrub.c
717
void *first_kaddr = scrub_stripe_get_kaddr(stripe, sector_nr);
fs/btrfs/scrub.c
731
scrub_bitmap_set_meta_error(stripe, sector_nr, sectors_per_tree);
fs/btrfs/scrub.c
732
scrub_bitmap_set_error(stripe, sector_nr, sectors_per_tree);
fs/btrfs/scrub.c
735
logical, stripe->mirror_num,
fs/btrfs/scrub.c
741
scrub_bitmap_set_meta_error(stripe, sector_nr, sectors_per_tree);
fs/btrfs/scrub.c
742
scrub_bitmap_set_error(stripe, sector_nr, sectors_per_tree);
fs/btrfs/scrub.c
745
logical, stripe->mirror_num,
fs/btrfs/scrub.c
751
scrub_bitmap_set_meta_error(stripe, sector_nr, sectors_per_tree);
fs/btrfs/scrub.c
752
scrub_bitmap_set_error(stripe, sector_nr, sectors_per_tree);
fs/btrfs/scrub.c
755
logical, stripe->mirror_num,
fs/btrfs/scrub.c
766
btrfs_csum_update(&csum, scrub_stripe_get_kaddr(stripe, i),
fs/btrfs/scrub.c
772
scrub_bitmap_set_meta_error(stripe, sector_nr, sectors_per_tree);
fs/btrfs/scrub.c
773
scrub_bitmap_set_error(stripe, sector_nr, sectors_per_tree);
fs/btrfs/scrub.c
776
logical, stripe->mirror_num,
fs/btrfs/scrub.c
781
if (stripe->sectors[sector_nr].generation !=
fs/btrfs/scrub.c
783
scrub_bitmap_set_meta_gen_error(stripe, sector_nr, sectors_per_tree);
fs/btrfs/scrub.c
784
scrub_bitmap_set_error(stripe, sector_nr, sectors_per_tree);
fs/btrfs/scrub.c
787
logical, stripe->mirror_num,
fs/btrfs/scrub.c
789
stripe->sectors[sector_nr].generation);
fs/btrfs/scrub.c
792
scrub_bitmap_clear_error(stripe, sector_nr, sectors_per_tree);
fs/btrfs/scrub.c
793
scrub_bitmap_clear_csum_error(stripe, sector_nr, sectors_per_tree);
fs/btrfs/scrub.c
794
scrub_bitmap_clear_meta_error(stripe, sector_nr, sectors_per_tree);
fs/btrfs/scrub.c
795
scrub_bitmap_clear_meta_gen_error(stripe, sector_nr, sectors_per_tree);
fs/btrfs/scrub.c
798
static void scrub_verify_one_sector(struct scrub_stripe *stripe, int sector_nr)
fs/btrfs/scrub.c
800
struct btrfs_fs_info *fs_info = stripe->bg->fs_info;
fs/btrfs/scrub.c
801
struct scrub_sector_verification *sector = &stripe->sectors[sector_nr];
fs/btrfs/scrub.c
803
phys_addr_t paddr = scrub_stripe_get_paddr(stripe, sector_nr);
fs/btrfs/scrub.c
807
ASSERT(sector_nr >= 0 && sector_nr < stripe->nr_sectors);
fs/btrfs/scrub.c
810
if (!scrub_bitmap_test_bit_has_extent(stripe, sector_nr))
fs/btrfs/scrub.c
814
if (scrub_bitmap_test_bit_io_error(stripe, sector_nr))
fs/btrfs/scrub.c
818
if (scrub_bitmap_test_bit_is_metadata(stripe, sector_nr)) {
fs/btrfs/scrub.c
827
if (unlikely(sector_nr + sectors_per_tree > stripe->nr_sectors)) {
fs/btrfs/scrub.c
830
stripe->logical +
fs/btrfs/scrub.c
832
stripe->logical);
fs/btrfs/scrub.c
835
scrub_verify_one_metadata(stripe, sector_nr);
fs/btrfs/scrub.c
844
scrub_bitmap_clear_bit_error(stripe, sector_nr);
fs/btrfs/scrub.c
850
scrub_bitmap_set_bit_csum_error(stripe, sector_nr);
fs/btrfs/scrub.c
851
scrub_bitmap_set_bit_error(stripe, sector_nr);
fs/btrfs/scrub.c
853
scrub_bitmap_clear_bit_csum_error(stripe, sector_nr);
fs/btrfs/scrub.c
854
scrub_bitmap_clear_bit_error(stripe, sector_nr);
fs/btrfs/scrub.c
859
static void scrub_verify_one_stripe(struct scrub_stripe *stripe, unsigned long bitmap)
fs/btrfs/scrub.c
861
struct btrfs_fs_info *fs_info = stripe->bg->fs_info;
fs/btrfs/scrub.c
865
for_each_set_bit(sector_nr, &bitmap, stripe->nr_sectors) {
fs/btrfs/scrub.c
866
scrub_verify_one_sector(stripe, sector_nr);
fs/btrfs/scrub.c
867
if (scrub_bitmap_test_bit_is_metadata(stripe, sector_nr))
fs/btrfs/scrub.c
872
static int calc_sector_number(struct scrub_stripe *stripe, struct bio_vec *first_bvec)
fs/btrfs/scrub.c
876
for (i = 0; i < stripe->nr_sectors; i++) {
fs/btrfs/scrub.c
877
if (scrub_stripe_get_kaddr(stripe, i) == bvec_virt(first_bvec))
fs/btrfs/scrub.c
880
ASSERT(i < stripe->nr_sectors);
fs/btrfs/scrub.c
892
struct scrub_stripe *stripe = bbio->private;
fs/btrfs/scrub.c
893
struct btrfs_fs_info *fs_info = stripe->bg->fs_info;
fs/btrfs/scrub.c
895
int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio));
fs/btrfs/scrub.c
899
ASSERT(sector_nr < stripe->nr_sectors);
fs/btrfs/scrub.c
905
scrub_bitmap_set_io_error(stripe, sector_nr,
fs/btrfs/scrub.c
907
scrub_bitmap_set_error(stripe, sector_nr,
fs/btrfs/scrub.c
910
scrub_bitmap_clear_io_error(stripe, sector_nr,
fs/btrfs/scrub.c
914
if (atomic_dec_and_test(&stripe->pending_io))
fs/btrfs/scrub.c
915
wake_up(&stripe->io_wait);
fs/btrfs/scrub.c
924
static void scrub_bio_add_sector(struct btrfs_bio *bbio, struct scrub_stripe *stripe,
fs/btrfs/scrub.c
928
void *kaddr = scrub_stripe_get_kaddr(stripe, sector_nr);
fs/btrfs/scrub.c
958
static void scrub_stripe_submit_repair_read(struct scrub_stripe *stripe,
fs/btrfs/scrub.c
961
struct btrfs_fs_info *fs_info = stripe->bg->fs_info;
fs/btrfs/scrub.c
963
const unsigned long old_error_bitmap = scrub_bitmap_read_error(stripe);
fs/btrfs/scrub.c
966
ASSERT(stripe->mirror_num >= 1, "stripe->mirror_num=%d", stripe->mirror_num);
fs/btrfs/scrub.c
967
ASSERT(atomic_read(&stripe->pending_io) == 0,
fs/btrfs/scrub.c
968
"atomic_read(&stripe->pending_io)=%d", atomic_read(&stripe->pending_io));
fs/btrfs/scrub.c
970
for_each_set_bit(i, &old_error_bitmap, stripe->nr_sectors) {
fs/btrfs/scrub.c
975
atomic_inc(&stripe->pending_io);
fs/btrfs/scrub.c
978
wait_scrub_stripe_io(stripe);
fs/btrfs/scrub.c
983
bbio = alloc_scrub_bbio(fs_info, stripe->nr_sectors, REQ_OP_READ,
fs/btrfs/scrub.c
984
stripe->logical + (i << fs_info->sectorsize_bits),
fs/btrfs/scrub.c
985
scrub_repair_read_endio, stripe);
fs/btrfs/scrub.c
987
scrub_bio_add_sector(bbio, stripe, i);
fs/btrfs/scrub.c
991
atomic_inc(&stripe->pending_io);
fs/btrfs/scrub.c
994
wait_scrub_stripe_io(stripe);
fs/btrfs/scrub.c
999
struct scrub_stripe *stripe,
fs/btrfs/tests/raid-stripe-tree-tests.c
1018
struct btrfs_io_stripe *stripe = &bioc->stripes[i];
fs/btrfs/tests/raid-stripe-tree-tests.c
1020
stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i);
fs/btrfs/tests/raid-stripe-tree-tests.c
1021
if (!stripe->dev) {
fs/btrfs/tests/raid-stripe-tree-tests.c
1027
stripe->physical = logical + i * SZ_1G;
fs/btrfs/tests/raid-stripe-tree-tests.c
110
struct btrfs_io_stripe *stripe = &bioc->stripes[i];
fs/btrfs/tests/raid-stripe-tree-tests.c
112
stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i);
fs/btrfs/tests/raid-stripe-tree-tests.c
113
if (!stripe->dev) {
fs/btrfs/tests/raid-stripe-tree-tests.c
119
stripe->physical = logical3 + i * SZ_1G;
fs/btrfs/tests/raid-stripe-tree-tests.c
244
struct btrfs_io_stripe *stripe = &bioc->stripes[i];
fs/btrfs/tests/raid-stripe-tree-tests.c
246
stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i);
fs/btrfs/tests/raid-stripe-tree-tests.c
247
if (!stripe->dev) {
fs/btrfs/tests/raid-stripe-tree-tests.c
253
stripe->physical = logical1 + i * SZ_1G;
fs/btrfs/tests/raid-stripe-tree-tests.c
265
struct btrfs_io_stripe *stripe = &bioc->stripes[i];
fs/btrfs/tests/raid-stripe-tree-tests.c
267
stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i);
fs/btrfs/tests/raid-stripe-tree-tests.c
268
if (!stripe->dev) {
fs/btrfs/tests/raid-stripe-tree-tests.c
274
stripe->physical = logical2 + i * SZ_1G;
fs/btrfs/tests/raid-stripe-tree-tests.c
286
struct btrfs_io_stripe *stripe = &bioc->stripes[i];
fs/btrfs/tests/raid-stripe-tree-tests.c
288
stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i);
fs/btrfs/tests/raid-stripe-tree-tests.c
289
if (!stripe->dev) {
fs/btrfs/tests/raid-stripe-tree-tests.c
295
stripe->physical = logical3 + i * SZ_1G;
fs/btrfs/tests/raid-stripe-tree-tests.c
387
struct btrfs_io_stripe *stripe = &bioc->stripes[i];
fs/btrfs/tests/raid-stripe-tree-tests.c
389
stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i);
fs/btrfs/tests/raid-stripe-tree-tests.c
390
if (!stripe->dev) {
fs/btrfs/tests/raid-stripe-tree-tests.c
396
stripe->physical = logical1 + i * SZ_1G;
fs/btrfs/tests/raid-stripe-tree-tests.c
527
struct btrfs_io_stripe *stripe = &bioc->stripes[i];
fs/btrfs/tests/raid-stripe-tree-tests.c
529
stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i);
fs/btrfs/tests/raid-stripe-tree-tests.c
530
if (!stripe->dev) {
fs/btrfs/tests/raid-stripe-tree-tests.c
536
stripe->physical = logical1 + i * SZ_1G;
fs/btrfs/tests/raid-stripe-tree-tests.c
548
struct btrfs_io_stripe *stripe = &bioc->stripes[i];
fs/btrfs/tests/raid-stripe-tree-tests.c
550
stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i);
fs/btrfs/tests/raid-stripe-tree-tests.c
551
if (!stripe->dev) {
fs/btrfs/tests/raid-stripe-tree-tests.c
557
stripe->physical = logical2 + i * SZ_1G;
fs/btrfs/tests/raid-stripe-tree-tests.c
667
struct btrfs_io_stripe *stripe = &bioc->stripes[i];
fs/btrfs/tests/raid-stripe-tree-tests.c
669
stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i);
fs/btrfs/tests/raid-stripe-tree-tests.c
670
if (!stripe->dev) {
fs/btrfs/tests/raid-stripe-tree-tests.c
676
stripe->physical = logical + i * SZ_1G;
fs/btrfs/tests/raid-stripe-tree-tests.c
68
struct btrfs_io_stripe *stripe = &bioc->stripes[i];
fs/btrfs/tests/raid-stripe-tree-tests.c
70
stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i);
fs/btrfs/tests/raid-stripe-tree-tests.c
71
if (!stripe->dev) {
fs/btrfs/tests/raid-stripe-tree-tests.c
77
stripe->physical = logical1 + i * SZ_1G;
fs/btrfs/tests/raid-stripe-tree-tests.c
776
struct btrfs_io_stripe *stripe = &bioc->stripes[i];
fs/btrfs/tests/raid-stripe-tree-tests.c
778
stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i);
fs/btrfs/tests/raid-stripe-tree-tests.c
779
if (!stripe->dev) {
fs/btrfs/tests/raid-stripe-tree-tests.c
785
stripe->physical = logical + i * SZ_1G;
fs/btrfs/tests/raid-stripe-tree-tests.c
89
struct btrfs_io_stripe *stripe = &bioc->stripes[i];
fs/btrfs/tests/raid-stripe-tree-tests.c
898
struct btrfs_io_stripe *stripe = &bioc->stripes[i];
fs/btrfs/tests/raid-stripe-tree-tests.c
900
stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i);
fs/btrfs/tests/raid-stripe-tree-tests.c
901
if (!stripe->dev) {
fs/btrfs/tests/raid-stripe-tree-tests.c
907
stripe->physical = logical + i * SZ_1G;
fs/btrfs/tests/raid-stripe-tree-tests.c
91
stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i);
fs/btrfs/tests/raid-stripe-tree-tests.c
92
if (!stripe->dev) {
fs/btrfs/tests/raid-stripe-tree-tests.c
944
struct btrfs_io_stripe *stripe = &bioc->stripes[i];
fs/btrfs/tests/raid-stripe-tree-tests.c
946
stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i);
fs/btrfs/tests/raid-stripe-tree-tests.c
947
if (!stripe->dev) {
fs/btrfs/tests/raid-stripe-tree-tests.c
953
stripe->physical = SZ_1G + logical + i * SZ_1G;
fs/btrfs/tests/raid-stripe-tree-tests.c
98
stripe->physical = logical2 + i * SZ_1G;
fs/btrfs/tree-checker.c
1028
if (unlikely(btrfs_item_size(leaf, slot) < offsetof(struct btrfs_chunk, stripe))) {
fs/btrfs/tree-checker.c
1032
offsetof(struct btrfs_chunk, stripe),
fs/btrfs/volumes.c
4010
struct btrfs_stripe *stripe;
fs/btrfs/volumes.c
4015
stripe = btrfs_stripe_nr(chunk, i);
fs/btrfs/volumes.c
4016
if (btrfs_stripe_devid(leaf, stripe) == bargs->devid)
fs/btrfs/volumes.c
4036
struct btrfs_stripe *stripe;
fs/btrfs/volumes.c
4051
stripe = btrfs_stripe_nr(chunk, i);
fs/btrfs/volumes.c
4052
if (btrfs_stripe_devid(leaf, stripe) != bargs->devid)
fs/btrfs/volumes.c
4055
stripe_offset = btrfs_stripe_offset(leaf, stripe);
fs/btrfs/volumes.c
5720
struct btrfs_io_stripe *stripe = &map->stripes[i];
fs/btrfs/volumes.c
5721
struct btrfs_device *device = stripe->dev;
fs/btrfs/volumes.c
5723
btrfs_set_extent_bit(&device->alloc_state, stripe->physical,
fs/btrfs/volumes.c
5724
stripe->physical + map->stripe_size - 1,
fs/btrfs/volumes.c
5732
struct btrfs_io_stripe *stripe = &map->stripes[i];
fs/btrfs/volumes.c
5733
struct btrfs_device *device = stripe->dev;
fs/btrfs/volumes.c
5735
btrfs_clear_extent_bit(&device->alloc_state, stripe->physical,
fs/btrfs/volumes.c
5736
stripe->physical + map->stripe_size - 1,
fs/btrfs/volumes.c
5935
struct btrfs_stripe *stripe;
fs/btrfs/volumes.c
5989
stripe = &chunk->stripe;
fs/btrfs/volumes.c
5994
btrfs_set_stack_stripe_devid(stripe, device->devid);
fs/btrfs/volumes.c
5995
btrfs_set_stack_stripe_offset(stripe, dev_offset);
fs/btrfs/volumes.c
5996
memcpy(stripe->dev_uuid, device->uuid, BTRFS_UUID_SIZE);
fs/btrfs/volumes.c
5997
stripe++;
fs/btrfs/zoned.c
2481
struct btrfs_io_stripe *stripe)
fs/btrfs/zoned.c
2483
struct btrfs_device *device = stripe->dev;
fs/btrfs/zoned.c
2484
const u64 physical = stripe->physical;
fs/btrfs/zoned.c
3151
struct btrfs_io_stripe *stripe = &map->stripes[i];
fs/btrfs/zoned.c
3156
ret = blkdev_zone_mgmt(stripe->dev->bdev, REQ_OP_ZONE_RESET,
fs/btrfs/zoned.c
3157
stripe->physical >> SECTOR_SHIFT,
fs/ext4/mballoc.c
2649
ext4_grpblk_t i, stripe;
fs/ext4/mballoc.c
2661
stripe = EXT4_NUM_B2C(sbi, sbi->s_stripe);
fs/ext4/mballoc.c
2665
max = mb_find_extent(e4b, i, stripe, &ex);
fs/ext4/mballoc.c
2666
if (max >= stripe) {
fs/ext4/mballoc.c
2675
i += stripe;
fs/ext4/super.c
5319
static bool ext4_is_stripe_incompatible(struct super_block *sb, unsigned long stripe)
fs/ext4/super.c
5322
return (stripe > 0 && sbi->s_cluster_ratio > 1 &&
fs/ext4/super.c
5323
stripe % sbi->s_cluster_ratio != 0);
fs/nfs/blocklayout/blocklayout.h
83
} stripe;
fs/nfs/blocklayout/dev.c
185
p = xdr_decode_hyper(p, &b->stripe.chunk_size);
fs/nfs/blocklayout/dev.c
186
b->stripe.volumes_count = be32_to_cpup(p++);
fs/nfs/blocklayout/dev.c
187
if (b->stripe.volumes_count > PNFS_BLOCK_MAX_DEVICES) {
fs/nfs/blocklayout/dev.c
188
dprintk("Too many volumes: %d\n", b->stripe.volumes_count);
fs/nfs/blocklayout/dev.c
192
p = xdr_inline_decode(xdr, b->stripe.volumes_count * 4);
fs/nfs/blocklayout/dev.c
195
for (i = 0; i < b->stripe.volumes_count; i++)
fs/nfs/blocklayout/dev.c
196
b->stripe.volumes[i] = be32_to_cpup(p++);
fs/nfs/blocklayout/dev.c
494
v->stripe.volumes_count, gfp_mask);
fs/nfs/blocklayout/dev.c
498
for (i = 0; i < v->stripe.volumes_count; i++) {
fs/nfs/blocklayout/dev.c
500
volumes, v->stripe.volumes[i], gfp_mask);
fs/nfs/blocklayout/dev.c
509
d->chunk_size = v->stripe.chunk_size;
include/sound/hdaudio.h
555
bool stripe:1; /* apply stripe control */
include/uapi/linux/btrfs_tree.h
667
struct btrfs_stripe stripe;
sound/hda/codecs/hdmi/hdmi.c
1653
int pinctl, stripe;
sound/hda/codecs/hdmi/hdmi.c
1691
stripe = snd_hdac_get_stream_stripe_ctl(&codec->bus->core,
sound/hda/codecs/hdmi/hdmi.c
1695
stripe);
sound/hda/codecs/hdmi/hdmi.c
1747
azx_stream(get_azx_dev(substream))->stripe = 0;
sound/hda/codecs/hdmi/hdmi.c
922
azx_stream(get_azx_dev(substream))->stripe = 1;
sound/hda/core/stream.c
144
if (azx_dev->stripe) {
sound/hda/core/stream.c
172
if (azx_dev->stripe)
tools/testing/selftests/ublk/kublk.h
99
struct stripe_ctx stripe;
tools/testing/selftests/ublk/stripe.c
153
struct stripe *t = &s->s[i - zc];
tools/testing/selftests/ublk/stripe.c
23
struct stripe s[NR_STRIPE];
tools/testing/selftests/ublk/stripe.c
292
unsigned chunk_size = ctx->stripe.chunk_size;
tools/testing/selftests/ublk/stripe.c
372
ctx->stripe.chunk_size = 65536;
tools/testing/selftests/ublk/stripe.c
378
ctx->stripe.chunk_size = strtol(optarg, NULL, 10);
tools/testing/selftests/ublk/stripe.c
56
struct stripe *t = &s->s[i];
tools/testing/selftests/ublk/stripe.c
87
struct stripe *this = &s->s[idx];