arch/um/os-Linux/helper.c
134
pid = clone(proc, (void *) sp, flags, arg);
arch/um/os-Linux/helper.c
76
pid = clone(helper_child, (void *) sp, CLONE_VM, &data);
arch/um/os-Linux/skas/process.c
477
mm_id->pid = clone(userspace_tramp, (void *) sp,
arch/um/os-Linux/start_up.c
318
pid = clone(seccomp_helper, (void *)sp, CLONE_VFORK | CLONE_VM, NULL);
drivers/bluetooth/btusb.c
3194
struct sk_buff *clone = skb_clone(skb, GFP_ATOMIC);
drivers/bluetooth/btusb.c
3197
if (!clone)
drivers/bluetooth/btusb.c
3200
acl_hdr = skb_pull_data(clone, sizeof(*acl_hdr));
drivers/bluetooth/btusb.c
3204
event_hdr = skb_pull_data(clone, sizeof(*event_hdr));
drivers/bluetooth/btusb.c
3208
dump_hdr = skb_pull_data(clone, sizeof(*dump_hdr));
drivers/bluetooth/btusb.c
3215
consume_skb(clone);
drivers/bluetooth/btusb.c
3224
struct sk_buff *clone = skb_clone(skb, GFP_ATOMIC);
drivers/bluetooth/btusb.c
3227
if (!clone)
drivers/bluetooth/btusb.c
3230
event_hdr = skb_pull_data(clone, sizeof(*event_hdr));
drivers/bluetooth/btusb.c
3234
dump_hdr = skb_pull_data(clone, sizeof(*dump_hdr));
drivers/bluetooth/btusb.c
3241
consume_skb(clone);
drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c
387
int amdgpu_sync_clone(struct amdgpu_sync *source, struct amdgpu_sync *clone)
drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c
397
r = amdgpu_sync_fence(clone, f, GFP_KERNEL);
drivers/gpu/drm/amd/amdgpu/amdgpu_sync.h
59
int amdgpu_sync_clone(struct amdgpu_sync *source, struct amdgpu_sync *clone);
drivers/gpu/drm/i915/gt/gen8_ppgtt.c
837
struct i915_address_space *clone = vm->gt->vm;
drivers/gpu/drm/i915/gt/gen8_ppgtt.c
839
GEM_BUG_ON(!clone->has_read_only);
drivers/gpu/drm/i915/gt/gen8_ppgtt.c
841
vm->scratch_order = clone->scratch_order;
drivers/gpu/drm/i915/gt/gen8_ppgtt.c
843
vm->scratch[i] = i915_gem_object_get(clone->scratch[i]);
drivers/gpu/drm/loongson/lsdc_crtc.c
287
.clone = lsdc_crtc0_clone,
drivers/gpu/drm/loongson/lsdc_crtc.c
299
.clone = lsdc_crtc1_clone,
drivers/gpu/drm/loongson/lsdc_crtc.c
367
.clone = lsdc_crtc0_clone,
drivers/gpu/drm/loongson/lsdc_crtc.c
381
.clone = lsdc_crtc1_clone,
drivers/gpu/drm/loongson/lsdc_crtc.c
660
ops->clone(lcrtc);
drivers/gpu/drm/loongson/lsdc_drv.h
113
void (*clone)(struct lsdc_crtc *lcrtc);
drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv04.c
35
bool clone;
drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv04.c
51
if (dmaobj->clone) {
drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv04.c
99
dmaobj->clone = true;
drivers/md/dm-clone-target.c
1016
static unsigned long __start_next_hydration(struct clone *clone,
drivers/md/dm-clone-target.c
1022
unsigned long nr_regions = clone->nr_regions;
drivers/md/dm-clone-target.c
1024
hd = alloc_hydration(clone);
drivers/md/dm-clone-target.c
1028
offset = dm_clone_find_next_unhydrated_region(clone->cmd, offset);
drivers/md/dm-clone-target.c
1032
bucket = get_hash_table_bucket(clone, offset);
drivers/md/dm-clone-target.c
1035
if (!dm_clone_is_region_hydrated(clone->cmd, offset) &&
drivers/md/dm-clone-target.c
1061
static void do_hydration(struct clone *clone)
drivers/md/dm-clone-target.c
1064
unsigned long offset, nr_regions = clone->nr_regions;
drivers/md/dm-clone-target.c
1071
if (unlikely(get_clone_mode(clone) >= CM_READ_ONLY))
drivers/md/dm-clone-target.c
1074
if (dm_clone_is_hydration_done(clone->cmd))
drivers/md/dm-clone-target.c
1080
atomic_inc(&clone->hydrations_in_flight);
drivers/md/dm-clone-target.c
1092
offset = clone->hydration_offset;
drivers/md/dm-clone-target.c
1093
while (likely(!test_bit(DM_CLONE_HYDRATION_SUSPENDED, &clone->flags)) &&
drivers/md/dm-clone-target.c
1094
!atomic_read(&clone->ios_in_flight) &&
drivers/md/dm-clone-target.c
1095
test_bit(DM_CLONE_HYDRATION_ENABLED, &clone->flags) &&
drivers/md/dm-clone-target.c
1097
current_volume = atomic_read(&clone->hydrations_in_flight);
drivers/md/dm-clone-target.c
1100
if (current_volume > READ_ONCE(clone->hydration_threshold))
drivers/md/dm-clone-target.c
1103
offset = __start_next_hydration(clone, offset, &batch);
drivers/md/dm-clone-target.c
1112
clone->hydration_offset = offset;
drivers/md/dm-clone-target.c
1114
if (atomic_dec_and_test(&clone->hydrations_in_flight))
drivers/md/dm-clone-target.c
1115
wakeup_hydration_waiters(clone);
drivers/md/dm-clone-target.c
1120
static bool need_commit_due_to_time(struct clone *clone)
drivers/md/dm-clone-target.c
1122
return !time_in_range(jiffies, clone->last_commit_jiffies,
drivers/md/dm-clone-target.c
1123
clone->last_commit_jiffies + COMMIT_PERIOD);
drivers/md/dm-clone-target.c
1129
static int commit_metadata(struct clone *clone, bool *dest_dev_flushed)
drivers/md/dm-clone-target.c
1136
mutex_lock(&clone->commit_lock);
drivers/md/dm-clone-target.c
1138
if (!dm_clone_changed_this_transaction(clone->cmd))
drivers/md/dm-clone-target.c
1141
if (unlikely(get_clone_mode(clone) >= CM_READ_ONLY)) {
drivers/md/dm-clone-target.c
1146
r = dm_clone_metadata_pre_commit(clone->cmd);
drivers/md/dm-clone-target.c
1148
__metadata_operation_failed(clone, "dm_clone_metadata_pre_commit", r);
drivers/md/dm-clone-target.c
1152
r = blkdev_issue_flush(clone->dest_dev->bdev);
drivers/md/dm-clone-target.c
1154
__metadata_operation_failed(clone, "flush destination device", r);
drivers/md/dm-clone-target.c
1161
r = dm_clone_metadata_commit(clone->cmd);
drivers/md/dm-clone-target.c
1163
__metadata_operation_failed(clone, "dm_clone_metadata_commit", r);
drivers/md/dm-clone-target.c
1167
if (dm_clone_is_hydration_done(clone->cmd))
drivers/md/dm-clone-target.c
1168
dm_table_event(clone->ti->table);
drivers/md/dm-clone-target.c
1170
mutex_unlock(&clone->commit_lock);
drivers/md/dm-clone-target.c
1175
static void process_deferred_discards(struct clone *clone)
drivers/md/dm-clone-target.c
1183
spin_lock_irq(&clone->lock);
drivers/md/dm-clone-target.c
1184
bio_list_merge_init(&discards, &clone->deferred_discard_bios);
drivers/md/dm-clone-target.c
1185
spin_unlock_irq(&clone->lock);
drivers/md/dm-clone-target.c
1190
if (unlikely(get_clone_mode(clone) >= CM_READ_ONLY))
drivers/md/dm-clone-target.c
1195
bio_region_range(clone, bio, &rs, &nr_regions);
drivers/md/dm-clone-target.c
1201
r = dm_clone_cond_set_range(clone->cmd, rs, nr_regions);
drivers/md/dm-clone-target.c
1208
complete_discard_bio(clone, bio, r == 0);
drivers/md/dm-clone-target.c
1212
static void process_deferred_bios(struct clone *clone)
drivers/md/dm-clone-target.c
1216
spin_lock_irq(&clone->lock);
drivers/md/dm-clone-target.c
1217
bio_list_merge_init(&bios, &clone->deferred_bios);
drivers/md/dm-clone-target.c
1218
spin_unlock_irq(&clone->lock);
drivers/md/dm-clone-target.c
1226
static void process_deferred_flush_bios(struct clone *clone)
drivers/md/dm-clone-target.c
1237
spin_lock_irq(&clone->lock);
drivers/md/dm-clone-target.c
1238
bio_list_merge_init(&bios, &clone->deferred_flush_bios);
drivers/md/dm-clone-target.c
1240
&clone->deferred_flush_completions);
drivers/md/dm-clone-target.c
1241
spin_unlock_irq(&clone->lock);
drivers/md/dm-clone-target.c
1244
!(dm_clone_changed_this_transaction(clone->cmd) && need_commit_due_to_time(clone)))
drivers/md/dm-clone-target.c
1247
if (commit_metadata(clone, &dest_dev_flushed)) {
drivers/md/dm-clone-target.c
1256
clone->last_commit_jiffies = jiffies;
drivers/md/dm-clone-target.c
1276
struct clone *clone = container_of(work, typeof(*clone), worker);
drivers/md/dm-clone-target.c
1278
process_deferred_bios(clone);
drivers/md/dm-clone-target.c
1279
process_deferred_discards(clone);
drivers/md/dm-clone-target.c
1290
process_deferred_flush_bios(clone);
drivers/md/dm-clone-target.c
1293
do_hydration(clone);
drivers/md/dm-clone-target.c
1303
struct clone *clone = container_of(to_delayed_work(work), struct clone, waker);
drivers/md/dm-clone-target.c
1305
wake_worker(clone);
drivers/md/dm-clone-target.c
1306
queue_delayed_work(clone->wq, &clone->waker, COMMIT_PERIOD);
drivers/md/dm-clone-target.c
1316
struct clone *clone = ti->private;
drivers/md/dm-clone-target.c
1319
atomic_inc(&clone->ios_in_flight);
drivers/md/dm-clone-target.c
1321
if (unlikely(get_clone_mode(clone) == CM_FAIL))
drivers/md/dm-clone-target.c
1332
remap_and_issue(clone, bio);
drivers/md/dm-clone-target.c
1344
process_discard_bio(clone, bio);
drivers/md/dm-clone-target.c
1358
region_nr = bio_to_region(clone, bio);
drivers/md/dm-clone-target.c
1359
if (dm_clone_is_region_hydrated(clone->cmd, region_nr)) {
drivers/md/dm-clone-target.c
1360
remap_and_issue(clone, bio);
drivers/md/dm-clone-target.c
1363
remap_to_source(clone, bio);
drivers/md/dm-clone-target.c
1367
remap_to_dest(clone, bio);
drivers/md/dm-clone-target.c
1368
hydrate_bio_region(clone, bio);
drivers/md/dm-clone-target.c
1375
struct clone *clone = ti->private;
drivers/md/dm-clone-target.c
1377
atomic_dec(&clone->ios_in_flight);
drivers/md/dm-clone-target.c
1382
static void emit_flags(struct clone *clone, char *result, unsigned int maxlen,
drivers/md/dm-clone-target.c
1388
count = !test_bit(DM_CLONE_HYDRATION_ENABLED, &clone->flags);
drivers/md/dm-clone-target.c
1389
count += !test_bit(DM_CLONE_DISCARD_PASSDOWN, &clone->flags);
drivers/md/dm-clone-target.c
1393
if (!test_bit(DM_CLONE_HYDRATION_ENABLED, &clone->flags))
drivers/md/dm-clone-target.c
1396
if (!test_bit(DM_CLONE_DISCARD_PASSDOWN, &clone->flags))
drivers/md/dm-clone-target.c
1402
static void emit_core_args(struct clone *clone, char *result,
drivers/md/dm-clone-target.c
1409
READ_ONCE(clone->hydration_threshold),
drivers/md/dm-clone-target.c
1410
READ_ONCE(clone->hydration_batch_size));
drivers/md/dm-clone-target.c
1432
struct clone *clone = ti->private;
drivers/md/dm-clone-target.c
1436
if (get_clone_mode(clone) == CM_FAIL) {
drivers/md/dm-clone-target.c
1443
(void) commit_metadata(clone, NULL);
drivers/md/dm-clone-target.c
1445
r = dm_clone_get_free_metadata_block_count(clone->cmd, &nr_free_metadata_blocks);
drivers/md/dm-clone-target.c
1449
clone_device_name(clone), r);
drivers/md/dm-clone-target.c
1453
r = dm_clone_get_metadata_dev_size(clone->cmd, &nr_metadata_blocks);
drivers/md/dm-clone-target.c
1457
clone_device_name(clone), r);
drivers/md/dm-clone-target.c
1465
(unsigned long long)clone->region_size,
drivers/md/dm-clone-target.c
1466
dm_clone_nr_of_hydrated_regions(clone->cmd),
drivers/md/dm-clone-target.c
1467
clone->nr_regions,
drivers/md/dm-clone-target.c
1468
atomic_read(&clone->hydrations_in_flight));
drivers/md/dm-clone-target.c
1470
emit_flags(clone, result, maxlen, &sz);
drivers/md/dm-clone-target.c
1471
emit_core_args(clone, result, maxlen, &sz);
drivers/md/dm-clone-target.c
1473
switch (get_clone_mode(clone)) {
drivers/md/dm-clone-target.c
1487
format_dev_t(buf, clone->metadata_dev->bdev->bd_dev);
drivers/md/dm-clone-target.c
1490
format_dev_t(buf, clone->dest_dev->bdev->bd_dev);
drivers/md/dm-clone-target.c
1493
format_dev_t(buf, clone->source_dev->bdev->bd_dev);
drivers/md/dm-clone-target.c
1496
for (i = 0; i < clone->nr_ctr_args; i++)
drivers/md/dm-clone-target.c
1497
DMEMIT(" %s", clone->ctr_args[i]);
drivers/md/dm-clone-target.c
152
static enum clone_metadata_mode get_clone_mode(struct clone *clone)
drivers/md/dm-clone-target.c
1537
static int parse_feature_args(struct dm_arg_set *as, struct clone *clone)
drivers/md/dm-clone-target.c
154
return READ_ONCE(clone->mode);
drivers/md/dm-clone-target.c
1542
struct dm_target *ti = clone->ti;
drivers/md/dm-clone-target.c
1563
__clear_bit(DM_CLONE_HYDRATION_ENABLED, &clone->flags);
drivers/md/dm-clone-target.c
1565
__clear_bit(DM_CLONE_DISCARD_PASSDOWN, &clone->flags);
drivers/md/dm-clone-target.c
157
static const char *clone_device_name(struct clone *clone)
drivers/md/dm-clone-target.c
1575
static int parse_core_args(struct dm_arg_set *as, struct clone *clone)
drivers/md/dm-clone-target.c
1581
struct dm_target *ti = clone->ti;
drivers/md/dm-clone-target.c
159
return dm_table_device_name(clone->ti->table);
drivers/md/dm-clone-target.c
1590
clone->hydration_batch_size = DEFAULT_HYDRATION_BATCH_SIZE;
drivers/md/dm-clone-target.c
1591
clone->hydration_threshold = DEFAULT_HYDRATION_THRESHOLD;
drivers/md/dm-clone-target.c
1615
clone->hydration_threshold = value;
drivers/md/dm-clone-target.c
162
static void __set_clone_mode(struct clone *clone, enum clone_metadata_mode new_mode)
drivers/md/dm-clone-target.c
1621
clone->hydration_batch_size = value;
drivers/md/dm-clone-target.c
1631
static int parse_region_size(struct clone *clone, struct dm_arg_set *as, char **error)
drivers/md/dm-clone-target.c
1652
if (region_size % (bdev_logical_block_size(clone->source_dev->bdev) >> 9) ||
drivers/md/dm-clone-target.c
1653
region_size % (bdev_logical_block_size(clone->dest_dev->bdev) >> 9)) {
drivers/md/dm-clone-target.c
1658
clone->region_size = region_size;
drivers/md/dm-clone-target.c
1677
static int parse_metadata_dev(struct clone *clone, struct dm_arg_set *as, char **error)
drivers/md/dm-clone-target.c
1682
r = dm_get_device(clone->ti, dm_shift_arg(as),
drivers/md/dm-clone-target.c
1683
BLK_OPEN_READ | BLK_OPEN_WRITE, &clone->metadata_dev);
drivers/md/dm-clone-target.c
1689
metadata_dev_size = get_dev_size(clone->metadata_dev);
drivers/md/dm-clone-target.c
1692
clone->metadata_dev->bdev, DM_CLONE_METADATA_MAX_SECTORS);
drivers/md/dm-clone-target.c
1697
static int parse_dest_dev(struct clone *clone, struct dm_arg_set *as, char **error)
drivers/md/dm-clone-target.c
170
enum clone_metadata_mode old_mode = get_clone_mode(clone);
drivers/md/dm-clone-target.c
1701
r = dm_get_device(clone->ti, dm_shift_arg(as),
drivers/md/dm-clone-target.c
1702
BLK_OPEN_READ | BLK_OPEN_WRITE, &clone->dest_dev);
drivers/md/dm-clone-target.c
1711
static int parse_source_dev(struct clone *clone, struct dm_arg_set *as, char **error)
drivers/md/dm-clone-target.c
1715
r = dm_get_device(clone->ti, dm_shift_arg(as), BLK_OPEN_READ,
drivers/md/dm-clone-target.c
1716
&clone->source_dev);
drivers/md/dm-clone-target.c
1725
static int copy_ctr_args(struct clone *clone, int argc, const char **argv, char **error)
drivers/md/dm-clone-target.c
1745
clone->nr_ctr_args = argc;
drivers/md/dm-clone-target.c
1746
clone->ctr_args = copy;
drivers/md/dm-clone-target.c
1758
struct clone *clone;
drivers/md/dm-clone-target.c
1769
clone = kzalloc_obj(*clone);
drivers/md/dm-clone-target.c
1770
if (!clone) {
drivers/md/dm-clone-target.c
1775
clone->ti = ti;
drivers/md/dm-clone-target.c
1778
__set_bit(DM_CLONE_HYDRATION_ENABLED, &clone->flags);
drivers/md/dm-clone-target.c
1779
__set_bit(DM_CLONE_HYDRATION_SUSPENDED, &clone->flags);
drivers/md/dm-clone-target.c
1780
__set_bit(DM_CLONE_DISCARD_PASSDOWN, &clone->flags);
drivers/md/dm-clone-target.c
1782
r = parse_metadata_dev(clone, &as, &ti->error);
drivers/md/dm-clone-target.c
1786
r = parse_dest_dev(clone, &as, &ti->error);
drivers/md/dm-clone-target.c
179
dm_clone_metadata_set_read_only(clone->cmd);
drivers/md/dm-clone-target.c
1790
r = parse_source_dev(clone, &as, &ti->error);
drivers/md/dm-clone-target.c
1794
r = parse_region_size(clone, &as, &ti->error);
drivers/md/dm-clone-target.c
1798
clone->region_shift = __ffs(clone->region_size);
drivers/md/dm-clone-target.c
1799
nr_regions = dm_sector_div_up(ti->len, clone->region_size);
drivers/md/dm-clone-target.c
1808
clone->nr_regions = nr_regions;
drivers/md/dm-clone-target.c
1810
r = validate_nr_regions(clone->nr_regions, &ti->error);
drivers/md/dm-clone-target.c
1814
r = dm_set_target_max_io_len(ti, clone->region_size);
drivers/md/dm-clone-target.c
1820
r = parse_feature_args(&as, clone);
drivers/md/dm-clone-target.c
1824
r = parse_core_args(&as, clone);
drivers/md/dm-clone-target.c
1829
clone->cmd = dm_clone_metadata_open(clone->metadata_dev->bdev, ti->len,
drivers/md/dm-clone-target.c
183
dm_clone_metadata_set_read_write(clone->cmd);
drivers/md/dm-clone-target.c
1830
clone->region_size);
drivers/md/dm-clone-target.c
1831
if (IS_ERR(clone->cmd)) {
drivers/md/dm-clone-target.c
1833
r = PTR_ERR(clone->cmd);
drivers/md/dm-clone-target.c
1837
__set_clone_mode(clone, CM_WRITE);
drivers/md/dm-clone-target.c
1839
if (get_clone_mode(clone) != CM_WRITE) {
drivers/md/dm-clone-target.c
1845
clone->last_commit_jiffies = jiffies;
drivers/md/dm-clone-target.c
1848
r = hash_table_init(clone);
drivers/md/dm-clone-target.c
1854
atomic_set(&clone->ios_in_flight, 0);
drivers/md/dm-clone-target.c
1855
init_waitqueue_head(&clone->hydration_stopped);
drivers/md/dm-clone-target.c
1856
spin_lock_init(&clone->lock);
drivers/md/dm-clone-target.c
1857
bio_list_init(&clone->deferred_bios);
drivers/md/dm-clone-target.c
1858
bio_list_init(&clone->deferred_discard_bios);
drivers/md/dm-clone-target.c
1859
bio_list_init(&clone->deferred_flush_bios);
drivers/md/dm-clone-target.c
1860
bio_list_init(&clone->deferred_flush_completions);
drivers/md/dm-clone-target.c
1861
clone->hydration_offset = 0;
drivers/md/dm-clone-target.c
1862
atomic_set(&clone->hydrations_in_flight, 0);
drivers/md/dm-clone-target.c
1864
clone->wq = alloc_workqueue("dm-" DM_MSG_PREFIX,
drivers/md/dm-clone-target.c
1866
if (!clone->wq) {
drivers/md/dm-clone-target.c
187
WRITE_ONCE(clone->mode, new_mode);
drivers/md/dm-clone-target.c
1872
INIT_WORK(&clone->worker, do_worker);
drivers/md/dm-clone-target.c
1873
INIT_DELAYED_WORK(&clone->waker, do_waker);
drivers/md/dm-clone-target.c
1875
clone->kcopyd_client = dm_kcopyd_client_create(&dm_kcopyd_throttle);
drivers/md/dm-clone-target.c
1876
if (IS_ERR(clone->kcopyd_client)) {
drivers/md/dm-clone-target.c
1877
r = PTR_ERR(clone->kcopyd_client);
drivers/md/dm-clone-target.c
1881
r = mempool_init_slab_pool(&clone->hydration_pool, MIN_HYDRATIONS,
drivers/md/dm-clone-target.c
1889
r = copy_ctr_args(clone, argc - 3, (const char **)argv + 3, &ti->error);
drivers/md/dm-clone-target.c
1893
mutex_init(&clone->commit_lock);
drivers/md/dm-clone-target.c
190
dm_table_event(clone->ti->table);
drivers/md/dm-clone-target.c
1903
ti->private = clone;
drivers/md/dm-clone-target.c
1908
mempool_exit(&clone->hydration_pool);
drivers/md/dm-clone-target.c
191
DMINFO("%s: Switching to %s mode", clone_device_name(clone),
drivers/md/dm-clone-target.c
1910
dm_kcopyd_client_destroy(clone->kcopyd_client);
drivers/md/dm-clone-target.c
1912
destroy_workqueue(clone->wq);
drivers/md/dm-clone-target.c
1914
hash_table_exit(clone);
drivers/md/dm-clone-target.c
1916
dm_clone_metadata_close(clone->cmd);
drivers/md/dm-clone-target.c
1918
dm_put_device(ti, clone->source_dev);
drivers/md/dm-clone-target.c
1920
dm_put_device(ti, clone->dest_dev);
drivers/md/dm-clone-target.c
1922
dm_put_device(ti, clone->metadata_dev);
drivers/md/dm-clone-target.c
1924
kfree(clone);
drivers/md/dm-clone-target.c
1932
struct clone *clone = ti->private;
drivers/md/dm-clone-target.c
1934
mutex_destroy(&clone->commit_lock);
drivers/md/dm-clone-target.c
1936
for (i = 0; i < clone->nr_ctr_args; i++)
drivers/md/dm-clone-target.c
1937
kfree(clone->ctr_args[i]);
drivers/md/dm-clone-target.c
1938
kfree(clone->ctr_args);
drivers/md/dm-clone-target.c
1940
mempool_exit(&clone->hydration_pool);
drivers/md/dm-clone-target.c
1941
dm_kcopyd_client_destroy(clone->kcopyd_client);
drivers/md/dm-clone-target.c
1942
cancel_delayed_work_sync(&clone->waker);
drivers/md/dm-clone-target.c
1943
destroy_workqueue(clone->wq);
drivers/md/dm-clone-target.c
1944
hash_table_exit(clone);
drivers/md/dm-clone-target.c
1945
dm_clone_metadata_close(clone->cmd);
drivers/md/dm-clone-target.c
1946
dm_put_device(ti, clone->source_dev);
drivers/md/dm-clone-target.c
1947
dm_put_device(ti, clone->dest_dev);
drivers/md/dm-clone-target.c
1948
dm_put_device(ti, clone->metadata_dev);
drivers/md/dm-clone-target.c
1950
kfree(clone);
drivers/md/dm-clone-target.c
1957
struct clone *clone = ti->private;
drivers/md/dm-clone-target.c
196
static void __abort_transaction(struct clone *clone)
drivers/md/dm-clone-target.c
1974
cancel_delayed_work_sync(&clone->waker);
drivers/md/dm-clone-target.c
1976
set_bit(DM_CLONE_HYDRATION_SUSPENDED, &clone->flags);
drivers/md/dm-clone-target.c
198
const char *dev_name = clone_device_name(clone);
drivers/md/dm-clone-target.c
1987
wait_event(clone->hydration_stopped, !atomic_read(&clone->hydrations_in_flight));
drivers/md/dm-clone-target.c
1988
flush_workqueue(clone->wq);
drivers/md/dm-clone-target.c
1990
(void) commit_metadata(clone, NULL);
drivers/md/dm-clone-target.c
1995
struct clone *clone = ti->private;
drivers/md/dm-clone-target.c
1997
clear_bit(DM_CLONE_HYDRATION_SUSPENDED, &clone->flags);
drivers/md/dm-clone-target.c
1998
do_waker(&clone->waker.work);
drivers/md/dm-clone-target.c
200
if (get_clone_mode(clone) >= CM_READ_ONLY)
drivers/md/dm-clone-target.c
2005
static void disable_passdown_if_not_supported(struct clone *clone)
drivers/md/dm-clone-target.c
2007
struct block_device *dest_dev = clone->dest_dev->bdev;
drivers/md/dm-clone-target.c
2011
if (!test_bit(DM_CLONE_DISCARD_PASSDOWN, &clone->flags))
drivers/md/dm-clone-target.c
2016
else if (dest_limits->max_discard_sectors < clone->region_size)
drivers/md/dm-clone-target.c
2022
clear_bit(DM_CLONE_DISCARD_PASSDOWN, &clone->flags);
drivers/md/dm-clone-target.c
2026
static void set_discard_limits(struct clone *clone, struct queue_limits *limits)
drivers/md/dm-clone-target.c
2028
struct block_device *dest_bdev = clone->dest_dev->bdev;
drivers/md/dm-clone-target.c
2031
if (!test_bit(DM_CLONE_DISCARD_PASSDOWN, &clone->flags)) {
drivers/md/dm-clone-target.c
2033
limits->discard_granularity = clone->region_size << SECTOR_SHIFT;
drivers/md/dm-clone-target.c
2035
clone->region_size);
drivers/md/dm-clone-target.c
204
if (dm_clone_metadata_abort(clone->cmd)) {
drivers/md/dm-clone-target.c
2052
struct clone *clone = ti->private;
drivers/md/dm-clone-target.c
2059
if (io_opt_sectors < clone->region_size ||
drivers/md/dm-clone-target.c
206
__set_clone_mode(clone, CM_FAIL);
drivers/md/dm-clone-target.c
2060
do_div(io_opt_sectors, clone->region_size)) {
drivers/md/dm-clone-target.c
2061
limits->io_min = clone->region_size << SECTOR_SHIFT;
drivers/md/dm-clone-target.c
2062
limits->io_opt = clone->region_size << SECTOR_SHIFT;
drivers/md/dm-clone-target.c
2065
disable_passdown_if_not_supported(clone);
drivers/md/dm-clone-target.c
2066
set_discard_limits(clone, limits);
drivers/md/dm-clone-target.c
2073
struct clone *clone = ti->private;
drivers/md/dm-clone-target.c
2074
struct dm_dev *dest_dev = clone->dest_dev;
drivers/md/dm-clone-target.c
2075
struct dm_dev *source_dev = clone->source_dev;
drivers/md/dm-clone-target.c
2086
static void set_hydration_threshold(struct clone *clone, unsigned int nr_regions)
drivers/md/dm-clone-target.c
2088
WRITE_ONCE(clone->hydration_threshold, nr_regions);
drivers/md/dm-clone-target.c
2095
wake_worker(clone);
drivers/md/dm-clone-target.c
2098
static void set_hydration_batch_size(struct clone *clone, unsigned int nr_regions)
drivers/md/dm-clone-target.c
210
static void __reload_in_core_bitset(struct clone *clone)
drivers/md/dm-clone-target.c
2100
WRITE_ONCE(clone->hydration_batch_size, nr_regions);
drivers/md/dm-clone-target.c
2103
static void enable_hydration(struct clone *clone)
drivers/md/dm-clone-target.c
2105
if (!test_and_set_bit(DM_CLONE_HYDRATION_ENABLED, &clone->flags))
drivers/md/dm-clone-target.c
2106
wake_worker(clone);
drivers/md/dm-clone-target.c
2109
static void disable_hydration(struct clone *clone)
drivers/md/dm-clone-target.c
2111
clear_bit(DM_CLONE_HYDRATION_ENABLED, &clone->flags);
drivers/md/dm-clone-target.c
2117
struct clone *clone = ti->private;
drivers/md/dm-clone-target.c
212
const char *dev_name = clone_device_name(clone);
drivers/md/dm-clone-target.c
2124
enable_hydration(clone);
drivers/md/dm-clone-target.c
2129
disable_hydration(clone);
drivers/md/dm-clone-target.c
214
if (get_clone_mode(clone) == CM_FAIL)
drivers/md/dm-clone-target.c
2140
set_hydration_threshold(clone, value);
drivers/md/dm-clone-target.c
2149
set_hydration_batch_size(clone, value);
drivers/md/dm-clone-target.c
2154
DMERR("%s: Unsupported message `%s'", clone_device_name(clone), argv[0]);
drivers/md/dm-clone-target.c
219
if (dm_clone_reload_in_core_bitset(clone->cmd)) {
drivers/md/dm-clone-target.c
221
__set_clone_mode(clone, CM_FAIL);
drivers/md/dm-clone-target.c
225
static void __metadata_operation_failed(struct clone *clone, const char *op, int r)
drivers/md/dm-clone-target.c
228
clone_device_name(clone), op, r);
drivers/md/dm-clone-target.c
230
__abort_transaction(clone);
drivers/md/dm-clone-target.c
231
__set_clone_mode(clone, CM_READ_ONLY);
drivers/md/dm-clone-target.c
238
__reload_in_core_bitset(clone);
drivers/md/dm-clone-target.c
244
static inline void wakeup_hydration_waiters(struct clone *clone)
drivers/md/dm-clone-target.c
246
wake_up_all(&clone->hydration_stopped);
drivers/md/dm-clone-target.c
249
static inline void wake_worker(struct clone *clone)
drivers/md/dm-clone-target.c
251
queue_work(clone->wq, &clone->worker);
drivers/md/dm-clone-target.c
259
static inline void remap_to_source(struct clone *clone, struct bio *bio)
drivers/md/dm-clone-target.c
261
bio_set_dev(bio, clone->source_dev->bdev);
drivers/md/dm-clone-target.c
264
static inline void remap_to_dest(struct clone *clone, struct bio *bio)
drivers/md/dm-clone-target.c
266
bio_set_dev(bio, clone->dest_dev->bdev);
drivers/md/dm-clone-target.c
269
static bool bio_triggers_commit(struct clone *clone, struct bio *bio)
drivers/md/dm-clone-target.c
272
dm_clone_changed_this_transaction(clone->cmd);
drivers/md/dm-clone-target.c
276
static inline sector_t region_to_sector(struct clone *clone, unsigned long region_nr)
drivers/md/dm-clone-target.c
278
return ((sector_t)region_nr << clone->region_shift);
drivers/md/dm-clone-target.c
282
static inline unsigned long bio_to_region(struct clone *clone, struct bio *bio)
drivers/md/dm-clone-target.c
284
return (bio->bi_iter.bi_sector >> clone->region_shift);
drivers/md/dm-clone-target.c
288
static void bio_region_range(struct clone *clone, struct bio *bio,
drivers/md/dm-clone-target.c
293
*rs = dm_sector_div_up(bio->bi_iter.bi_sector, clone->region_size);
drivers/md/dm-clone-target.c
294
end = bio_end_sector(bio) >> clone->region_shift;
drivers/md/dm-clone-target.c
303
static inline bool is_overwrite_bio(struct clone *clone, struct bio *bio)
drivers/md/dm-clone-target.c
305
return (bio_data_dir(bio) == WRITE && bio_sectors(bio) == clone->region_size);
drivers/md/dm-clone-target.c
339
static void issue_bio(struct clone *clone, struct bio *bio)
drivers/md/dm-clone-target.c
341
if (!bio_triggers_commit(clone, bio)) {
drivers/md/dm-clone-target.c
350
if (unlikely(get_clone_mode(clone) >= CM_READ_ONLY)) {
drivers/md/dm-clone-target.c
359
spin_lock_irq(&clone->lock);
drivers/md/dm-clone-target.c
360
bio_list_add(&clone->deferred_flush_bios, bio);
drivers/md/dm-clone-target.c
361
spin_unlock_irq(&clone->lock);
drivers/md/dm-clone-target.c
363
wake_worker(clone);
drivers/md/dm-clone-target.c
372
static void remap_and_issue(struct clone *clone, struct bio *bio)
drivers/md/dm-clone-target.c
374
remap_to_dest(clone, bio);
drivers/md/dm-clone-target.c
375
issue_bio(clone, bio);
drivers/md/dm-clone-target.c
385
static void issue_deferred_bios(struct clone *clone, struct bio_list *bios)
drivers/md/dm-clone-target.c
396
if (bio_triggers_commit(clone, bio))
drivers/md/dm-clone-target.c
402
spin_lock_irqsave(&clone->lock, flags);
drivers/md/dm-clone-target.c
403
bio_list_merge(&clone->deferred_bios, &normal_bios);
drivers/md/dm-clone-target.c
404
bio_list_merge(&clone->deferred_flush_bios, &flush_bios);
drivers/md/dm-clone-target.c
405
spin_unlock_irqrestore(&clone->lock, flags);
drivers/md/dm-clone-target.c
407
wake_worker(clone);
drivers/md/dm-clone-target.c
410
static void complete_overwrite_bio(struct clone *clone, struct bio *bio)
drivers/md/dm-clone-target.c
433
if (unlikely(get_clone_mode(clone) >= CM_READ_ONLY)) {
drivers/md/dm-clone-target.c
442
spin_lock_irqsave(&clone->lock, flags);
drivers/md/dm-clone-target.c
443
bio_list_add(&clone->deferred_flush_completions, bio);
drivers/md/dm-clone-target.c
444
spin_unlock_irqrestore(&clone->lock, flags);
drivers/md/dm-clone-target.c
446
wake_worker(clone);
drivers/md/dm-clone-target.c
455
static void complete_discard_bio(struct clone *clone, struct bio *bio, bool success)
drivers/md/dm-clone-target.c
464
if (test_bit(DM_CLONE_DISCARD_PASSDOWN, &clone->flags) && success) {
drivers/md/dm-clone-target.c
465
remap_to_dest(clone, bio);
drivers/md/dm-clone-target.c
466
bio_region_range(clone, bio, &rs, &nr_regions);
drivers/md/dm-clone-target.c
467
trim_bio(bio, region_to_sector(clone, rs),
drivers/md/dm-clone-target.c
468
nr_regions << clone->region_shift);
drivers/md/dm-clone-target.c
474
static void process_discard_bio(struct clone *clone, struct bio *bio)
drivers/md/dm-clone-target.c
478
bio_region_range(clone, bio, &rs, &nr_regions);
drivers/md/dm-clone-target.c
484
if (WARN_ON(rs >= clone->nr_regions || (rs + nr_regions) < rs ||
drivers/md/dm-clone-target.c
485
(rs + nr_regions) > clone->nr_regions)) {
drivers/md/dm-clone-target.c
487
clone_device_name(clone), rs, nr_regions,
drivers/md/dm-clone-target.c
488
clone->nr_regions,
drivers/md/dm-clone-target.c
499
if (dm_clone_is_range_hydrated(clone->cmd, rs, nr_regions)) {
drivers/md/dm-clone-target.c
500
complete_discard_bio(clone, bio, true);
drivers/md/dm-clone-target.c
509
if (unlikely(get_clone_mode(clone) >= CM_READ_ONLY)) {
drivers/md/dm-clone-target.c
517
spin_lock_irq(&clone->lock);
drivers/md/dm-clone-target.c
518
bio_list_add(&clone->deferred_discard_bios, bio);
drivers/md/dm-clone-target.c
519
spin_unlock_irq(&clone->lock);
drivers/md/dm-clone-target.c
521
wake_worker(clone);
drivers/md/dm-clone-target.c
530
struct clone *clone;
drivers/md/dm-clone-target.c
576
static int hash_table_init(struct clone *clone)
drivers/md/dm-clone-target.c
583
clone->ht = kvmalloc_objs(struct hash_table_bucket, sz);
drivers/md/dm-clone-target.c
584
if (!clone->ht)
drivers/md/dm-clone-target.c
588
bucket = clone->ht + i;
drivers/md/dm-clone-target.c
597
static void hash_table_exit(struct clone *clone)
drivers/md/dm-clone-target.c
599
kvfree(clone->ht);
drivers/md/dm-clone-target.c
602
static struct hash_table_bucket *get_hash_table_bucket(struct clone *clone,
drivers/md/dm-clone-target.c
605
return &clone->ht[hash_long(region_nr, HASH_TABLE_BITS)];
drivers/md/dm-clone-target.c
662
static struct dm_clone_region_hydration *alloc_hydration(struct clone *clone)
drivers/md/dm-clone-target.c
670
hd = mempool_alloc(&clone->hydration_pool, GFP_NOIO);
drivers/md/dm-clone-target.c
671
hd->clone = clone;
drivers/md/dm-clone-target.c
678
mempool_free(hd, &hd->clone->hydration_pool);
drivers/md/dm-clone-target.c
704
struct clone *clone = hd->clone;
drivers/md/dm-clone-target.c
706
if (unlikely(get_clone_mode(clone) >= CM_READ_ONLY))
drivers/md/dm-clone-target.c
711
r = dm_clone_set_region_hydrated(clone->cmd, hd->region_nr);
drivers/md/dm-clone-target.c
713
bucket = get_hash_table_bucket(clone, hd->region_nr);
drivers/md/dm-clone-target.c
737
struct clone *clone = hd->clone;
drivers/md/dm-clone-target.c
743
complete_overwrite_bio(clone, hd->overwrite_bio);
drivers/md/dm-clone-target.c
745
issue_deferred_bios(clone, &hd->deferred_bios);
drivers/md/dm-clone-target.c
757
if (atomic_dec_and_test(&clone->hydrations_in_flight))
drivers/md/dm-clone-target.c
758
wakeup_hydration_waiters(clone);
drivers/md/dm-clone-target.c
766
struct clone *clone = hd->clone;
drivers/md/dm-clone-target.c
771
DMERR_LIMIT("%s: hydration failed", clone_device_name(clone));
drivers/md/dm-clone-target.c
788
if (test_bit(DM_CLONE_HYDRATION_ENABLED, &clone->flags) &&
drivers/md/dm-clone-target.c
789
!atomic_read(&clone->ios_in_flight))
drivers/md/dm-clone-target.c
790
wake_worker(clone);
drivers/md/dm-clone-target.c
798
struct clone *clone = hd->clone;
drivers/md/dm-clone-target.c
803
region_size = clone->region_size;
drivers/md/dm-clone-target.c
807
total_size = region_to_sector(clone, nr_regions - 1);
drivers/md/dm-clone-target.c
809
if (region_end == clone->nr_regions - 1) {
drivers/md/dm-clone-target.c
814
tail_size = clone->ti->len & (region_size - 1);
drivers/md/dm-clone-target.c
823
from.bdev = clone->source_dev->bdev;
drivers/md/dm-clone-target.c
824
from.sector = region_to_sector(clone, region_start);
drivers/md/dm-clone-target.c
827
to.bdev = clone->dest_dev->bdev;
drivers/md/dm-clone-target.c
832
atomic_add(nr_regions, &clone->hydrations_in_flight);
drivers/md/dm-clone-target.c
833
dm_kcopyd_copy(clone->kcopyd_client, &from, 1, &to, 0,
drivers/md/dm-clone-target.c
860
atomic_inc(&hd->clone->hydrations_in_flight);
drivers/md/dm-clone-target.c
874
static void hydrate_bio_region(struct clone *clone, struct bio *bio)
drivers/md/dm-clone-target.c
880
region_nr = bio_to_region(clone, bio);
drivers/md/dm-clone-target.c
881
bucket = get_hash_table_bucket(clone, region_nr);
drivers/md/dm-clone-target.c
893
if (dm_clone_is_region_hydrated(clone->cmd, region_nr)) {
drivers/md/dm-clone-target.c
896
issue_bio(clone, bio);
drivers/md/dm-clone-target.c
906
hd = alloc_hydration(clone);
drivers/md/dm-clone-target.c
912
if (dm_clone_is_region_hydrated(clone->cmd, region_nr)) {
drivers/md/dm-clone-target.c
915
issue_bio(clone, bio);
drivers/md/dm-clone-target.c
933
if (unlikely(get_clone_mode(clone) >= CM_READ_ONLY)) {
drivers/md/dm-clone-target.c
948
if (is_overwrite_bio(clone, bio)) {
drivers/md/dm-clone-target.c
981
struct clone *clone = hd->clone;
drivers/md/dm-clone-target.c
982
unsigned int max_batch_size = READ_ONCE(clone->hydration_batch_size);
drivers/md/dm-core.h
249
struct bio clone;
drivers/md/dm-core.h
251
#define DM_TARGET_IO_BIO_OFFSET (offsetof(struct dm_target_io, clone))
drivers/md/dm-core.h
253
(offsetof(struct dm_target_io, clone) + offsetof(struct dm_io, tio))
drivers/md/dm-crypt.c
1643
static void crypt_free_buffer_pages(struct crypt_config *cc, struct bio *clone);
drivers/md/dm-crypt.c
1668
struct bio *clone;
drivers/md/dm-crypt.c
1678
clone = bio_alloc_bioset(cc->dev->bdev, nr_iovecs, io->base_bio->bi_opf,
drivers/md/dm-crypt.c
1680
clone->bi_private = io;
drivers/md/dm-crypt.c
1681
clone->bi_end_io = crypt_endio;
drivers/md/dm-crypt.c
1682
clone->bi_ioprio = io->base_bio->bi_ioprio;
drivers/md/dm-crypt.c
1683
clone->bi_iter.bi_sector = cc->start + io->sector;
drivers/md/dm-crypt.c
1710
crypt_free_buffer_pages(cc, clone);
drivers/md/dm-crypt.c
1711
bio_put(clone);
drivers/md/dm-crypt.c
1719
__bio_add_page(clone, pages, size_to_add, 0);
drivers/md/dm-crypt.c
1724
if (dm_crypt_integrity_io_alloc(io, clone)) {
drivers/md/dm-crypt.c
1725
crypt_free_buffer_pages(cc, clone);
drivers/md/dm-crypt.c
1726
bio_put(clone);
drivers/md/dm-crypt.c
1727
clone = NULL;
drivers/md/dm-crypt.c
1733
return clone;
drivers/md/dm-crypt.c
1736
static void crypt_free_buffer_pages(struct crypt_config *cc, struct bio *clone)
drivers/md/dm-crypt.c
1740
if (clone->bi_vcnt > 0) { /* bio_for_each_folio_all crashes with an empty bio */
drivers/md/dm-crypt.c
1741
bio_for_each_folio_all(fi, clone) {
drivers/md/dm-crypt.c
1827
static void crypt_endio(struct bio *clone)
drivers/md/dm-crypt.c
1829
struct dm_crypt_io *io = clone->bi_private;
drivers/md/dm-crypt.c
1831
unsigned int rw = bio_data_dir(clone);
drivers/md/dm-crypt.c
1832
blk_status_t error = clone->bi_status;
drivers/md/dm-crypt.c
1843
crypt_free_buffer_pages(cc, clone);
drivers/md/dm-crypt.c
1845
bio_put(clone);
drivers/md/dm-crypt.c
1863
struct bio *clone;
drivers/md/dm-crypt.c
1869
clone = crypt_alloc_buffer(io, io->base_bio->bi_iter.bi_size);
drivers/md/dm-crypt.c
1870
if (unlikely(!clone)) {
drivers/md/dm-crypt.c
1874
crypt_convert_init(cc, &io->ctx, clone, clone, io->sector);
drivers/md/dm-crypt.c
1875
io->saved_bi_iter = clone->bi_iter;
drivers/md/dm-crypt.c
1876
dm_submit_bio_remap(io->base_bio, clone);
drivers/md/dm-crypt.c
1886
clone = bio_alloc_clone(cc->dev->bdev, io->base_bio, gfp, &cc->bs);
drivers/md/dm-crypt.c
1887
if (!clone)
drivers/md/dm-crypt.c
1890
clone->bi_iter.bi_sector = cc->start + io->sector;
drivers/md/dm-crypt.c
1891
clone->bi_private = io;
drivers/md/dm-crypt.c
1892
clone->bi_end_io = crypt_endio;
drivers/md/dm-crypt.c
1896
if (dm_crypt_integrity_io_alloc(io, clone)) {
drivers/md/dm-crypt.c
1898
bio_put(clone);
drivers/md/dm-crypt.c
1902
dm_submit_bio_remap(io->base_bio, clone);
drivers/md/dm-crypt.c
1926
struct bio *clone = io->ctx.bio_out;
drivers/md/dm-crypt.c
1928
dm_submit_bio_remap(io->base_bio, clone);
drivers/md/dm-crypt.c
1987
struct bio *clone = io->ctx.bio_out;
drivers/md/dm-crypt.c
1994
crypt_free_buffer_pages(cc, clone);
drivers/md/dm-crypt.c
1995
bio_put(clone);
drivers/md/dm-crypt.c
2005
dm_submit_bio_remap(io->base_bio, clone);
drivers/md/dm-crypt.c
2080
struct bio *clone;
drivers/md/dm-crypt.c
2090
clone = crypt_alloc_buffer(io, io->base_bio->bi_iter.bi_size);
drivers/md/dm-crypt.c
2091
if (unlikely(!clone)) {
drivers/md/dm-crypt.c
2096
io->ctx.bio_out = clone;
drivers/md/dm-crypt.c
2097
io->ctx.iter_out = clone->bi_iter;
drivers/md/dm-crypt.c
2100
bio_copy_data(clone, io->base_bio);
drivers/md/dm-crypt.c
2101
io->ctx.bio_in = clone;
drivers/md/dm-crypt.c
2102
io->ctx.iter_in = clone->bi_iter;
drivers/md/dm-crypt.c
285
static void crypt_endio(struct bio *clone);
drivers/md/dm-era-target.c
1035
struct dm_block *clone;
drivers/md/dm-era-target.c
1061
&sb_validator, &clone, &inc);
drivers/md/dm-era-target.c
1072
dm_tm_unlock(md->tm, clone);
drivers/md/dm-era-target.c
1080
dm_tm_unlock(md->tm, clone);
drivers/md/dm-era-target.c
1084
md->metadata_snap = dm_block_location(clone);
drivers/md/dm-era-target.c
1086
dm_tm_unlock(md->tm, clone);
drivers/md/dm-era-target.c
1095
struct dm_block *clone;
drivers/md/dm-era-target.c
1103
r = dm_tm_read_lock(md->tm, md->metadata_snap, &sb_validator, &clone);
drivers/md/dm-era-target.c
1115
disk = dm_block_data(clone);
drivers/md/dm-era-target.c
1120
dm_tm_unlock(md->tm, clone);
drivers/md/dm-era-target.c
1127
dm_tm_unlock(md->tm, clone);
drivers/md/dm-era-target.c
1131
location = dm_block_location(clone);
drivers/md/dm-era-target.c
1132
dm_tm_unlock(md->tm, clone);
drivers/md/dm-flakey.c
407
static void clone_free(struct bio *clone)
drivers/md/dm-flakey.c
411
if (clone->bi_vcnt > 0) { /* bio_for_each_folio_all crashes with an empty bio */
drivers/md/dm-flakey.c
412
bio_for_each_folio_all(fi, clone)
drivers/md/dm-flakey.c
416
bio_uninit(clone);
drivers/md/dm-flakey.c
417
kfree(clone);
drivers/md/dm-flakey.c
420
static void clone_endio(struct bio *clone)
drivers/md/dm-flakey.c
422
struct bio *bio = clone->bi_private;
drivers/md/dm-flakey.c
423
bio->bi_status = clone->bi_status;
drivers/md/dm-flakey.c
424
clone_free(clone);
drivers/md/dm-flakey.c
430
struct bio *clone;
drivers/md/dm-flakey.c
440
clone = bio_kmalloc(nr_iovecs, GFP_NOIO | __GFP_NORETRY | __GFP_NOWARN);
drivers/md/dm-flakey.c
441
if (!clone)
drivers/md/dm-flakey.c
444
bio_init_inline(clone, fc->dev->bdev, nr_iovecs, bio->bi_opf);
drivers/md/dm-flakey.c
446
clone->bi_iter.bi_sector = flakey_map_sector(ti, bio->bi_iter.bi_sector);
drivers/md/dm-flakey.c
447
clone->bi_private = bio;
drivers/md/dm-flakey.c
448
clone->bi_end_io = clone_endio;
drivers/md/dm-flakey.c
467
clone_free(clone);
drivers/md/dm-flakey.c
486
__bio_add_page(clone, pages, size_to_add, 0);
drivers/md/dm-flakey.c
490
return clone;
drivers/md/dm-flakey.c
553
struct bio *clone = clone_bio(ti, fc, bio);
drivers/md/dm-flakey.c
554
if (clone) {
drivers/md/dm-flakey.c
556
corrupt_bio_data(clone, fc,
drivers/md/dm-flakey.c
557
clone->bi_iter);
drivers/md/dm-flakey.c
559
corrupt_bio_random(clone,
drivers/md/dm-flakey.c
560
clone->bi_iter);
drivers/md/dm-flakey.c
561
submit_bio(clone);
drivers/md/dm-mpath.c
1647
static int multipath_end_io(struct dm_target *ti, struct request *clone,
drivers/md/dm-mpath.c
1690
clone->io_start_time_ns);
drivers/md/dm-mpath.c
1696
static int multipath_end_io_bio(struct dm_target *ti, struct bio *clone,
drivers/md/dm-mpath.c
1700
struct dm_mpath_io *mpio = get_mpio_from_bio(clone);
drivers/md/dm-mpath.c
1726
multipath_queue_bio(m, clone);
drivers/md/dm-mpath.c
1735
dm_start_time_ns_from_clone(clone)));
drivers/md/dm-mpath.c
516
struct request *clone;
drivers/md/dm-mpath.c
539
clone = blk_mq_alloc_request(q, rq->cmd_flags | REQ_NOMERGE,
drivers/md/dm-mpath.c
541
if (IS_ERR(clone)) {
drivers/md/dm-mpath.c
558
clone->bio = clone->biotail = NULL;
drivers/md/dm-mpath.c
559
clone->cmd_flags |= REQ_FAILFAST_TRANSPORT;
drivers/md/dm-mpath.c
560
*__clone = clone;
drivers/md/dm-mpath.c
569
static void multipath_release_clone(struct request *clone,
drivers/md/dm-mpath.c
584
clone->io_start_time_ns);
drivers/md/dm-mpath.c
587
blk_mq_free_request(clone);
drivers/md/dm-pcache/backing_dev.c
271
struct bio *clone;
drivers/md/dm-pcache/backing_dev.c
275
clone = &backing_req->bio;
drivers/md/dm-pcache/backing_dev.c
278
bio_trim(clone, off >> SECTOR_SHIFT, len >> SECTOR_SHIFT);
drivers/md/dm-pcache/backing_dev.c
280
clone->bi_iter.bi_sector = (pcache_req->off + off) >> SECTOR_SHIFT;
drivers/md/dm-pcache/backing_dev.c
281
clone->bi_private = backing_req;
drivers/md/dm-pcache/backing_dev.c
282
clone->bi_end_io = backing_dev_bio_end;
drivers/md/dm-rq.c
119
tio->clone->bio = NULL;
drivers/md/dm-rq.c
164
static void dm_end_request(struct request *clone, blk_status_t error)
drivers/md/dm-rq.c
166
struct dm_rq_target_io *tio = clone->end_io_data;
drivers/md/dm-rq.c
170
blk_rq_unprep_clone(clone);
drivers/md/dm-rq.c
171
tio->ti->type->release_clone_rq(clone, NULL);
drivers/md/dm-rq.c
202
if (tio->clone) {
drivers/md/dm-rq.c
203
blk_rq_unprep_clone(tio->clone);
drivers/md/dm-rq.c
204
tio->ti->type->release_clone_rq(tio->clone, NULL);
drivers/md/dm-rq.c
21
struct request *orig, *clone;
drivers/md/dm-rq.c
211
static void dm_done(struct request *clone, blk_status_t error, bool mapped)
drivers/md/dm-rq.c
214
struct dm_rq_target_io *tio = clone->end_io_data;
drivers/md/dm-rq.c
221
r = rq_end_io(tio->ti, clone, error, &tio->info);
drivers/md/dm-rq.c
225
if (req_op(clone) == REQ_OP_DISCARD &&
drivers/md/dm-rq.c
226
!clone->q->limits.max_discard_sectors)
drivers/md/dm-rq.c
228
else if (req_op(clone) == REQ_OP_WRITE_ZEROES &&
drivers/md/dm-rq.c
229
!clone->q->limits.max_write_zeroes_sectors)
drivers/md/dm-rq.c
236
dm_end_request(clone, error);
drivers/md/dm-rq.c
262
struct request *clone = tio->clone;
drivers/md/dm-rq.c
264
if (!clone) {
drivers/md/dm-rq.c
276
dm_done(clone, tio->error, mapped);
drivers/md/dm-rq.c
303
static enum rq_end_io_ret end_clone_request(struct request *clone,
drivers/md/dm-rq.c
307
struct dm_rq_target_io *tio = clone->end_io_data;
drivers/md/dm-rq.c
318
container_of(bio, struct dm_rq_clone_bio_info, clone);
drivers/md/dm-rq.c
327
static int setup_clone(struct request *clone, struct request *rq,
drivers/md/dm-rq.c
332
r = blk_rq_prep_clone(clone, rq, &tio->md->mempools->bs, gfp_mask,
drivers/md/dm-rq.c
337
clone->end_io = end_clone_request;
drivers/md/dm-rq.c
338
clone->end_io_data = tio;
drivers/md/dm-rq.c
340
tio->clone = clone;
drivers/md/dm-rq.c
350
tio->clone = NULL;
drivers/md/dm-rq.c
375
struct request *clone = NULL;
drivers/md/dm-rq.c
378
r = ti->type->clone_and_map_rq(ti, rq, &tio->info, &clone);
drivers/md/dm-rq.c
384
if (setup_clone(clone, rq, tio, GFP_ATOMIC)) {
drivers/md/dm-rq.c
386
ti->type->release_clone_rq(clone, &tio->info);
drivers/md/dm-rq.c
391
trace_block_rq_remap(clone, disk_devt(dm_disk(md)),
drivers/md/dm-rq.c
393
ret = blk_insert_cloned_request(clone);
drivers/md/dm-rq.c
399
blk_rq_unprep_clone(clone);
drivers/md/dm-rq.c
400
blk_mq_cleanup_rq(clone);
drivers/md/dm-rq.c
401
tio->ti->type->release_clone_rq(clone, &tio->info);
drivers/md/dm-rq.c
402
tio->clone = NULL;
drivers/md/dm-rq.c
78
static void end_clone_bio(struct bio *clone)
drivers/md/dm-rq.c
81
container_of(clone, struct dm_rq_clone_bio_info, clone);
drivers/md/dm-rq.c
84
blk_status_t error = clone->bi_status;
drivers/md/dm-rq.c
85
bool is_last = !clone->bi_next;
drivers/md/dm-rq.c
87
bio_put(clone);
drivers/md/dm-rq.h
31
struct bio clone;
drivers/md/dm-table.c
1056
front_pad = offsetof(struct dm_rq_clone_bio_info, clone);
drivers/md/dm-target.c
201
struct request **clone)
drivers/md/dm-target.c
206
static void io_err_release_clone_rq(struct request *clone,
drivers/md/dm-zone.c
464
void dm_zone_endio(struct dm_io *io, struct bio *clone)
drivers/md/dm-zone.c
474
if (clone->bi_status == BLK_STS_OK &&
drivers/md/dm-zone.c
475
bio_op(clone) == REQ_OP_ZONE_APPEND) {
drivers/md/dm-zone.c
478
clone->bi_iter.bi_sector);
drivers/md/dm-zoned-target.c
103
static void dmz_clone_endio(struct bio *clone)
drivers/md/dm-zoned-target.c
105
struct dmz_bioctx *bioctx = clone->bi_private;
drivers/md/dm-zoned-target.c
106
blk_status_t status = clone->bi_status;
drivers/md/dm-zoned-target.c
108
bio_put(clone);
drivers/md/dm-zoned-target.c
123
struct bio *clone;
drivers/md/dm-zoned-target.c
128
clone = bio_alloc_clone(dev->bdev, bio, GFP_NOIO, &dmz->bio_set);
drivers/md/dm-zoned-target.c
129
if (!clone)
drivers/md/dm-zoned-target.c
133
clone->bi_iter.bi_sector =
drivers/md/dm-zoned-target.c
135
clone->bi_iter.bi_size = dmz_blk2sect(nr_blocks) << SECTOR_SHIFT;
drivers/md/dm-zoned-target.c
136
clone->bi_end_io = dmz_clone_endio;
drivers/md/dm-zoned-target.c
137
clone->bi_private = bioctx;
drivers/md/dm-zoned-target.c
139
bio_advance(bio, clone->bi_iter.bi_size);
drivers/md/dm-zoned-target.c
142
submit_bio_noacct(clone);
drivers/md/dm.c
119
return container_of(bio, struct dm_target_io, clone)->target_bio_nr;
drivers/md/dm.c
1358
void dm_submit_bio_remap(struct bio *clone, struct bio *tgt_clone)
drivers/md/dm.c
1360
struct dm_target_io *tio = clone_to_tio(clone);
drivers/md/dm.c
1365
tgt_clone = clone;
drivers/md/dm.c
1373
dm_start_io_acct(io, clone);
drivers/md/dm.c
1397
static void __map_bio(struct bio *clone)
drivers/md/dm.c
1399
struct dm_target_io *tio = clone_to_tio(clone);
drivers/md/dm.c
1405
clone->bi_end_io = clone_endio;
drivers/md/dm.c
1410
tio->old_sector = clone->bi_iter.bi_sector;
drivers/md/dm.c
1413
unlikely(swap_bios_limit(ti, clone))) {
drivers/md/dm.c
1422
r = linear_map(ti, clone);
drivers/md/dm.c
1424
r = stripe_map(ti, clone);
drivers/md/dm.c
1426
r = ti->type->map(ti, clone);
drivers/md/dm.c
1432
dm_start_io_acct(io, clone);
drivers/md/dm.c
1435
dm_submit_bio_remap(clone, NULL);
drivers/md/dm.c
1440
unlikely(swap_bios_limit(ti, clone)))
drivers/md/dm.c
1442
free_tio(clone);
drivers/md/dm.c
1503
struct bio *clone;
drivers/md/dm.c
1518
while ((clone = bio_list_pop(&blist))) {
drivers/md/dm.c
1520
dm_tio_set_flag(clone_to_tio(clone), DM_TIO_IS_DUPLICATE_BIO);
drivers/md/dm.c
1521
__map_bio(clone);
drivers/md/dm.c
1547
ci->io->tio.clone.bi_iter.bi_size = 0;
drivers/md/dm.c
1572
struct bio *clone;
drivers/md/dm.c
1580
clone = alloc_tio(ci, NULL, 0, &len, GFP_NOIO);
drivers/md/dm.c
1582
bio_set_dev(clone, dd->dm_dev->bdev);
drivers/md/dm.c
1583
clone->bi_end_io = clone_endio;
drivers/md/dm.c
1584
dm_submit_bio_remap(clone, NULL);
drivers/md/dm.c
1723
struct bio *clone;
drivers/md/dm.c
1754
clone = alloc_tio(ci, ti, 0, &len, GFP_NOWAIT);
drivers/md/dm.c
1755
if (unlikely(!clone))
drivers/md/dm.c
1758
clone = alloc_tio(ci, ti, 0, &len, GFP_NOIO);
drivers/md/dm.c
1760
__map_bio(clone);
drivers/md/dm.c
1828
struct bio *clone;
drivers/md/dm.c
1871
clone = bio_list_pop(&blist);
drivers/md/dm.c
1872
clone->bi_opf &= ~REQ_OP_MASK;
drivers/md/dm.c
1873
clone->bi_opf |= REQ_OP_ZONE_RESET | REQ_SYNC;
drivers/md/dm.c
1874
clone->bi_iter.bi_sector = sector;
drivers/md/dm.c
1875
clone->bi_iter.bi_size = 0;
drivers/md/dm.c
1876
__map_bio(clone);
drivers/md/dm.c
2102
bio_poll(&io->tio.clone, iob, flags);
drivers/md/dm.c
540
static void dm_start_io_acct(struct dm_io *io, struct bio *clone)
drivers/md/dm.c
549
if (!clone || likely(dm_tio_is_normal(clone_to_tio(clone)))) {
drivers/md/dm.c
575
struct bio *clone;
drivers/md/dm.c
577
clone = bio_alloc_clone(NULL, bio, gfp_mask, &md->mempools->io_bs);
drivers/md/dm.c
578
if (unlikely(!clone))
drivers/md/dm.c
580
tio = clone_to_tio(clone);
drivers/md/dm.c
610
bio_put(&io->tio.clone);
drivers/md/dm.c
618
struct bio *clone;
drivers/md/dm.c
624
clone = &tio->clone;
drivers/md/dm.c
626
clone = bio_alloc_clone(NULL, ci->bio, gfp_mask,
drivers/md/dm.c
628
if (!clone)
drivers/md/dm.c
632
clone->bi_opf &= ~REQ_DM_POLL_LIST;
drivers/md/dm.c
634
tio = clone_to_tio(clone);
drivers/md/dm.c
646
clone->bi_bdev = md->disk->part0;
drivers/md/dm.c
648
bio_set_dev(clone, md->disk->part0);
drivers/md/dm.c
651
clone->bi_iter.bi_size = to_bytes(*len);
drivers/md/dm.c
652
if (bio_integrity(clone))
drivers/md/dm.c
653
bio_integrity_trim(clone);
drivers/md/dm.c
656
return clone;
drivers/md/dm.c
659
static void free_tio(struct bio *clone)
drivers/md/dm.c
661
if (dm_tio_flagged(clone_to_tio(clone), DM_TIO_INSIDE_DM_IO))
drivers/md/dm.c
663
bio_put(clone);
drivers/md/dm.c
93
static inline struct dm_target_io *clone_to_tio(struct bio *clone)
drivers/md/dm.c
95
return container_of(clone, struct dm_target_io, clone);
drivers/md/dm.h
109
void dm_zone_endio(struct dm_io *io, struct bio *clone);
drivers/md/md.c
9240
struct bio *clone =
drivers/md/md.c
9243
md_io_clone = container_of(clone, struct md_io_clone, bio_clone);
drivers/md/md.c
9256
clone->bi_end_io = md_end_clone_io;
drivers/md/md.c
9257
clone->bi_private = md_io_clone;
drivers/md/md.c
9258
*bio = clone;
drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c
365
struct sk_buff *clone;
drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c
382
clone = skb_clone_sk(skb);
drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c
383
if (!clone)
drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c
388
kfree_skb(clone);
drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c
392
ps->tx_skb = clone;
drivers/net/dsa/hirschmann/hellcreek_hwtstamp.h
47
struct sk_buff *clone, unsigned int type);
drivers/net/dsa/microchip/ksz_ptp.c
500
struct sk_buff *clone;
drivers/net/dsa/microchip/ksz_ptp.c
539
clone = skb_clone_sk(skb);
drivers/net/dsa/microchip/ksz_ptp.c
540
if (!clone)
drivers/net/dsa/microchip/ksz_ptp.c
544
KSZ_SKB_CB(skb)->clone = clone;
drivers/net/dsa/microchip/ksz_ptp.c
568
struct sk_buff *clone, *skb = xmit_work->skb;
drivers/net/dsa/microchip/ksz_ptp.c
575
clone = KSZ_SKB_CB(skb)->clone;
drivers/net/dsa/microchip/ksz_ptp.c
577
skb_shinfo(clone)->tx_flags |= SKBTX_IN_PROGRESS;
drivers/net/dsa/microchip/ksz_ptp.c
583
ksz_ptp_txtstamp_skb(dev, prt, clone);
drivers/net/dsa/mv88e6xxx/hwtstamp.c
469
struct sk_buff *clone;
drivers/net/dsa/mv88e6xxx/hwtstamp.c
480
clone = skb_clone_sk(skb);
drivers/net/dsa/mv88e6xxx/hwtstamp.c
481
if (!clone)
drivers/net/dsa/mv88e6xxx/hwtstamp.c
486
kfree_skb(clone);
drivers/net/dsa/mv88e6xxx/hwtstamp.c
490
ps->tx_skb = clone;
drivers/net/dsa/mv88e6xxx/hwtstamp.h
120
struct sk_buff *clone, unsigned int type);
drivers/net/dsa/mv88e6xxx/hwtstamp.h
153
struct sk_buff *clone,
drivers/net/dsa/ocelot/felix.c
1616
struct sk_buff *clone = OCELOT_SKB_CB(skb)->clone;
drivers/net/dsa/ocelot/felix.c
1620
if (!clone)
drivers/net/dsa/ocelot/felix.c
1626
if (skb != clone)
drivers/net/dsa/ocelot/felix.c
1930
struct sk_buff *clone = NULL;
drivers/net/dsa/ocelot/felix.c
1935
if (ocelot_port_txtstamp_request(ocelot, port, skb, &clone)) {
drivers/net/dsa/ocelot/felix.c
1942
if (clone)
drivers/net/dsa/ocelot/felix.c
1943
OCELOT_SKB_CB(skb)->clone = clone;
drivers/net/dsa/sja1105/sja1105_main.c
2671
struct sk_buff *clone, *skb = xmit_work->skb;
drivers/net/dsa/sja1105/sja1105_main.c
2676
clone = SJA1105_SKB_CB(skb)->clone;
drivers/net/dsa/sja1105/sja1105_main.c
2680
sja1105_mgmt_xmit(ds, port, 0, skb, !!clone);
drivers/net/dsa/sja1105/sja1105_main.c
2683
if (clone)
drivers/net/dsa/sja1105/sja1105_main.c
2684
sja1105_ptp_txtstamp_skb(ds, port, clone);
drivers/net/dsa/sja1105/sja1105_ptp.c
456
struct sk_buff *clone = SJA1105_SKB_CB(skb)->clone;
drivers/net/dsa/sja1105/sja1105_ptp.c
469
SJA1105_SKB_CB(clone)->ts_id = ts_id;
drivers/net/dsa/sja1105/sja1105_ptp.c
473
skb_queue_tail(&ptp_data->skb_txtstamp_queue, clone);
drivers/net/dsa/sja1105/sja1105_ptp.c
483
struct sk_buff *clone;
drivers/net/dsa/sja1105/sja1105_ptp.c
488
clone = skb_clone_sk(skb);
drivers/net/dsa/sja1105/sja1105_ptp.c
489
if (!clone)
drivers/net/dsa/sja1105/sja1105_ptp.c
492
SJA1105_SKB_CB(skb)->clone = clone;
drivers/net/dsa/sja1105/sja1105_ptp.h
107
struct sk_buff *clone);
drivers/net/dsa/sja1105/sja1105_ptp.h
160
struct sk_buff *clone)
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16028
struct bnxt_rx_ring_info *rxr, *clone;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16037
clone = qmem;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16038
memcpy(clone, rxr, sizeof(*rxr));
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16039
bnxt_init_rx_ring_struct(bp, clone);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16040
bnxt_reset_rx_ring_struct(bp, clone);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16042
clone->rx_prod = 0;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16043
clone->rx_agg_prod = 0;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16044
clone->rx_sw_agg_prod = 0;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16045
clone->rx_next_cons = 0;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16046
clone->need_head_pool = false;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16047
clone->rx_page_size = qcfg->rx_page_size;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16049
rc = bnxt_alloc_rx_page_pool(bp, clone, rxr->page_pool->p.nid);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16053
rc = xdp_rxq_info_reg(&clone->xdp_rxq, bp->dev, idx, 0);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16057
rc = xdp_rxq_info_reg_mem_model(&clone->xdp_rxq,
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16059
clone->page_pool);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16063
ring = &clone->rx_ring_struct;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16069
ring = &clone->rx_agg_ring_struct;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16074
rc = bnxt_alloc_rx_agg_bmap(bp, clone);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16080
rc = bnxt_alloc_one_tpa_info(bp, clone);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16085
bnxt_init_one_rx_ring_rxbd(bp, clone);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16086
bnxt_init_one_rx_agg_ring_rxbd(bp, clone);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16088
bnxt_alloc_one_rx_ring_skb(bp, clone, idx);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16090
bnxt_alloc_one_rx_ring_netmem(bp, clone, idx);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16092
bnxt_alloc_one_tpa_info_data(bp, clone);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16097
bnxt_free_one_tpa_info(bp, clone);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16099
bnxt_free_ring(bp, &clone->rx_agg_ring_struct.ring_mem);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16101
bnxt_free_ring(bp, &clone->rx_ring_struct.ring_mem);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16103
xdp_rxq_info_unreg(&clone->xdp_rxq);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16105
page_pool_destroy(clone->page_pool);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16106
page_pool_destroy(clone->head_pool);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16107
clone->page_pool = NULL;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16108
clone->head_pool = NULL;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16200
struct bnxt_rx_ring_info *rxr, *clone;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16208
clone = qmem;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16210
rxr->rx_prod = clone->rx_prod;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16211
rxr->rx_agg_prod = clone->rx_agg_prod;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16212
rxr->rx_sw_agg_prod = clone->rx_sw_agg_prod;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16213
rxr->rx_next_cons = clone->rx_next_cons;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16214
rxr->rx_tpa = clone->rx_tpa;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16215
rxr->rx_tpa_idx_map = clone->rx_tpa_idx_map;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16216
rxr->page_pool = clone->page_pool;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16217
rxr->head_pool = clone->head_pool;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16218
rxr->xdp_rxq = clone->xdp_rxq;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16219
rxr->need_head_pool = clone->need_head_pool;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16221
bnxt_copy_rx_ring(bp, rxr, clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1519
struct fbnic_net *clone;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1542
clone = fbnic_clone_create(fbn);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1543
if (!clone)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1546
fbnic_set_queues(clone, ch, max_napis);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1548
err = fbnic_alloc_napi_vectors(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1552
err = fbnic_alloc_resources(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
156
struct fbnic_net *clone;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1561
err = fbnic_set_netif_queues(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1568
fbnic_clone_swap(fbn, clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1575
fbnic_free_resources(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1576
fbnic_free_napi_vectors(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1577
fbnic_clone_free(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
158
clone = kmemdup(orig, sizeof(*orig), GFP_KERNEL);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1584
fbnic_free_resources(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1586
fbnic_free_napi_vectors(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1588
fbnic_clone_free(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
159
if (!clone)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
162
memset(clone->tx, 0, sizeof(clone->tx));
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
163
memset(clone->rx, 0, sizeof(clone->rx));
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
164
memset(clone->napi, 0, sizeof(clone->napi));
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
165
return clone;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
169
struct fbnic_net *clone)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
171
swap(clone->rcq_size, orig->rcq_size);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
172
swap(clone->hpq_size, orig->hpq_size);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
173
swap(clone->ppq_size, orig->ppq_size);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
174
swap(clone->txq_size, orig->txq_size);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
175
swap(clone->num_rx_queues, orig->num_rx_queues);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
176
swap(clone->num_tx_queues, orig->num_tx_queues);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
177
swap(clone->num_napi, orig->num_napi);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
178
swap(clone->hds_thresh, orig->hds_thresh);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
200
struct fbnic_net *clone)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
205
for (i = 0; i < max(clone->num_napi, orig->num_napi); i++)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
210
fbnic_clone_swap_cfg(orig, clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
213
swap(clone->napi[i], orig->napi[i]);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
215
swap(clone->tx[i], orig->tx[i]);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
217
swap(clone->rx[i], orig->rx[i]);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
220
static void fbnic_clone_free(struct fbnic_net *clone)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
222
kfree(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
320
struct fbnic_net *clone;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
362
clone = fbnic_clone_create(fbn);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
363
if (!clone)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
366
fbnic_set_rings(clone, ring, kernel_ring);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
368
err = fbnic_alloc_napi_vectors(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
372
err = fbnic_alloc_resources(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
381
err = fbnic_set_netif_queues(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
388
fbnic_clone_swap(fbn, clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
392
fbnic_free_resources(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
393
fbnic_free_napi_vectors(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
394
fbnic_clone_free(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
401
fbnic_free_resources(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
403
fbnic_free_napi_vectors(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
405
fbnic_clone_free(clone);
drivers/net/ethernet/mscc/ocelot_net.c
558
struct sk_buff *clone = NULL;
drivers/net/ethernet/mscc/ocelot_net.c
560
if (ocelot_port_txtstamp_request(ocelot, port, skb, &clone)) {
drivers/net/ethernet/mscc/ocelot_net.c
565
if (clone)
drivers/net/ethernet/mscc/ocelot_net.c
566
OCELOT_SKB_CB(skb)->clone = clone;
drivers/net/ethernet/mscc/ocelot_ptp.c
645
struct sk_buff *clone)
drivers/net/ethernet/mscc/ocelot_ptp.c
689
OCELOT_SKB_CB(clone)->ts_id = n;
drivers/net/ethernet/mscc/ocelot_ptp.c
690
OCELOT_SKB_CB(clone)->ptp_tx_time = jiffies;
drivers/net/ethernet/mscc/ocelot_ptp.c
692
__skb_queue_tail(&ocelot_port->tx_skbs, clone);
drivers/net/ethernet/mscc/ocelot_ptp.c
722
struct sk_buff **clone)
drivers/net/ethernet/mscc/ocelot_ptp.c
756
*clone = skb_clone_sk(skb);
drivers/net/ethernet/mscc/ocelot_ptp.c
757
if (!(*clone)) {
drivers/net/ethernet/mscc/ocelot_ptp.c
763
err = ocelot_port_queue_ptp_tx_skb(ocelot, port, *clone);
drivers/net/ethernet/mscc/ocelot_ptp.c
765
kfree_skb(*clone);
drivers/net/ethernet/mscc/ocelot_ptp.c
769
skb_shinfo(*clone)->tx_flags |= SKBTX_IN_PROGRESS;
drivers/net/ethernet/mscc/ocelot_ptp.c
771
OCELOT_SKB_CB(*clone)->ptp_class = ptp_class;
drivers/net/usb/lg-vl600.c
103
struct sk_buff *clone;
drivers/net/usb/lg-vl600.c
200
clone = skb_clone(buf, GFP_ATOMIC);
drivers/net/usb/lg-vl600.c
201
if (!clone)
drivers/net/usb/lg-vl600.c
204
skb_trim(clone, packet_len);
drivers/net/usb/lg-vl600.c
205
usbnet_skb_return(dev, clone);
drivers/s390/net/qeth_core_main.c
6327
struct net_device *clone = qeth_alloc_netdev(orig->ml_priv);
drivers/s390/net/qeth_core_main.c
6329
if (!clone)
drivers/s390/net/qeth_core_main.c
6332
clone->dev_port = orig->dev_port;
drivers/s390/net/qeth_core_main.c
6333
return clone;
fs/btrfs/ctree.c
1807
struct extent_buffer *clone;
fs/btrfs/ctree.c
1816
clone = btrfs_clone_extent_buffer(lowest);
fs/btrfs/ctree.c
1817
if (!clone)
fs/btrfs/ctree.c
1821
path->nodes[i] = clone;
fs/btrfs/fiemap.c
308
struct extent_buffer *clone = path->nodes[0];
fs/btrfs/fiemap.c
322
ASSERT(test_bit(EXTENT_BUFFER_UNMAPPED, &clone->bflags));
fs/btrfs/fiemap.c
323
refcount_inc(&clone->refs);
fs/btrfs/fiemap.c
349
clone->start = path->nodes[0]->start;
fs/btrfs/fiemap.c
351
copy_extent_buffer_full(clone, path->nodes[0]);
fs/btrfs/fiemap.c
355
path->nodes[0] = clone;
fs/btrfs/fiemap.c
359
free_extent_buffer(clone);
fs/btrfs/fiemap.c
374
struct extent_buffer *clone;
fs/btrfs/fiemap.c
419
clone = btrfs_clone_extent_buffer(path->nodes[0]);
fs/btrfs/fiemap.c
420
if (!clone)
fs/btrfs/fiemap.c
425
path->nodes[0] = clone;
fs/btrfs/send.c
7336
struct extent_buffer *clone;
fs/btrfs/send.c
7338
clone = btrfs_clone_extent_buffer(path->nodes[level]);
fs/btrfs/send.c
7339
if (!clone)
fs/btrfs/send.c
7343
path->nodes[level] = clone;
fs/f2fs/acl.c
296
struct posix_acl *clone = NULL;
fs/f2fs/acl.c
299
clone = kmemdup(acl, struct_size(acl, a_entries, acl->a_count),
fs/f2fs/acl.c
301
if (clone)
fs/f2fs/acl.c
302
refcount_set(&clone->a_refcount, 1);
fs/f2fs/acl.c
304
return clone;
fs/f2fs/acl.c
366
struct posix_acl *clone;
fs/f2fs/acl.c
383
clone = f2fs_acl_clone(p, GFP_NOFS);
fs/f2fs/acl.c
384
if (!clone) {
fs/f2fs/acl.c
389
ret = f2fs_acl_create_masq(clone, mode);
fs/f2fs/acl.c
394
posix_acl_release(clone);
fs/f2fs/acl.c
396
*acl = clone;
fs/f2fs/acl.c
406
posix_acl_release(clone);
fs/gfs2/bmap.c
285
static void clone_metapath(struct metapath *clone, struct metapath *mp)
fs/gfs2/bmap.c
289
*clone = *mp;
fs/gfs2/bmap.c
291
get_bh(clone->mp_bh[hgt]);
fs/gfs2/bmap.c
587
struct metapath clone;
fs/gfs2/bmap.c
591
clone_metapath(&clone, mp);
fs/gfs2/bmap.c
592
ret = gfs2_walk_metadata(inode, &clone, len, gfs2_hole_walker);
fs/gfs2/bmap.c
597
hole_size = metapath_to_block(GFS2_SB(inode), &clone) - lblock;
fs/gfs2/bmap.c
604
release_metapath(&clone);
fs/gfs2/rgrp.c
1323
const u8 *clone = bi->bi_clone ? bi->bi_clone : bi->bi_bh->b_data;
fs/gfs2/rgrp.c
1324
clone += bi->bi_offset;
fs/gfs2/rgrp.c
1325
clone += x;
fs/gfs2/rgrp.c
1328
diff = ~(*orig | (*orig >> 1)) & (*clone | (*clone >> 1));
fs/gfs2/rgrp.c
1330
diff = ~(*clone | (*clone >> 1));
fs/nfsd/nfs4proc.c
1403
struct nfsd4_clone *clone = &u->clone;
fs/nfsd/nfs4proc.c
1407
status = nfsd4_verify_copy(rqstp, cstate, &clone->cl_src_stateid, &src,
fs/nfsd/nfs4proc.c
1408
&clone->cl_dst_stateid, &dst);
fs/nfsd/nfs4proc.c
1412
status = nfsd4_clone_file_range(rqstp, src, clone->cl_src_pos,
fs/nfsd/nfs4proc.c
1413
dst, clone->cl_dst_pos, clone->cl_count,
fs/nfsd/nfs4xdr.c
2255
struct nfsd4_clone *clone = &u->clone;
fs/nfsd/nfs4xdr.c
2258
status = nfsd4_decode_stateid4(argp, &clone->cl_src_stateid);
fs/nfsd/nfs4xdr.c
2261
status = nfsd4_decode_stateid4(argp, &clone->cl_dst_stateid);
fs/nfsd/nfs4xdr.c
2264
if (xdr_stream_decode_u64(argp->xdr, &clone->cl_src_pos) < 0)
fs/nfsd/nfs4xdr.c
2266
if (xdr_stream_decode_u64(argp->xdr, &clone->cl_dst_pos) < 0)
fs/nfsd/nfs4xdr.c
2268
if (xdr_stream_decode_u64(argp->xdr, &clone->cl_count) < 0)
fs/nfsd/xdr4.h
882
struct nfsd4_clone clone;
fs/overlayfs/copy_up.c
50
struct posix_acl *clone, *real_acl = NULL;
fs/overlayfs/copy_up.c
63
clone = posix_acl_clone(real_acl, GFP_KERNEL);
fs/overlayfs/copy_up.c
65
if (!clone)
fs/overlayfs/copy_up.c
68
err = ovl_do_set_acl(ofs, dentry, acl_name, clone);
fs/overlayfs/copy_up.c
71
posix_acl_release(clone);
fs/overlayfs/inode.c
392
struct posix_acl *real_acl, *clone;
fs/overlayfs/inode.c
414
clone = posix_acl_clone(real_acl, GFP_KERNEL);
fs/overlayfs/inode.c
416
if (!clone)
fs/overlayfs/inode.c
419
ovl_idmap_posix_acl(realinode, idmap, clone);
fs/overlayfs/inode.c
420
return clone;
fs/posix_acl.c
220
struct posix_acl *clone = NULL;
fs/posix_acl.c
223
clone = kmemdup(acl, struct_size(acl, a_entries, acl->a_count),
fs/posix_acl.c
225
if (clone)
fs/posix_acl.c
226
refcount_set(&clone->a_refcount, 1);
fs/posix_acl.c
228
return clone;
fs/posix_acl.c
557
struct posix_acl *clone = posix_acl_clone(*acl, gfp);
fs/posix_acl.c
559
if (clone) {
fs/posix_acl.c
560
err = posix_acl_create_masq(clone, mode_p);
fs/posix_acl.c
562
posix_acl_release(clone);
fs/posix_acl.c
563
clone = NULL;
fs/posix_acl.c
567
*acl = clone;
fs/posix_acl.c
575
struct posix_acl *clone = posix_acl_clone(*acl, gfp);
fs/posix_acl.c
577
if (clone) {
fs/posix_acl.c
578
err = __posix_acl_chmod_masq(clone, mode);
fs/posix_acl.c
580
posix_acl_release(clone);
fs/posix_acl.c
581
clone = NULL;
fs/posix_acl.c
585
*acl = clone;
fs/posix_acl.c
637
struct posix_acl *clone;
fs/posix_acl.c
655
clone = posix_acl_clone(p, GFP_NOFS);
fs/posix_acl.c
656
if (!clone)
fs/posix_acl.c
659
ret = posix_acl_create_masq(clone, mode);
fs/posix_acl.c
664
posix_acl_release(clone);
fs/posix_acl.c
666
*acl = clone;
fs/posix_acl.c
676
posix_acl_release(clone);
include/linux/device-mapper.h
536
void dm_submit_bio_remap(struct bio *clone, struct bio *tgt_clone);
include/linux/device-mapper.h
66
struct request **clone);
include/linux/device-mapper.h
67
typedef void (*dm_release_clone_request_fn) (struct request *clone,
include/linux/device-mapper.h
81
struct request *clone, blk_status_t error,
include/linux/dsa/ksz_common.h
38
struct sk_buff *clone;
include/linux/dsa/ocelot.h
16
struct sk_buff *clone;
include/linux/dsa/ocelot.h
265
struct sk_buff *clone = OCELOT_SKB_CB(skb)->clone;
include/linux/dsa/ocelot.h
269
if (ptp_cmd == IFH_REW_OP_TWO_STEP_PTP && clone) {
include/linux/dsa/ocelot.h
271
rew_op |= OCELOT_SKB_CB(clone)->ts_id << 3;
include/linux/dsa/sja1105.h
57
struct sk_buff *clone;
include/net/9p/client.h
289
const unsigned char * const *wnames, int clone);
include/net/netfilter/nf_tables.h
957
int (*clone)(struct nft_expr *dst,
include/net/tcp.h
2750
void (*clone)(const struct request_sock *req, struct sock *newsk,
include/soc/mscc/ocelot.h
1083
struct sk_buff **clone);
kernel/bpf/core.c
1513
struct bpf_prog *clone, *tmp;
kernel/bpf/core.c
1521
clone = bpf_prog_clone_create(prog, GFP_USER);
kernel/bpf/core.c
1522
if (!clone)
kernel/bpf/core.c
1525
insn_cnt = clone->len;
kernel/bpf/core.c
1526
insn = clone->insnsi;
kernel/bpf/core.c
1548
clone->aux->verifier_zext);
kernel/bpf/core.c
1552
tmp = bpf_patch_insn_single(clone, i, insn_buff, rewritten);
kernel/bpf/core.c
1558
bpf_jit_prog_release_other(prog, clone);
kernel/bpf/core.c
1562
clone = tmp;
kernel/bpf/core.c
1566
adjust_insn_arrays(clone, prog->aux->subprog_start + i, rewritten);
kernel/bpf/core.c
1569
insn = clone->insnsi + i + insn_delta;
kernel/bpf/core.c
1574
clone->blinded = 1;
kernel/bpf/core.c
1575
return clone;
kernel/bpf/helpers.c
2979
struct bpf_dynptr_kern *clone = (struct bpf_dynptr_kern *)clone__uninit;
kernel/bpf/helpers.c
2983
bpf_dynptr_set_null(clone);
kernel/bpf/helpers.c
2987
*clone = *ptr;
kernel/fork.c
2762
SYSCALL_DEFINE5(clone, unsigned long, clone_flags, unsigned long, newsp,
kernel/fork.c
2767
SYSCALL_DEFINE5(clone, unsigned long, newsp, unsigned long, clone_flags,
kernel/fork.c
2772
SYSCALL_DEFINE6(clone, unsigned long, clone_flags, unsigned long, newsp,
kernel/fork.c
2778
SYSCALL_DEFINE5(clone, unsigned long, clone_flags, unsigned long, newsp,
net/9p/client.c
1032
const unsigned char * const *wnames, int clone)
net/9p/client.c
1043
if (clone) {
net/core/filter.c
2459
struct sk_buff *clone;
net/core/filter.c
2478
clone = skb_clone(skb, GFP_ATOMIC);
net/core/filter.c
2479
if (unlikely(!clone))
net/core/filter.c
2489
kfree_skb(clone);
net/core/filter.c
2493
return __bpf_redirect(clone, dev, flags);
net/core/skbuff.c
2911
struct sk_buff *clone = NULL;
net/core/skbuff.c
2928
clone = skb_clone(list, GFP_ATOMIC);
net/core/skbuff.c
2929
if (!clone)
net/core/skbuff.c
2932
list = clone;
net/core/skbuff.c
2939
kfree_skb(clone);
net/core/skbuff.c
2952
if (clone) {
net/core/skbuff.c
2953
clone->next = list;
net/core/skbuff.c
2954
skb_shinfo(skb)->frag_list = clone;
net/core/skbuff.c
5541
struct sk_buff *clone;
net/core/skbuff.c
5546
clone = skb_clone(skb, GFP_ATOMIC);
net/core/skbuff.c
5547
if (!clone) {
net/core/skbuff.c
5552
clone->sk = sk;
net/core/skbuff.c
5553
clone->destructor = sock_efree;
net/core/skbuff.c
5555
return clone;
net/core/skbuff.c
6865
struct sk_buff *clone = NULL;
net/core/skbuff.c
6881
clone = skb_clone(list, gfp_mask);
net/core/skbuff.c
6882
if (!clone)
net/core/skbuff.c
6885
list = clone;
net/core/skbuff.c
6891
kfree_skb(clone);
net/core/skbuff.c
6904
if (clone) {
net/core/skbuff.c
6905
clone->next = list;
net/core/skbuff.c
6906
shinfo->frag_list = clone;
net/core/skbuff.c
7007
struct sk_buff *clone = skb_clone(skb, gfp);
net/core/skbuff.c
7009
if (!clone)
net/core/skbuff.c
7012
if (pskb_carve(clone, off, gfp) < 0 ||
net/core/skbuff.c
7013
pskb_trim(clone, to_copy)) {
net/core/skbuff.c
7014
kfree_skb(clone);
net/core/skbuff.c
7017
return clone;
net/core/timestamping.c
28
struct sk_buff *clone;
net/core/timestamping.c
59
clone = skb_clone_sk(skb);
net/core/timestamping.c
60
if (!clone)
net/core/timestamping.c
62
mii_ts->txtstamp(mii_ts, clone, type);
net/dsa/tag_ksz.c
248
struct sk_buff *clone = KSZ_SKB_CB(skb)->clone;
net/dsa/tag_ksz.c
252
if (!clone)
net/dsa/tag_sja1105.c
296
struct sk_buff *clone = SJA1105_SKB_CB(skb)->clone;
net/dsa/tag_sja1105.c
336
if (clone) {
net/dsa/tag_sja1105.c
337
u8 ts_id = SJA1105_SKB_CB(clone)->ts_id;
net/ieee802154/socket.c
371
struct sk_buff *clone;
net/ieee802154/socket.c
373
clone = skb_clone(skb, GFP_ATOMIC);
net/ieee802154/socket.c
374
if (clone)
net/ieee802154/socket.c
375
raw_rcv_skb(sk, clone);
net/ieee802154/socket.c
812
struct sk_buff *clone;
net/ieee802154/socket.c
814
clone = skb_clone(skb, GFP_ATOMIC);
net/ieee802154/socket.c
815
if (clone)
net/ieee802154/socket.c
816
dgram_rcv_skb(prev, clone);
net/ipv4/inet_connection_sock.c
1181
icsk->icsk_ulp_ops->clone(req, newsk, priority);
net/ipv4/inet_connection_sock.c
1307
if (icsk->icsk_ulp_ops && !icsk->icsk_ulp_ops->clone)
net/ipv4/inet_fragment.c
562
struct sk_buff *clone;
net/ipv4/inet_fragment.c
565
clone = alloc_skb(0, GFP_ATOMIC);
net/ipv4/inet_fragment.c
566
if (!clone)
net/ipv4/inet_fragment.c
568
skb_shinfo(clone)->frag_list = skb_shinfo(head)->frag_list;
net/ipv4/inet_fragment.c
572
clone->data_len = head->data_len - plen;
net/ipv4/inet_fragment.c
573
clone->len = clone->data_len;
net/ipv4/inet_fragment.c
574
head->truesize += clone->truesize;
net/ipv4/inet_fragment.c
575
clone->csum = 0;
net/ipv4/inet_fragment.c
576
clone->ip_summed = head->ip_summed;
net/ipv4/inet_fragment.c
577
add_frag_mem_limit(q->fqdir, clone->truesize);
net/ipv4/inet_fragment.c
578
skb_shinfo(head)->frag_list = clone;
net/ipv4/inet_fragment.c
579
nextp = &clone->next;
net/ipv4/raw.c
189
struct sk_buff *clone = skb_clone(skb, GFP_ATOMIC);
net/ipv4/raw.c
192
if (clone)
net/ipv4/raw.c
193
raw_rcv(sk, clone);
net/ipv4/tcp_cong.c
372
char *saved_clone, *clone, *name;
net/ipv4/tcp_cong.c
375
saved_clone = clone = kstrdup(val, GFP_USER);
net/ipv4/tcp_cong.c
376
if (!clone)
net/ipv4/tcp_cong.c
381
while ((name = strsep(&clone, " ")) && *name) {
net/ipv4/tcp_ulp.c
143
if (!ulp_ops->clone && sk->sk_state == TCP_LISTEN)
net/ipv6/raw.c
200
struct sk_buff *clone = skb_clone(skb, GFP_ATOMIC);
net/ipv6/raw.c
203
if (clone)
net/ipv6/raw.c
204
rawv6_rcv(sk, clone);
net/mptcp/subflow.c
2123
.clone = subflow_ulp_clone,
net/netfilter/nf_tables_api.c
3619
if (WARN_ON_ONCE(!src->ops->clone))
net/netfilter/nf_tables_api.c
3623
err = src->ops->clone(dst, src, gfp);
net/netfilter/nft_connlimit.c
257
.clone = nft_connlimit_clone,
net/netfilter/nft_counter.c
315
.clone = nft_counter_clone,
net/netfilter/nft_last.c
126
.clone = nft_last_clone,
net/netfilter/nft_limit.c
244
.clone = nft_limit_pkts_clone,
net/netfilter/nft_limit.c
300
.clone = nft_limit_bytes_clone,
net/netfilter/nft_quota.c
267
.clone = nft_quota_clone,
net/netfilter/nft_set_pipapo.c
1213
static int pipapo_realloc_scratch(struct nft_pipapo_match *clone,
net/netfilter/nft_set_pipapo.c
1235
pipapo_free_scratch(clone, i);
net/netfilter/nft_set_pipapo.c
1237
*per_cpu_ptr(clone->scratch, i) = scratch;
net/netfilter/nft_set_pipapo.c
1267
if (priv->clone)
net/netfilter/nft_set_pipapo.c
1268
return priv->clone;
net/netfilter/nft_set_pipapo.c
1272
priv->clone = pipapo_clone(m);
net/netfilter/nft_set_pipapo.c
1274
return priv->clone;
net/netfilter/nft_set_pipapo.c
1837
if (!priv->clone)
net/netfilter/nft_set_pipapo.c
1841
pipapo_gc_scan(set, priv->clone);
net/netfilter/nft_set_pipapo.c
1843
old = rcu_replace_pointer(priv->match, priv->clone,
net/netfilter/nft_set_pipapo.c
1845
priv->clone = NULL;
net/netfilter/nft_set_pipapo.c
1857
if (!priv->clone)
net/netfilter/nft_set_pipapo.c
1859
pipapo_free_match(priv->clone);
net/netfilter/nft_set_pipapo.c
1860
priv->clone = NULL;
net/netfilter/nft_set_pipapo.c
2071
struct nft_pipapo_match *m = priv->clone;
net/netfilter/nft_set_pipapo.c
2189
if (priv->clone)
net/netfilter/nft_set_pipapo.c
2190
m = priv->clone;
net/netfilter/nft_set_pipapo.c
2369
if (priv->clone) {
net/netfilter/nft_set_pipapo.c
2370
nft_set_pipapo_match_destroy(ctx, set, priv->clone);
net/netfilter/nft_set_pipapo.c
2371
pipapo_free_match(priv->clone);
net/netfilter/nft_set_pipapo.c
2372
priv->clone = NULL;
net/netfilter/nft_set_pipapo.h
163
struct nft_pipapo_match *clone;
net/openvswitch/actions.c
1270
struct sk_buff *clone;
net/openvswitch/actions.c
1283
clone = skb_clone(skb, GFP_ATOMIC);
net/openvswitch/actions.c
1284
if (clone)
net/openvswitch/actions.c
1285
do_output(dp, clone, port, key);
net/openvswitch/actions.c
1420
err = clone(dp, skb, key, a, last);
net/openvswitch/actions.c
1485
struct sw_flow_key *clone;
net/openvswitch/actions.c
1500
clone = clone_flow_key ? clone_key(key) : key;
net/openvswitch/actions.c
1501
if (clone) {
net/openvswitch/actions.c
1507
err = do_execute_actions(dp, skb, clone,
net/openvswitch/actions.c
1513
clone->recirc_id = recirc_id;
net/openvswitch/actions.c
1514
ovs_dp_process_packet(skb, clone);
net/phonet/socket.c
114
struct sk_buff *clone;
net/phonet/socket.c
121
clone = skb_clone(skb, GFP_ATOMIC);
net/phonet/socket.c
122
if (clone) {
net/phonet/socket.c
124
sk_receive_skb(sknode, clone, 0);
net/rds/tcp_recv.c
162
struct sk_buff *clone;
net/rds/tcp_recv.c
219
clone = pskb_extract(skb, offset, to_copy, arg->gfp);
net/rds/tcp_recv.c
220
if (!clone) {
net/rds/tcp_recv.c
225
skb_queue_tail(&tinc->ti_skb_list, clone);
net/rds/tcp_recv.c
230
clone, clone->data, clone->len);
net/sched/sch_etf.c
138
struct sk_buff *clone;
net/sched/sch_etf.c
145
clone = skb_clone(skb, GFP_ATOMIC);
net/sched/sch_etf.c
146
if (!clone)
net/sched/sch_etf.c
149
serr = SKB_EXT_ERR(clone);
net/sched/sch_etf.c
158
if (sock_queue_err_skb(sk, clone))
net/sched/sch_etf.c
159
kfree_skb(clone);
net/tls/tls_strp.c
162
struct sk_buff *iter, *clone;
net/tls/tls_strp.c
178
clone = skb_clone(iter, strp->sk->sk_allocation);
net/tls/tls_strp.c
179
if (!clone)
net/tls/tls_strp.c
181
__skb_queue_tail(dst, clone);
samples/pidfd/pidfd-metadata.c
42
return clone(do_child, stack + stack_size, flags | SIGCHLD, NULL, pidfd);
scripts/gcc-plugins/gcc-generate-gimple-pass.h
97
virtual opt_pass * clone () { return new _PASS_NAME_PASS(); }
scripts/gcc-plugins/gcc-generate-ipa-pass.h
174
virtual opt_pass *clone() { return new _PASS_NAME_PASS(); }
scripts/gcc-plugins/gcc-generate-rtl-pass.h
97
virtual opt_pass *clone() { return new _PASS_NAME_PASS(); }
scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h
97
virtual opt_pass *clone() { return new _PASS_NAME_PASS(); }
tools/objtool/include/objtool/elf.h
96
struct symbol *twin, *clone;
tools/objtool/klp-diff.c
1130
out_sym = patched_sym->clone;
tools/objtool/klp-diff.c
1554
if (!is_func_sym(sym) || sym->cold || !sym->clone || !sym->clone->changed)
tools/objtool/klp-diff.c
1563
addend = elf_add_string(e->out, str_sec, sym->clone->twin->name);
tools/objtool/klp-diff.c
1580
sympos = find_sympos(e->orig, sym->clone->twin);
tools/objtool/klp-diff.c
591
patched_sym->clone = out_sym;
tools/objtool/klp-diff.c
592
out_sym->clone = patched_sym;
tools/objtool/klp-diff.c
628
if (patched_sym->clone)
tools/objtool/klp-diff.c
629
return patched_sym->clone;
tools/objtool/klp-diff.c
646
return patched_sym->clone;
tools/objtool/klp-diff.c
954
sym = patched_sym->clone;
tools/objtool/klp-diff.c
962
patched_sym->clone = sym;
tools/objtool/klp-diff.c
963
sym->clone = patched_sym;
tools/testing/selftests/bpf/prog_tests/fexit_sleep.c
46
cpid = clone(do_sleep, child_stack + STACK_SIZE, CLONE_FILES | SIGCHLD, fexit_skel);
tools/testing/selftests/bpf/prog_tests/ns_current_pid_tgid.c
190
cpid = clone(fn, child_stack + STACK_SIZE,
tools/testing/selftests/bpf/prog_tests/task_kfunc.c
123
child_pid = clone(run_vpid_test, stack + stack_size,
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
113
child->pid = child->tid = clone(child_func, child->stack + sizeof(child->stack)/2,
tools/testing/selftests/bpf/progs/dynptr_fail.c
1715
struct bpf_dynptr clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
1719
bpf_ringbuf_reserve_dynptr(&ringbuf, 64, 0, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1722
bpf_dynptr_clone(&ptr1, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1724
bpf_ringbuf_submit_dynptr(&clone, 0);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1734
struct bpf_dynptr clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
1740
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1745
bpf_dynptr_read(read_data, sizeof(read_data), &clone, 0, 0);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1756
struct bpf_dynptr clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
1761
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1763
bpf_ringbuf_submit_dynptr(&clone, 0);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1803
struct bpf_dynptr clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
1808
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1809
data = bpf_dynptr_data(&clone, 0, sizeof(val));
tools/testing/selftests/bpf/progs/dynptr_fail.c
1829
struct bpf_dynptr clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
1837
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1839
bpf_ringbuf_submit_dynptr(&clone, 0);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1883
struct bpf_dynptr clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
1889
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1890
data = bpf_dynptr_slice_rdwr(&clone, 0, buffer, sizeof(buffer));
tools/testing/selftests/bpf/progs/dynptr_fail.c
1908
struct bpf_dynptr clone, meta;
tools/testing/selftests/bpf/progs/dynptr_fail.c
1912
bpf_dynptr_clone(&meta, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1913
md = bpf_dynptr_slice_rdwr(&clone, 0, NULL, sizeof(*md));
tools/testing/selftests/bpf/progs/dynptr_fail.c
1932
struct bpf_dynptr clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
1939
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1940
data = bpf_dynptr_slice_rdwr(&clone, 0, buffer, sizeof(buffer));
tools/testing/selftests/cgroup/test_core.c
833
pid = clone(lesser_ns_open_thread_fn, stack + sizeof(stack),
tools/testing/selftests/filesystems/nsfs/pidns.c
50
pid = clone(child, ca.stack_ptr, CLONE_NEWUSER | CLONE_NEWPID | SIGCHLD, NULL);
tools/testing/selftests/filesystems/utils.c
150
return clone(fn, stack + __STACK_SIZE, flags | SIGCHLD, arg, NULL);
tools/testing/selftests/futex/functional/robust_list.c
81
pid = clone(fn, stack, CLONE_VM | SIGCHLD, arg);
tools/testing/selftests/memfd/fuse_test.c
211
pid = clone(sealing_thread_fn,
tools/testing/selftests/memfd/memfd_test.c
807
pid = clone(fn, stack + STACK_SIZE, SIGCHLD | flags, arg);
tools/testing/selftests/mount_setattr/mount_setattr_test.c
1177
return clone(fn, stack + __STACK_SIZE, flags | SIGCHLD, arg, NULL);
tools/testing/selftests/move_mount_set_group/move_mount_set_group_test.c
279
return clone(fn, stack + __STACK_SIZE, flags | SIGCHLD, arg, NULL);
tools/testing/selftests/pid_namespace/pid_max.c
32
ret = clone(fn, stack + __STACK_SIZE, flags | SIGCHLD, arg);
tools/testing/selftests/pidfd/pidfd_fdinfo_test.c
112
ret.pid = clone(fn, ret.stack + CHILD_STACK_SIZE, flags, args, &ret.fd);
tools/testing/selftests/pidfd/pidfd_test.c
41
return clone(fn, stack + stack_size, flags | SIGCHLD, NULL, pidfd);
tools/testing/selftests/powerpc/dexcr/hashchk_test.c
210
pid = clone(hashchk_clone_child_fn, child_stack + STACK_SIZE,
tools/testing/selftests/proc/thread-self.c
59
pid = clone(f, stack + PAGE_SIZE, CLONE_THREAD|CLONE_SIGHAND|CLONE_VM, (void *)1);
tools/testing/selftests/sched/cs_prctl_test.c
145
tid = clone(child_func_thread, child_stack + STACK_SIZE, THREAD_CLONE_FLAGS, NULL);
tools/testing/selftests/sched/cs_prctl_test.c
186
cpid = clone(child_func_process, child_func_process_stack + STACK_SIZE,
tools/testing/selftests/user_events/abi_test.c
410
ASSERT_NE(-1, clone(&clone_check, stack + stack_size,
tools/testing/selftests/x86/lam.c
868
pid = clone(thread_fn_get_lam, stack + STACK_SIZE,
tools/testing/selftests/x86/lam.c
896
pid = clone(thread_fn_set_lam, stack + STACK_SIZE,