/linux/fs/btrfs/ |
H A D | scrub.c | 231 static void release_scrub_stripe(struct scrub_stripe *stripe) in release_scrub_stripe() argument 233 if (!stripe) in release_scrub_stripe() 237 if (stripe->pages[i]) in release_scrub_stripe() 238 __free_page(stripe->pages[i]); in release_scrub_stripe() 239 stripe->pages[i] = NULL; in release_scrub_stripe() 241 kfree(stripe->sectors); in release_scrub_stripe() 242 kfree(stripe->csums); in release_scrub_stripe() 243 stripe->sectors = NULL; in release_scrub_stripe() 244 stripe->csums = NULL; in release_scrub_stripe() 245 stripe->sctx = NULL; in release_scrub_stripe() [all …]
|
H A D | raid-stripe-tree.c | 370 u32 stripe_index, struct btrfs_io_stripe *stripe) in btrfs_get_raid_extent_offset() argument 395 if (stripe->rst_search_commit_root) { in btrfs_get_raid_extent_offset() 448 if (devid != stripe->dev->devid) in btrfs_get_raid_extent_offset() 454 stripe->physical = physical + offset; in btrfs_get_raid_extent_offset() 457 stripe->physical, devid); in btrfs_get_raid_extent_offset() 468 if (ret && ret != -EIO && !stripe->rst_search_commit_root) { in btrfs_get_raid_extent_offset() 471 logical, logical + *length, stripe->dev->devid, in btrfs_get_raid_extent_offset()
|
H A D | bio.c | 384 struct btrfs_io_stripe *stripe = bio->bi_private; in btrfs_orig_write_end_io() local 385 struct btrfs_io_context *bioc = stripe->bioc; in btrfs_orig_write_end_io() 392 btrfs_log_dev_io_error(bio, stripe->dev); in btrfs_orig_write_end_io() 405 stripe->physical = bio->bi_iter.bi_sector << SECTOR_SHIFT; in btrfs_orig_write_end_io() 413 struct btrfs_io_stripe *stripe = bio->bi_private; in btrfs_clone_write_end_io() local 416 atomic_inc(&stripe->bioc->error); in btrfs_clone_write_end_io() 417 btrfs_log_dev_io_error(bio, stripe->dev); in btrfs_clone_write_end_io() 419 stripe->physical = bio->bi_iter.bi_sector << SECTOR_SHIFT; in btrfs_clone_write_end_io() 423 bio_endio(stripe->bioc->orig_bio); in btrfs_clone_write_end_io()
|
H A D | Makefile | 36 lru_cache.o raid-stripe-tree.o fiemap.o direct-io.o 47 tests/raid-stripe-tree-tests.o tests/delayed-refs-tests.o
|
H A D | print-tree.c | 208 struct btrfs_stripe_extent *stripe) in print_raid_stripe_key() argument 214 i, btrfs_raid_stride_devid(eb, &stripe->strides[i]), in print_raid_stripe_key() 215 btrfs_raid_stride_physical(eb, &stripe->strides[i])); in print_raid_stripe_key()
|
/linux/drivers/md/ |
H A D | dm-stripe.c | 24 struct stripe { struct 47 struct stripe stripe[] __counted_by(stripes); argument 52 * drops out of a stripe volume. 65 unsigned int stripe, char **argv) in get_stripe() argument 75 &sc->stripe[stripe].dev); in get_stripe() 79 sc->stripe[stripe].physical_start = start; in get_stripe() 103 ti->error = "Invalid stripe coun in stripe_ctr() 203 stripe_map_sector(struct stripe_c * sc,sector_t sector,uint32_t * stripe,sector_t * result) stripe_map_sector() argument 233 uint32_t stripe; stripe_map_range_sector() local 275 uint32_t stripe; stripe_map() local 307 uint32_t stripe; stripe_dax_pgoff() local [all...] |
/linux/fs/btrfs/tests/ |
H A D | raid-stripe-tree-tests.c | 68 struct btrfs_io_stripe *stripe = &bioc->stripes[i]; in test_punch_hole_3extents() local 70 stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i); in test_punch_hole_3extents() 71 if (!stripe->dev) { in test_punch_hole_3extents() 77 stripe->physical = logical1 + i * SZ_1G; in test_punch_hole_3extents() 89 struct btrfs_io_stripe *stripe = &bioc->stripes[i]; in test_punch_hole_3extents() local 91 stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i); in test_punch_hole_3extents() 92 if (!stripe->dev) { in test_punch_hole_3extents() 98 stripe->physical = logical2 + i * SZ_1G; in test_punch_hole_3extents() 110 struct btrfs_io_stripe *stripe = &bioc->stripes[i]; in test_punch_hole_3extents() local 112 stripe->dev = btrfs_device_by_devid(fs_info->fs_devices, i); in test_punch_hole_3extents() [all …]
|
/linux/Documentation/driver-api/md/ |
H A D | raid5-ppl.rst | 6 addressed by PPL is that after a dirty shutdown, parity of a particular stripe 15 Partial parity for a write operation is the XOR of stripe data chunks not 18 the stripe, consistent with its state before the write operation, regardless of 20 this stripe is missing, this updated parity can be used to recover its 29 stripe. It does not require a dedicated journaling drive. Write performance is 36 silent data corruption. If a dirty disk of a stripe is lost, no PPL recovery is 37 performed for this stripe (parity is not updated). So it is possible to have 38 arbitrary data in the written part of a stripe if that disk is lost. In such
|
H A D | raid5-cache.rst | 27 and parity don't match. The reason is that a stripe write involves several RAID 52 write. If a write crosses all RAID disks of a stripe, we call it full-stripe 53 write. For non-full-stripe writes, MD must read old data before the new parity 57 RAID disks only after the data becomes a full stripe write. This will 101 release the memory cache. The flush conditions could be stripe becomes a full 102 stripe write, free cache disk space is low or free in-kernel memory cache space 107 data and data. If MD finds a stripe with data and valid parities (1 parity for
|
/linux/drivers/md/bcache/ |
H A D | writeback.h | 82 int stripe = offset_to_stripe(&dc->disk, offset); in bcache_dev_stripe_dirty() local 84 if (stripe < 0) in bcache_dev_stripe_dirty() 88 if (atomic_read(dc->disk.stripe_sectors_dirty + stripe)) in bcache_dev_stripe_dirty() 95 stripe++; in bcache_dev_stripe_dirty()
|
/linux/fs/nfs/blocklayout/ |
H A D | dev.c | 185 p = xdr_decode_hyper(p, &b->stripe.chunk_size); in nfs4_block_decode_volume() 186 b->stripe.volumes_count = be32_to_cpup(p++); in nfs4_block_decode_volume() 187 if (b->stripe.volumes_count > PNFS_BLOCK_MAX_DEVICES) { in nfs4_block_decode_volume() 188 dprintk("Too many volumes: %d\n", b->stripe.volumes_count); in nfs4_block_decode_volume() 192 p = xdr_inline_decode(xdr, b->stripe.volumes_count * 4); in nfs4_block_decode_volume() 195 for (i = 0; i < b->stripe.volumes_count; i++) in nfs4_block_decode_volume() 196 b->stripe.volumes[i] = be32_to_cpup(p++); in nfs4_block_decode_volume() 490 d->children = kcalloc(v->stripe.volumes_count, in bl_parse_stripe() 495 for (i = 0; i < v->stripe.volumes_count; i++) { in bl_parse_stripe() 497 volumes, v->stripe.volumes[i], gfp_mask); in bl_parse_stripe() [all …]
|
H A D | blocklayout.h | 83 } stripe; member
|
/linux/fs/bcachefs/ |
H A D | alloc_background_format.h | 19 x(stripe, 32) \ 42 x(stripe, 32) \ 70 __u32 stripe; member
|
H A D | alloc_background.h | 45 dst->stripe = src.stripe; in alloc_to_bucket() 55 dst->stripe = src.stripe; in __bucket_m_to_alloc() 131 if (a.stripe) in alloc_data_type()
|
H A D | alloc_foreground.c | 623 static int __dev_stripe_cmp(struct dev_stripe_state *stripe, in __dev_stripe_cmp() argument 626 return ((stripe->next_alloc[l] > stripe->next_alloc[r]) - in __dev_stripe_cmp() 627 (stripe->next_alloc[l] < stripe->next_alloc[r])); in __dev_stripe_cmp() 630 #define dev_stripe_cmp(l, r) __dev_stripe_cmp(stripe, l, r) 633 struct dev_stripe_state *stripe, in bch2_dev_alloc_list() argument 647 struct dev_stripe_state *stripe, in bch2_dev_stripe_increment_inlined() argument 650 u64 *v = stripe->next_alloc + ca->dev_idx; in bch2_dev_stripe_increment_inlined() 662 for (v = stripe->next_alloc; in bch2_dev_stripe_increment_inlined() 663 v < stripe->next_alloc + ARRAY_SIZE(stripe->next_alloc); v++) in bch2_dev_stripe_increment_inlined() 668 struct dev_stripe_state *stripe) in bch2_dev_stripe_increment() argument [all …]
|
H A D | alloc_types.h | 28 x(stripe) \ 114 struct dev_stripe_state stripe; member
|
H A D | ec.h | 224 void bch2_stripes_heap_update(struct bch_fs *, struct stripe *, size_t); 225 void bch2_stripes_heap_del(struct bch_fs *, struct stripe *, size_t); 226 void bch2_stripes_heap_insert(struct bch_fs *, struct stripe *, size_t);
|
H A D | ec.c | 204 if (bch2_trans_inconsistent_on(a->stripe || in __mark_stripe_bucket() 210 a->stripe, s.k->p.offset, in __mark_stripe_bucket() 227 if (bch2_trans_inconsistent_on(a->stripe != s.k->p.offset || in __mark_stripe_bucket() 231 a->stripe, in __mark_stripe_bucket() 268 a->stripe = s.k->p.offset; in __mark_stripe_bucket() 272 a->stripe = 0; in __mark_stripe_bucket() 369 static inline void stripe_to_mem(struct stripe *m, const struct bch_stripe *s) in stripe_to_mem() 476 struct stripe *m = genradix_ptr(&c->stripes, idx); in bch2_trigger_stripe() 818 struct ec_stripe_buf *stripe) in get_stripe_key_trans() argument 833 bkey_reassemble(&stripe->key, k); in get_stripe_key_trans() [all …]
|
H A D | ec_types.h | 12 struct stripe { struct
|
H A D | buckets_types.h | 16 u32 stripe; member
|
H A D | disk_accounting_format.h | 63 x(stripe, 7) \
|
/linux/Documentation/admin-guide/device-mapper/ |
H A D | unstriped.rst | 14 <number of stripes> <chunk size> <stripe #> <dev_path> <offset> 25 <stripe #> 26 The stripe number within the device that corresponds to physical 33 An example of undoing an existing dm-stripe 88 in a 256k stripe across the two cores::
|
H A D | dm-raid.rst | 83 "stripe size". It is the only mandatory parameter and 194 starting at data_offset to fill up a new stripe with the larger 196 and write that new stripe to offset 0. Same will be applied to all 355 of a RAID 4/5/6 stripe and if subsequent read results are not 416 1.14.0 Fix reshape race on small devices. Fix stripe adding reshape
|
H A D | striped.rst | 2 dm-stripe
|
/linux/Documentation/admin-guide/ |
H A D | xfs.rst | 134 stripe unit configured at **mkfs(8)** time. 147 Data allocations will not be aligned at stripe unit 183 Used to specify the stripe unit and width for a RAID device 184 or a stripe volume. "value" must be specified in 512-byte 200 Data allocations will be rounded up to stripe width boundaries 202 size is larger than the stripe width size.
|