/linux/drivers/md/ |
H A D | dm-rq.c | 21 struct request *orig, *clone; member 78 static void end_clone_bio(struct bio *clone) in end_clone_bio() argument 81 container_of(clone, struct dm_rq_clone_bio_info, clone); in end_clone_bio() 84 blk_status_t error = clone->bi_status; in end_clone_bio() 85 bool is_last = !clone->bi_next; in end_clone_bio() 87 bio_put(clone); in end_clone_bio() 92 * Once error occurred, just let clone->end_io() handle in end_clone_bio() 115 * the original request before the clone, and break the ordering. in end_clone_bio() 153 * Complete the clone and the original request. 154 * Must be called without clone's queue lock held, [all …]
|
H A D | dm-flakey.c | 407 static void clone_free(struct bio *clone) in clone_free() argument 411 if (clone->bi_vcnt > 0) { /* bio_for_each_folio_all crashes with an empty bio */ in clone_free() 412 bio_for_each_folio_all(fi, clone) in clone_free() 416 bio_uninit(clone); in clone_free() 417 kfree(clone); in clone_free() 420 static void clone_endio(struct bio *clone) in clone_endio() argument 422 struct bio *bio = clone->bi_private; in clone_endio() 423 bio->bi_status = clone->bi_status; in clone_endio() 424 clone_free(clone); in clone_endio() 430 struct bio *clone; in clone_bio() local [all …]
|
H A D | dm.c | 93 static inline struct dm_target_io *clone_to_tio(struct bio *clone) in clone_to_tio() argument 95 return container_of(clone, struct dm_target_io, clone); in clone_to_tio() 119 return container_of(bio, struct dm_target_io, clone)->target_bio_nr; in dm_bio_get_target_bio_nr() 545 static void dm_start_io_acct(struct dm_io *io, struct bio *clone) in dm_start_io_acct() argument 554 if (!clone || likely(dm_tio_is_normal(clone_to_tio(clone)))) { in dm_start_io_acct() 580 struct bio *clone; in alloc_io() local 582 clone = bio_alloc_clone(NULL, bio, gfp_mask, &md->mempools->io_bs); in alloc_io() 583 if (unlikely(!clone)) in alloc_io() 585 tio = clone_to_tio(clone); in alloc_io() 614 bio_put(&io->tio.clone); in free_io() [all …]
|
H A D | dm-clone-metadata.h | 26 /* dm-clone metadata */ 32 * @cmd: The dm-clone metadata 43 * @cmd: The dm-clone metadata 61 * @returns: The dm-clone metadata 77 * Commit dm-clone metadata to disk. 89 * This allows dm-clone to flush the destination device after step (1) to 117 * Check whether dm-clone's metadata changed this transaction.
|
H A D | dm-crypt.c | 291 static void crypt_endio(struct bio *clone); 1683 static void crypt_free_buffer_pages(struct crypt_config *cc, struct bio *clone); 1708 struct bio *clone; in crypt_alloc_buffer() local 1718 clone = bio_alloc_bioset(cc->dev->bdev, nr_iovecs, io->base_bio->bi_opf, in crypt_alloc_buffer() 1720 clone->bi_private = io; in crypt_alloc_buffer() 1721 clone->bi_end_io = crypt_endio; in crypt_alloc_buffer() 1722 clone->bi_ioprio = io->base_bio->bi_ioprio; in crypt_alloc_buffer() 1723 clone->bi_iter.bi_sector = cc->start + io->sector; in crypt_alloc_buffer() 1750 crypt_free_buffer_pages(cc, clone); in crypt_alloc_buffer() 1751 bio_put(clone); in crypt_alloc_buffer() [all …]
|
H A D | dm-core.h | 239 * One of these is allocated per clone bio. 250 struct bio clone; member 252 #define DM_TARGET_IO_BIO_OFFSET (offsetof(struct dm_target_io, clone)) 254 (offsetof(struct dm_target_io, clone) + offsetof(struct dm_io, tio)) 282 * It contains the first clone used for that original.
|
H A D | dm-zoned-target.c | 103 static void dmz_clone_endio(struct bio *clone) in dmz_clone_endio() argument 105 struct dmz_bioctx *bioctx = clone->bi_private; in dmz_clone_endio() 106 blk_status_t status = clone->bi_status; in dmz_clone_endio() 108 bio_put(clone); in dmz_clone_endio() 113 * Issue a clone of a target BIO. The clone may only partially process the 123 struct bio *clone; in dmz_submit_bio() local 128 clone = bio_alloc_clone(dev->bdev, bio, GFP_NOIO, &dmz->bio_set); in dmz_submit_bio() 129 if (!clone) in dmz_submit_bio() 133 clone->bi_iter.bi_sector = in dmz_submit_bio() 135 clone->bi_iter.bi_size = dmz_blk2sect(nr_blocks) << SECTOR_SHIFT; in dmz_submit_bio() [all …]
|
H A D | dm-clone-metadata.c | 19 #include "dm-clone-metadata.h" 21 #define DM_MSG_PREFIX "clone metadata" 31 /* Min and max dm-clone metadata versions supported */ 58 * dm-clone logically splits the source and destination devices in regions of 60 * we copy (clone) the source's regions to the destination device. Eventually, 79 * commit the current transaction. This is important because dm-clone should 82 * up with a corrupted dm-clone device. 84 * When a region finishes hydrating dm-clone calls 99 * We could update directly the on-disk bitmap, when dm-clone calls either 101 * inserts significant metadata I/O overhead in dm-clone's I/O path. Also, as [all …]
|
/linux/Documentation/admin-guide/device-mapper/ |
H A D | dm-clone.rst | 4 dm-clone 10 dm-clone is a device mapper target which produces a one-to-one copy of an 15 The main use case of dm-clone is to clone a potentially remote, high-latency, 26 When the cloning completes, the dm-clone table can be removed altogether and be 29 The dm-clone target reuses the metadata library used by the thin-provisioning 56 clone of the source device. 68 dm-clone divides the source and destination devices in fixed sized regions. 72 The region size is configurable when you first create the dm-clone device. The 92 dm-clone interprets a discard request to a range that hasn't been hydrated yet 97 If the destination device supports discards, then by default dm-clone will pass [all …]
|
/linux/drivers/net/ethernet/meta/fbnic/ |
H A D | fbnic_ethtool.c | 141 struct fbnic_net *clone; in fbnic_clone_create() local 143 clone = kmemdup(orig, sizeof(*orig), GFP_KERNEL); in fbnic_clone_create() 144 if (!clone) in fbnic_clone_create() 147 memset(clone->tx, 0, sizeof(clone->tx)); in fbnic_clone_create() 148 memset(clone->rx, 0, sizeof(clone->rx)); in fbnic_clone_create() 149 memset(clone->napi, 0, sizeof(clone->napi)); in fbnic_clone_create() 150 return clone; in fbnic_clone_create() 154 struct fbnic_net *clone) in fbnic_clone_swap_cfg() argument 156 swap(clone->rcq_size, orig->rcq_size); in fbnic_clone_swap_cfg() 157 swap(clone->hpq_size, orig->hpq_size); in fbnic_clone_swap_cfg() [all …]
|
/linux/Documentation/userspace-api/ |
H A D | unshare.rst | 38 threads. On Linux, at the time of thread creation using the clone system 58 when creating a new process using fork or clone, unshare() can benefit 96 works on an active task (as opposed to clone/fork working on a newly 98 changes to copy_* functions utilized by clone/fork system call. 108 unshare() reverses sharing that was done using clone(2) system call, 109 so unshare() should have a similar interface as clone(2). That is, 110 since flags in clone(int flags, void \*stack) specifies what should 113 the meaning of the flags from the way they are used in clone(2). 140 using clone(2). 182 clone(2), fork(2) [all …]
|
/linux/fs/f2fs/ |
H A D | acl.c | 295 struct posix_acl *clone = NULL; in f2fs_acl_clone() local 298 clone = kmemdup(acl, struct_size(acl, a_entries, acl->a_count), in f2fs_acl_clone() 300 if (clone) in f2fs_acl_clone() 301 refcount_set(&clone->a_refcount, 1); in f2fs_acl_clone() 303 return clone; in f2fs_acl_clone() 365 struct posix_acl *clone; in f2fs_acl_create() local 382 clone = f2fs_acl_clone(p, GFP_NOFS); in f2fs_acl_create() 383 if (!clone) { in f2fs_acl_create() 388 ret = f2fs_acl_create_masq(clone, mode); in f2fs_acl_create() 393 posix_acl_release(clone); in f2fs_acl_create() [all …]
|
/linux/fs/ |
H A D | posix_acl.c | 215 * Clone an ACL. 220 struct posix_acl *clone = NULL; in posix_acl_clone() local 223 clone = kmemdup(acl, struct_size(acl, a_entries, acl->a_count), in posix_acl_clone() 225 if (clone) in posix_acl_clone() 226 refcount_set(&clone->a_refcount, 1); in posix_acl_clone() 228 return clone; in posix_acl_clone() 557 struct posix_acl *clone = posix_acl_clone(*acl, gfp); in __posix_acl_create() local 559 if (clone) { in __posix_acl_create() 560 err = posix_acl_create_masq(clone, mode_p); in __posix_acl_create() 562 posix_acl_release(clone); in __posix_acl_create() [all …]
|
/linux/tools/testing/selftests/bpf/progs/ |
H A D | dynptr_fail.c | 1480 struct bpf_dynptr clone; in clone_invalid2() local 1484 bpf_ringbuf_reserve_dynptr(&ringbuf, 64, 0, &clone); in clone_invalid2() 1487 bpf_dynptr_clone(&ptr1, &clone); in clone_invalid2() 1489 bpf_ringbuf_submit_dynptr(&clone, 0); in clone_invalid2() 1499 struct bpf_dynptr clone; in clone_invalidate1() local 1505 bpf_dynptr_clone(&ptr, &clone); in clone_invalidate1() 1510 bpf_dynptr_read(read_data, sizeof(read_data), &clone, 0, 0); in clone_invalidate1() 1521 struct bpf_dynptr clone; in clone_invalidate2() local 1526 bpf_dynptr_clone(&ptr, &clone); in clone_invalidate2() 1528 bpf_ringbuf_submit_dynptr(&clone, 0); in clone_invalidate2() [all …]
|
/linux/net/rds/ |
H A D | tcp_recv.c | 162 struct sk_buff *clone; in rds_tcp_data_recv() local 219 clone = pskb_extract(skb, offset, to_copy, arg->gfp); in rds_tcp_data_recv() 220 if (!clone) { in rds_tcp_data_recv() 225 skb_queue_tail(&tinc->ti_skb_list, clone); in rds_tcp_data_recv() 228 "clone %p data %p len %d\n", in rds_tcp_data_recv() 230 clone, clone->data, clone->len); in rds_tcp_data_recv()
|
/linux/net/ipv4/ |
H A D | inet_fragment.c | 513 struct sk_buff *clone; in inet_frag_reasm_prepare() local 516 clone = alloc_skb(0, GFP_ATOMIC); in inet_frag_reasm_prepare() 517 if (!clone) in inet_frag_reasm_prepare() 519 skb_shinfo(clone)->frag_list = skb_shinfo(head)->frag_list; in inet_frag_reasm_prepare() 523 clone->data_len = head->data_len - plen; in inet_frag_reasm_prepare() 524 clone->len = clone->data_len; in inet_frag_reasm_prepare() 525 head->truesize += clone->truesize; in inet_frag_reasm_prepare() 526 clone->csum = 0; in inet_frag_reasm_prepare() 527 clone->ip_summed = head->ip_summed; in inet_frag_reasm_prepare() 528 add_frag_mem_limit(q->fqdir, clone->truesize); in inet_frag_reasm_prepare() [all …]
|
/linux/tools/testing/selftests/net/openvswitch/ |
H A D | openvswitch.sh | 715 info "Checking clone depth" 720 …'clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(c… 725 info "failed - clone depth too large"
|
/linux/arch/x86/mm/ |
H A D | pti.c | 52 * Define the page-table levels we clone for user-space on 32 321 * Clone the populated PMDs which cover start to end. These PMD areas in pti_clone_pgtable() 362 * Only clone present PMDs. This ensures only setting in pti_clone_pgtable() 400 /* Only clone present PTEs */ in pti_clone_pgtable() 413 /* Clone the PTE */ in pti_clone_pgtable() 426 * Clone a single p4d (i.e. a top-level entry on 4-level systems and a 444 * Clone the CPU_ENTRY_AREA and associated data into the user space visible 480 * address space into the user page-tables, making PTI useless. So clone 495 * Clone the ESPFIX P4D into the user space visible page table 505 * Clone the populated PMDs of the entry text and force it RO. [all …]
|
/linux/Documentation/admin-guide/ |
H A D | quickly-build-trimmed-linux.rst | 26 git clone --depth 1 -b master \ 131 clone. The reference section explains two alternatives:* :ref:`packaged 132 archives<sources_archive>` *and* :ref:`a full git clone<sources_full>` *; 139 git clone --no-checkout --depth 1 -b master \ 144 clone's history to the oldest mainline version you are interested in:: 156 initial clone, you will be able to check out a fresh mainline codebase, which 161 If you deepened your clone, you instead of ``origin/master`` can specify the 492 git clone. There is :ref:`more to tell about this method<sources_shallow>` and 494 and :ref:`a full git clone<sources_full>`. And the aspects ':ref:`wouldn't it 511 The step-by-step guide uses a shallow clone, as it is the best solution for most [all …]
|
/linux/fs/btrfs/ |
H A D | reflink.c | 36 * extents to clone above, but shouldn't round up the file size. in clone_finish_inode_update() 107 * the clone/dedupe operation, so we may deadlock if that happens and no in copy_inline_to_page() 111 * after finding each extent to clone. in copy_inline_to_page() 240 * clone. Deal with all these cases by copying the inline extent in clone_copy_inline_extent() 328 * Clone a range from inode file to another. 330 * @src: Inode to clone from 331 * @inode: Inode to clone to 332 * @off: Offset within source to start clone from 333 * @olen: Original length, passed by user, of range to clone 335 * @destoff: Offset within @inode to start clone [all …]
|
H A D | fiemap.c | 308 struct extent_buffer *clone = path->nodes[0]; in fiemap_next_leaf_item() local 322 ASSERT(test_bit(EXTENT_BUFFER_UNMAPPED, &clone->bflags)); in fiemap_next_leaf_item() 323 refcount_inc(&clone->refs); in fiemap_next_leaf_item() 349 clone->start = path->nodes[0]->start; in fiemap_next_leaf_item() 350 /* See the comment at fiemap_search_slot() about why we clone. */ in fiemap_next_leaf_item() 351 copy_extent_buffer_full(clone, path->nodes[0]); in fiemap_next_leaf_item() 355 path->nodes[0] = clone; in fiemap_next_leaf_item() 359 free_extent_buffer(clone); in fiemap_next_leaf_item() 374 struct extent_buffer *clone; in fiemap_search_slot() local 404 * We clone the leaf and use it during fiemap. This is because while in fiemap_search_slot() [all …]
|
/linux/net/openvswitch/ |
H A D | actions.c | 44 /* Make a clone of the 'key', using the pre-allocated percpu 'flow_keys' 1040 /* When 'last' is true, clone() should always consume the 'skb'. 1041 * Otherwise, clone() should keep 'skb' intact regardless what 1042 * actions are executed within clone(). 1044 static int clone(struct datapath *dp, struct sk_buff *skb, in clone() function 1336 struct sk_buff *clone; in do_execute_actions() local 1338 /* Every output action needs a separate clone in do_execute_actions() 1349 clone = skb_clone(skb, GFP_ATOMIC); in do_execute_actions() 1350 if (clone) in do_execute_actions() 1351 do_output(dp, clone, port, key); in do_execute_actions() [all …]
|
/linux/drivers/net/ethernet/8390/ |
H A D | Kconfig | 33 tristate "ASIX AX88796 NE2000 clone support" if !ZORRO 50 tristate "Amiga XSurf 100 AX88796/NE2000 clone support" 113 NE2000 and clone support" below. 128 This driver also works for the following NE2000 clone cards:
|
/linux/fs/gfs2/ |
H A D | incore.h | 71 * Clone bitmaps (bi_clone): 74 * clone bitmap, and only mark the block as free in the real bitmap. 77 * clone bitmap, and if no clone bitmap exists, in the real bitmap. 80 * a clone bitmap exists, also in the clone bitmap. 82 * - At the end of a log_flush, we copy the real bitmap into the clone bitmap 83 * to make the clone bitmap reflect the current allocation state. 84 * (Alternatively, we could remove the clone bitmap.) 86 * The clone bitmaps are in-core only, and is never written to disk.
|
/linux/drivers/gpu/nova-core/ |
H A D | falcon.rs | 37 #[derive(Debug, Default, Copy, Clone, PartialEq, Eq, PartialOrd, Ord)] 75 #[derive(Debug, Default, Copy, Clone, PartialEq, Eq, PartialOrd, Ord)] 107 #[derive(Debug, Default, Copy, Clone)] 150 #[derive(Debug, Default, Copy, Clone, PartialEq, Eq)] 175 #[derive(Debug, Default, Copy, Clone, PartialEq, Eq)] 196 #[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] 216 #[derive(Debug, Clone, Copy, PartialEq, Eq)] 227 #[derive(Debug, Clone, Default)] 257 #[derive(Debug, Clone, Default)]
|