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
3249
struct sk_buff *clone = skb_clone(skb, GFP_ATOMIC);
drivers/bluetooth/btusb.c
3252
if (!clone)
drivers/bluetooth/btusb.c
3255
acl_hdr = skb_pull_data(clone, sizeof(*acl_hdr));
drivers/bluetooth/btusb.c
3259
event_hdr = skb_pull_data(clone, sizeof(*event_hdr));
drivers/bluetooth/btusb.c
3263
dump_hdr = skb_pull_data(clone, sizeof(*dump_hdr));
drivers/bluetooth/btusb.c
3270
consume_skb(clone);
drivers/bluetooth/btusb.c
3279
struct sk_buff *clone = skb_clone(skb, GFP_ATOMIC);
drivers/bluetooth/btusb.c
3282
if (!clone)
drivers/bluetooth/btusb.c
3285
event_hdr = skb_pull_data(clone, sizeof(*event_hdr));
drivers/bluetooth/btusb.c
3289
dump_hdr = skb_pull_data(clone, sizeof(*dump_hdr));
drivers/bluetooth/btusb.c
3296
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
1608
static void crypt_free_buffer_pages(struct crypt_config *cc, struct bio *clone);
drivers/md/dm-crypt.c
1633
struct bio *clone;
drivers/md/dm-crypt.c
1643
clone = bio_alloc_bioset(cc->dev->bdev, nr_iovecs, io->base_bio->bi_opf,
drivers/md/dm-crypt.c
1645
clone->bi_private = io;
drivers/md/dm-crypt.c
1646
clone->bi_end_io = crypt_endio;
drivers/md/dm-crypt.c
1647
clone->bi_ioprio = io->base_bio->bi_ioprio;
drivers/md/dm-crypt.c
1648
clone->bi_iter.bi_sector = cc->start + io->sector;
drivers/md/dm-crypt.c
1675
crypt_free_buffer_pages(cc, clone);
drivers/md/dm-crypt.c
1676
bio_put(clone);
drivers/md/dm-crypt.c
1684
__bio_add_page(clone, pages, size_to_add, 0);
drivers/md/dm-crypt.c
1689
if (dm_crypt_integrity_io_alloc(io, clone)) {
drivers/md/dm-crypt.c
1690
crypt_free_buffer_pages(cc, clone);
drivers/md/dm-crypt.c
1691
bio_put(clone);
drivers/md/dm-crypt.c
1692
clone = NULL;
drivers/md/dm-crypt.c
1698
return clone;
drivers/md/dm-crypt.c
1701
static void crypt_free_buffer_pages(struct crypt_config *cc, struct bio *clone)
drivers/md/dm-crypt.c
1705
if (clone->bi_vcnt > 0) { /* bio_for_each_folio_all crashes with an empty bio */
drivers/md/dm-crypt.c
1706
bio_for_each_folio_all(fi, clone) {
drivers/md/dm-crypt.c
1792
static void crypt_endio(struct bio *clone)
drivers/md/dm-crypt.c
1794
struct dm_crypt_io *io = clone->bi_private;
drivers/md/dm-crypt.c
1796
unsigned int rw = bio_data_dir(clone);
drivers/md/dm-crypt.c
1797
blk_status_t error = clone->bi_status;
drivers/md/dm-crypt.c
1808
crypt_free_buffer_pages(cc, clone);
drivers/md/dm-crypt.c
1810
bio_put(clone);
drivers/md/dm-crypt.c
1828
struct bio *clone;
drivers/md/dm-crypt.c
1834
clone = crypt_alloc_buffer(io, io->base_bio->bi_iter.bi_size);
drivers/md/dm-crypt.c
1835
if (unlikely(!clone)) {
drivers/md/dm-crypt.c
1839
crypt_convert_init(cc, &io->ctx, clone, clone, io->sector);
drivers/md/dm-crypt.c
1840
io->saved_bi_iter = clone->bi_iter;
drivers/md/dm-crypt.c
1841
dm_submit_bio_remap(io->base_bio, clone);
drivers/md/dm-crypt.c
1851
clone = bio_alloc_clone(cc->dev->bdev, io->base_bio, gfp, &cc->bs);
drivers/md/dm-crypt.c
1852
if (!clone)
drivers/md/dm-crypt.c
1855
clone->bi_iter.bi_sector = cc->start + io->sector;
drivers/md/dm-crypt.c
1856
clone->bi_private = io;
drivers/md/dm-crypt.c
1857
clone->bi_end_io = crypt_endio;
drivers/md/dm-crypt.c
1861
if (dm_crypt_integrity_io_alloc(io, clone)) {
drivers/md/dm-crypt.c
1863
bio_put(clone);
drivers/md/dm-crypt.c
1867
dm_submit_bio_remap(io->base_bio, clone);
drivers/md/dm-crypt.c
1891
struct bio *clone = io->ctx.bio_out;
drivers/md/dm-crypt.c
1893
dm_submit_bio_remap(io->base_bio, clone);
drivers/md/dm-crypt.c
1952
struct bio *clone = io->ctx.bio_out;
drivers/md/dm-crypt.c
1959
crypt_free_buffer_pages(cc, clone);
drivers/md/dm-crypt.c
1960
bio_put(clone);
drivers/md/dm-crypt.c
1970
dm_submit_bio_remap(io->base_bio, clone);
drivers/md/dm-crypt.c
2045
struct bio *clone;
drivers/md/dm-crypt.c
2055
clone = crypt_alloc_buffer(io, io->base_bio->bi_iter.bi_size);
drivers/md/dm-crypt.c
2056
if (unlikely(!clone)) {
drivers/md/dm-crypt.c
2061
io->ctx.bio_out = clone;
drivers/md/dm-crypt.c
2062
io->ctx.iter_out = clone->bi_iter;
drivers/md/dm-crypt.c
2065
bio_copy_data(clone, io->base_bio);
drivers/md/dm-crypt.c
2066
io->ctx.bio_in = clone;
drivers/md/dm-crypt.c
2067
io->ctx.iter_in = clone->bi_iter;
drivers/md/dm-crypt.c
286
static void crypt_endio(struct bio *clone);
drivers/md/dm-era-target.c
1037
struct dm_block *clone;
drivers/md/dm-era-target.c
1063
&sb_validator, &clone, &inc);
drivers/md/dm-era-target.c
1074
dm_tm_unlock(md->tm, clone);
drivers/md/dm-era-target.c
1082
dm_tm_unlock(md->tm, clone);
drivers/md/dm-era-target.c
1086
md->metadata_snap = dm_block_location(clone);
drivers/md/dm-era-target.c
1088
dm_tm_unlock(md->tm, clone);
drivers/md/dm-era-target.c
1097
struct dm_block *clone;
drivers/md/dm-era-target.c
1105
r = dm_tm_read_lock(md->tm, md->metadata_snap, &sb_validator, &clone);
drivers/md/dm-era-target.c
1117
disk = dm_block_data(clone);
drivers/md/dm-era-target.c
1122
dm_tm_unlock(md->tm, clone);
drivers/md/dm-era-target.c
1129
dm_tm_unlock(md->tm, clone);
drivers/md/dm-era-target.c
1133
location = dm_block_location(clone);
drivers/md/dm-era-target.c
1134
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
1646
static int multipath_end_io(struct dm_target *ti, struct request *clone,
drivers/md/dm-mpath.c
1689
clone->io_start_time_ns);
drivers/md/dm-mpath.c
1695
static int multipath_end_io_bio(struct dm_target *ti, struct bio *clone,
drivers/md/dm-mpath.c
1699
struct dm_mpath_io *mpio = get_mpio_from_bio(clone);
drivers/md/dm-mpath.c
1725
multipath_queue_bio(m, clone);
drivers/md/dm-mpath.c
1734
dm_start_time_ns_from_clone(clone)));
drivers/md/dm-mpath.c
515
struct request *clone;
drivers/md/dm-mpath.c
538
clone = blk_mq_alloc_request(q, rq->cmd_flags | REQ_NOMERGE,
drivers/md/dm-mpath.c
540
if (IS_ERR(clone)) {
drivers/md/dm-mpath.c
557
clone->bio = clone->biotail = NULL;
drivers/md/dm-mpath.c
558
clone->cmd_flags |= REQ_FAILFAST_TRANSPORT;
drivers/md/dm-mpath.c
559
*__clone = clone;
drivers/md/dm-mpath.c
568
static void multipath_release_clone(struct request *clone,
drivers/md/dm-mpath.c
583
clone->io_start_time_ns);
drivers/md/dm-mpath.c
586
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
1367
void dm_submit_bio_remap(struct bio *clone, struct bio *tgt_clone)
drivers/md/dm.c
1369
struct dm_target_io *tio = clone_to_tio(clone);
drivers/md/dm.c
1374
tgt_clone = clone;
drivers/md/dm.c
1382
dm_start_io_acct(io, clone);
drivers/md/dm.c
1406
static void __map_bio(struct bio *clone)
drivers/md/dm.c
1408
struct dm_target_io *tio = clone_to_tio(clone);
drivers/md/dm.c
1414
clone->bi_end_io = clone_endio;
drivers/md/dm.c
1419
tio->old_sector = clone->bi_iter.bi_sector;
drivers/md/dm.c
1422
unlikely(swap_bios_limit(ti, clone))) {
drivers/md/dm.c
1431
r = linear_map(ti, clone);
drivers/md/dm.c
1433
r = stripe_map(ti, clone);
drivers/md/dm.c
1435
r = ti->type->map(ti, clone);
drivers/md/dm.c
1441
dm_start_io_acct(io, clone);
drivers/md/dm.c
1444
dm_submit_bio_remap(clone, NULL);
drivers/md/dm.c
1449
unlikely(swap_bios_limit(ti, clone)))
drivers/md/dm.c
1451
free_tio(clone);
drivers/md/dm.c
1512
struct bio *clone;
drivers/md/dm.c
1527
while ((clone = bio_list_pop(&blist))) {
drivers/md/dm.c
1529
dm_tio_set_flag(clone_to_tio(clone), DM_TIO_IS_DUPLICATE_BIO);
drivers/md/dm.c
1530
__map_bio(clone);
drivers/md/dm.c
1556
ci->io->tio.clone.bi_iter.bi_size = 0;
drivers/md/dm.c
1581
struct bio *clone;
drivers/md/dm.c
1589
clone = alloc_tio(ci, NULL, 0, &len, GFP_NOIO);
drivers/md/dm.c
1591
bio_set_dev(clone, dd->dm_dev->bdev);
drivers/md/dm.c
1592
clone->bi_end_io = clone_endio;
drivers/md/dm.c
1593
dm_submit_bio_remap(clone, NULL);
drivers/md/dm.c
1732
struct bio *clone;
drivers/md/dm.c
1763
clone = alloc_tio(ci, ti, 0, &len, GFP_NOWAIT);
drivers/md/dm.c
1764
if (unlikely(!clone))
drivers/md/dm.c
1767
clone = alloc_tio(ci, ti, 0, &len, GFP_NOIO);
drivers/md/dm.c
1769
__map_bio(clone);
drivers/md/dm.c
1837
struct bio *clone;
drivers/md/dm.c
1880
clone = bio_list_pop(&blist);
drivers/md/dm.c
1881
clone->bi_opf &= ~REQ_OP_MASK;
drivers/md/dm.c
1882
clone->bi_opf |= REQ_OP_ZONE_RESET | REQ_SYNC;
drivers/md/dm.c
1883
clone->bi_iter.bi_sector = sector;
drivers/md/dm.c
1884
clone->bi_iter.bi_size = 0;
drivers/md/dm.c
1885
__map_bio(clone);
drivers/md/dm.c
2119
bio_poll(&io->tio.clone, iob, flags | BLK_POLL_ONESHOT);
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
9416
struct bio *clone =
drivers/md/md.c
9419
md_io_clone = container_of(clone, struct md_io_clone, bio_clone);
drivers/md/md.c
9432
clone->bi_end_io = md_end_clone_io;
drivers/md/md.c
9433
clone->bi_private = NULL;
drivers/md/md.c
9434
*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
16200
struct bnxt_rx_ring_info *rxr, *clone;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16209
clone = qmem;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16210
memcpy(clone, rxr, sizeof(*rxr));
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16211
bnxt_init_rx_ring_struct(bp, clone);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16212
bnxt_reset_rx_ring_struct(bp, clone);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16214
clone->rx_prod = 0;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16215
clone->rx_agg_prod = 0;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16216
clone->rx_sw_agg_prod = 0;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16217
clone->rx_next_cons = 0;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16218
clone->need_head_pool = false;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16219
clone->rx_page_size = qcfg->rx_page_size;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16221
rc = bnxt_alloc_rx_page_pool(bp, clone, rxr->page_pool->p.nid);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16225
rc = xdp_rxq_info_reg(&clone->xdp_rxq, bp->dev, idx, 0);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16229
rc = xdp_rxq_info_reg_mem_model(&clone->xdp_rxq,
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16231
clone->page_pool);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16235
ring = &clone->rx_ring_struct;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16241
ring = &clone->rx_agg_ring_struct;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16246
rc = bnxt_alloc_rx_agg_bmap(bp, clone);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16252
rc = bnxt_alloc_one_tpa_info(bp, clone);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16257
bnxt_init_one_rx_ring_rxbd(bp, clone);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16258
bnxt_init_one_rx_agg_ring_rxbd(bp, clone);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16260
bnxt_alloc_one_rx_ring_skb(bp, clone, idx);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16262
bnxt_alloc_one_rx_ring_netmem(bp, clone, idx);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16264
bnxt_alloc_one_tpa_info_data(bp, clone);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16269
bnxt_free_one_tpa_info(bp, clone);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16271
bnxt_free_ring(bp, &clone->rx_agg_ring_struct.ring_mem);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16273
bnxt_free_ring(bp, &clone->rx_ring_struct.ring_mem);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16275
xdp_rxq_info_unreg(&clone->xdp_rxq);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16277
page_pool_destroy(clone->page_pool);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16278
page_pool_destroy(clone->head_pool);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16279
clone->page_pool = NULL;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16280
clone->head_pool = NULL;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16372
struct bnxt_rx_ring_info *rxr, *clone;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16380
clone = qmem;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16382
rxr->rx_prod = clone->rx_prod;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16383
rxr->rx_agg_prod = clone->rx_agg_prod;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16384
rxr->rx_sw_agg_prod = clone->rx_sw_agg_prod;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16385
rxr->rx_next_cons = clone->rx_next_cons;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16386
rxr->rx_tpa = clone->rx_tpa;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16387
rxr->rx_tpa_idx_map = clone->rx_tpa_idx_map;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16388
rxr->page_pool = clone->page_pool;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16389
rxr->head_pool = clone->head_pool;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16390
rxr->xdp_rxq = clone->xdp_rxq;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16391
rxr->need_head_pool = clone->need_head_pool;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
16393
bnxt_copy_rx_ring(bp, rxr, clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1611
struct fbnic_net *clone;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1634
clone = fbnic_clone_create(fbn);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1635
if (!clone)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1638
fbnic_set_queues(clone, ch, max_napis);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1640
err = fbnic_alloc_napi_vectors(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1644
err = fbnic_alloc_resources(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1653
err = fbnic_set_netif_queues(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1660
fbnic_clone_swap(fbn, clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1667
fbnic_free_resources(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1668
fbnic_free_napi_vectors(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1669
fbnic_clone_free(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1676
fbnic_free_resources(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1678
fbnic_free_napi_vectors(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1680
fbnic_clone_free(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
170
struct fbnic_net *clone;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
172
clone = kmemdup(orig, sizeof(*orig), GFP_KERNEL);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
173
if (!clone)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
176
memset(clone->tx, 0, sizeof(clone->tx));
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
177
memset(clone->rx, 0, sizeof(clone->rx));
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
178
memset(clone->napi, 0, sizeof(clone->napi));
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
179
return clone;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
183
struct fbnic_net *clone)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
185
swap(clone->rcq_size, orig->rcq_size);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
186
swap(clone->hpq_size, orig->hpq_size);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
187
swap(clone->ppq_size, orig->ppq_size);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
188
swap(clone->txq_size, orig->txq_size);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
189
swap(clone->num_rx_queues, orig->num_rx_queues);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
190
swap(clone->num_tx_queues, orig->num_tx_queues);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
191
swap(clone->num_napi, orig->num_napi);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
192
swap(clone->hds_thresh, orig->hds_thresh);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
214
struct fbnic_net *clone)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
219
for (i = 0; i < max(clone->num_napi, orig->num_napi); i++)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
224
fbnic_clone_swap_cfg(orig, clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
227
swap(clone->napi[i], orig->napi[i]);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
229
swap(clone->tx[i], orig->tx[i]);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
231
swap(clone->rx[i], orig->rx[i]);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
234
static void fbnic_clone_free(struct fbnic_net *clone)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
236
kfree(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
334
struct fbnic_net *clone;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
376
clone = fbnic_clone_create(fbn);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
377
if (!clone)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
380
fbnic_set_rings(clone, ring, kernel_ring);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
382
err = fbnic_alloc_napi_vectors(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
386
err = fbnic_alloc_resources(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
395
err = fbnic_set_netif_queues(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
402
fbnic_clone_swap(fbn, clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
406
fbnic_free_resources(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
407
fbnic_free_napi_vectors(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
408
fbnic_clone_free(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
415
fbnic_free_resources(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
417
fbnic_free_napi_vectors(clone);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
419
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/pinctrl/renesas/pinctrl-rzg2l.c
3684
ret = regmap_read(pctrl->syscon, pctrl->clone_offset, &cache->clone);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3707
ret = regmap_write(pctrl->syscon, pctrl->clone_offset, cache->clone);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
387
u32 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
1793
struct extent_buffer *clone;
fs/btrfs/ctree.c
1802
clone = btrfs_clone_extent_buffer(lowest);
fs/btrfs/ctree.c
1803
if (!clone)
fs/btrfs/ctree.c
1807
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
7308
struct extent_buffer *clone;
fs/btrfs/send.c
7310
clone = btrfs_clone_extent_buffer(path->nodes[level]);
fs/btrfs/send.c
7311
if (!clone)
fs/btrfs/send.c
7315
path->nodes[level] = clone;
fs/f2fs/acl.c
310
struct posix_acl *clone = NULL;
fs/f2fs/acl.c
313
clone = kmemdup(acl, struct_size(acl, a_entries, acl->a_count),
fs/f2fs/acl.c
315
if (clone)
fs/f2fs/acl.c
316
refcount_set(&clone->a_refcount, 1);
fs/f2fs/acl.c
318
return clone;
fs/f2fs/acl.c
380
struct posix_acl *clone;
fs/f2fs/acl.c
397
clone = f2fs_acl_clone(p, GFP_NOFS);
fs/f2fs/acl.c
398
if (!clone) {
fs/f2fs/acl.c
403
ret = f2fs_acl_create_masq(clone, mode);
fs/f2fs/acl.c
408
posix_acl_release(clone);
fs/f2fs/acl.c
410
*acl = clone;
fs/f2fs/acl.c
420
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
588
struct metapath clone;
fs/gfs2/bmap.c
592
clone_metapath(&clone, mp);
fs/gfs2/bmap.c
593
ret = gfs2_walk_metadata(inode, &clone, len, gfs2_hole_walker);
fs/gfs2/bmap.c
598
hole_size = metapath_to_block(GFS2_SB(inode), &clone) - lblock;
fs/gfs2/bmap.c
605
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
1406
struct nfsd4_clone *clone = &u->clone;
fs/nfsd/nfs4proc.c
1410
status = nfsd4_verify_copy(rqstp, cstate, &clone->cl_src_stateid, &src,
fs/nfsd/nfs4proc.c
1411
&clone->cl_dst_stateid, &dst);
fs/nfsd/nfs4proc.c
1415
status = nfsd4_clone_file_range(rqstp, src, clone->cl_src_pos,
fs/nfsd/nfs4proc.c
1416
dst, clone->cl_dst_pos, clone->cl_count,
fs/nfsd/nfs4xdr.c
2256
struct nfsd4_clone *clone = &u->clone;
fs/nfsd/nfs4xdr.c
2259
status = nfsd4_decode_stateid4(argp, &clone->cl_src_stateid);
fs/nfsd/nfs4xdr.c
2262
status = nfsd4_decode_stateid4(argp, &clone->cl_dst_stateid);
fs/nfsd/nfs4xdr.c
2265
if (xdr_stream_decode_u64(argp->xdr, &clone->cl_src_pos) < 0)
fs/nfsd/nfs4xdr.c
2267
if (xdr_stream_decode_u64(argp->xdr, &clone->cl_dst_pos) < 0)
fs/nfsd/nfs4xdr.c
2269
if (xdr_stream_decode_u64(argp->xdr, &clone->cl_count) < 0)
fs/nfsd/xdr4.h
897
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
227
struct posix_acl *clone = NULL;
fs/posix_acl.c
230
clone = kmemdup(acl, struct_size(acl, a_entries, acl->a_count),
fs/posix_acl.c
232
if (clone)
fs/posix_acl.c
233
refcount_set(&clone->a_refcount, 1);
fs/posix_acl.c
235
return clone;
fs/posix_acl.c
564
struct posix_acl *clone = posix_acl_clone(*acl, gfp);
fs/posix_acl.c
566
if (clone) {
fs/posix_acl.c
567
err = posix_acl_create_masq(clone, mode_p);
fs/posix_acl.c
569
posix_acl_release(clone);
fs/posix_acl.c
570
clone = NULL;
fs/posix_acl.c
574
*acl = clone;
fs/posix_acl.c
582
struct posix_acl *clone = posix_acl_clone(*acl, gfp);
fs/posix_acl.c
584
if (clone) {
fs/posix_acl.c
585
err = __posix_acl_chmod_masq(clone, mode);
fs/posix_acl.c
587
posix_acl_release(clone);
fs/posix_acl.c
588
clone = NULL;
fs/posix_acl.c
592
*acl = clone;
fs/posix_acl.c
644
struct posix_acl *clone;
fs/posix_acl.c
662
clone = posix_acl_clone(p, GFP_NOFS);
fs/posix_acl.c
663
if (!clone)
fs/posix_acl.c
666
ret = posix_acl_create_masq(clone, mode);
fs/posix_acl.c
671
posix_acl_release(clone);
fs/posix_acl.c
673
*acl = clone;
fs/posix_acl.c
683
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
291
const unsigned char * const *wnames, int clone);
include/net/netfilter/nf_tables.h
954
int (*clone)(struct nft_expr *dst,
include/net/tcp.h
2818
void (*clone)(const struct request_sock *req, struct sock *newsk,
include/soc/mscc/ocelot.h
1083
struct sk_buff **clone);
kernel/bpf/core.c
1557
struct bpf_prog *clone, *tmp;
kernel/bpf/core.c
1565
clone = bpf_prog_clone_create(prog, GFP_USER);
kernel/bpf/core.c
1566
if (!clone)
kernel/bpf/core.c
1571
env->prog = clone;
kernel/bpf/core.c
1573
insn_cnt = clone->len;
kernel/bpf/core.c
1574
insn = clone->insnsi;
kernel/bpf/core.c
1596
clone->aux->verifier_zext);
kernel/bpf/core.c
1603
tmp = bpf_patch_insn_single(clone, i, insn_buff, rewritten);
kernel/bpf/core.c
1613
bpf_jit_prog_release_other(prog, clone);
kernel/bpf/core.c
1617
clone = tmp;
kernel/bpf/core.c
1621
env->prog = clone;
kernel/bpf/core.c
1624
insn = clone->insnsi + i + insn_delta;
kernel/bpf/core.c
1629
clone->blinded = 1;
kernel/bpf/core.c
1630
return clone;
kernel/bpf/helpers.c
3223
struct bpf_dynptr_kern *clone = (struct bpf_dynptr_kern *)clone__uninit;
kernel/bpf/helpers.c
3227
bpf_dynptr_set_null(clone);
kernel/bpf/helpers.c
3231
*clone = *ptr;
kernel/fork.c
2857
SYSCALL_DEFINE5(clone, unsigned long, clone_flags, unsigned long, newsp,
kernel/fork.c
2862
SYSCALL_DEFINE5(clone, unsigned long, newsp, unsigned long, clone_flags,
kernel/fork.c
2867
SYSCALL_DEFINE6(clone, unsigned long, clone_flags, unsigned long, newsp,
kernel/fork.c
2873
SYSCALL_DEFINE5(clone, unsigned long, clone_flags, unsigned long, newsp,
net/9p/client.c
1034
const unsigned char * const *wnames, int clone)
net/9p/client.c
1045
if (clone) {
net/core/filter.c
2463
struct sk_buff *clone;
net/core/filter.c
2482
clone = skb_clone(skb, GFP_ATOMIC);
net/core/filter.c
2483
if (unlikely(!clone))
net/core/filter.c
2493
kfree_skb(clone);
net/core/filter.c
2497
return __bpf_redirect(clone, dev, flags);
net/core/skbuff.c
2920
struct sk_buff *clone = NULL;
net/core/skbuff.c
2937
clone = skb_clone(list, GFP_ATOMIC);
net/core/skbuff.c
2938
if (!clone)
net/core/skbuff.c
2941
list = clone;
net/core/skbuff.c
2948
kfree_skb(clone);
net/core/skbuff.c
2961
if (clone) {
net/core/skbuff.c
2962
clone->next = list;
net/core/skbuff.c
2963
skb_shinfo(skb)->frag_list = clone;
net/core/skbuff.c
5554
struct sk_buff *clone;
net/core/skbuff.c
5559
clone = skb_clone(skb, GFP_ATOMIC);
net/core/skbuff.c
5560
if (!clone) {
net/core/skbuff.c
5565
clone->sk = sk;
net/core/skbuff.c
5566
clone->destructor = sock_efree;
net/core/skbuff.c
5568
return clone;
net/core/skbuff.c
6887
struct sk_buff *clone = NULL;
net/core/skbuff.c
6903
clone = skb_clone(list, gfp_mask);
net/core/skbuff.c
6904
if (!clone)
net/core/skbuff.c
6907
list = clone;
net/core/skbuff.c
6913
kfree_skb(clone);
net/core/skbuff.c
6926
if (clone) {
net/core/skbuff.c
6927
clone->next = list;
net/core/skbuff.c
6928
shinfo->frag_list = clone;
net/core/skbuff.c
7036
struct sk_buff *clone = skb_clone(skb, gfp);
net/core/skbuff.c
7038
if (!clone)
net/core/skbuff.c
7041
if (pskb_carve(clone, off, gfp) < 0 ||
net/core/skbuff.c
7042
pskb_trim(clone, to_copy)) {
net/core/skbuff.c
7043
kfree_skb(clone);
net/core/skbuff.c
7046
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
256
struct sk_buff *clone = KSZ_SKB_CB(skb)->clone;
net/dsa/tag_ksz.c
260
if (!clone)
net/dsa/tag_sja1105.c
297
struct sk_buff *clone = SJA1105_SKB_CB(skb)->clone;
net/dsa/tag_sja1105.c
337
if (clone) {
net/dsa/tag_sja1105.c
338
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
1306
if (icsk->icsk_ulp_ops && !icsk->icsk_ulp_ops->clone)
net/ipv4/inet_fragment.c
561
struct sk_buff *clone;
net/ipv4/inet_fragment.c
564
clone = alloc_skb(0, GFP_ATOMIC);
net/ipv4/inet_fragment.c
565
if (!clone)
net/ipv4/inet_fragment.c
567
skb_shinfo(clone)->frag_list = skb_shinfo(head)->frag_list;
net/ipv4/inet_fragment.c
571
clone->data_len = head->data_len - plen;
net/ipv4/inet_fragment.c
572
clone->len = clone->data_len;
net/ipv4/inet_fragment.c
573
head->truesize += clone->truesize;
net/ipv4/inet_fragment.c
574
clone->csum = 0;
net/ipv4/inet_fragment.c
575
clone->ip_summed = head->ip_summed;
net/ipv4/inet_fragment.c
576
add_frag_mem_limit(q->fqdir, clone->truesize);
net/ipv4/inet_fragment.c
577
skb_shinfo(head)->frag_list = clone;
net/ipv4/inet_fragment.c
578
nextp = &clone->next;
net/ipv4/raw.c
195
struct sk_buff *clone = skb_clone(skb, GFP_ATOMIC);
net/ipv4/raw.c
198
if (clone)
net/ipv4/raw.c
199
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
3701
if (unlikely(!src->ops->clone)) {
net/netfilter/nf_tables_api.c
3707
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
299
.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
1859
if (!priv->clone)
net/netfilter/nft_set_pipapo.c
1863
pipapo_gc_scan(set, priv->clone);
net/netfilter/nft_set_pipapo.c
1865
old = rcu_replace_pointer(priv->match, priv->clone,
net/netfilter/nft_set_pipapo.c
1867
priv->clone = NULL;
net/netfilter/nft_set_pipapo.c
1879
if (!priv->clone)
net/netfilter/nft_set_pipapo.c
1881
pipapo_free_match(priv->clone);
net/netfilter/nft_set_pipapo.c
1882
priv->clone = NULL;
net/netfilter/nft_set_pipapo.c
2093
struct nft_pipapo_match *m = priv->clone;
net/netfilter/nft_set_pipapo.c
2211
if (priv->clone)
net/netfilter/nft_set_pipapo.c
2212
m = priv->clone;
net/netfilter/nft_set_pipapo.c
2391
if (priv->clone) {
net/netfilter/nft_set_pipapo.c
2392
nft_set_pipapo_match_destroy(ctx, set, priv->clone);
net/netfilter/nft_set_pipapo.c
2393
pipapo_free_match(priv->clone);
net/netfilter/nft_set_pipapo.c
2394
priv->clone = NULL;
net/netfilter/nft_set_pipapo.h
168
struct nft_pipapo_match *clone;
net/openvswitch/actions.c
1275
struct sk_buff *clone;
net/openvswitch/actions.c
1288
clone = skb_clone(skb, GFP_ATOMIC);
net/openvswitch/actions.c
1289
if (clone)
net/openvswitch/actions.c
1290
do_output(dp, clone, port, key);
net/openvswitch/actions.c
1424
err = clone(dp, skb, key, a, last);
net/openvswitch/actions.c
1489
struct sw_flow_key *clone;
net/openvswitch/actions.c
1504
clone = clone_flow_key ? clone_key(key) : key;
net/openvswitch/actions.c
1505
if (clone) {
net/openvswitch/actions.c
1511
err = do_execute_actions(dp, skb, clone,
net/openvswitch/actions.c
1517
clone->recirc_id = recirc_id;
net/openvswitch/actions.c
1518
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
104
struct symbol *twin, *clone;
tools/objtool/klp-diff.c
1024
if (patched_sym->clone)
tools/objtool/klp-diff.c
1025
return patched_sym->clone;
tools/objtool/klp-diff.c
1042
return patched_sym->clone;
tools/objtool/klp-diff.c
1363
sym = patched_sym->clone;
tools/objtool/klp-diff.c
1371
patched_sym->clone = sym;
tools/objtool/klp-diff.c
1372
sym->clone = patched_sym;
tools/objtool/klp-diff.c
1532
out_sym = patched_sym->clone;
tools/objtool/klp-diff.c
1732
if (!reloc->sym->clone || is_undef_sym(reloc->sym->clone))
tools/objtool/klp-diff.c
1984
!sym->clone || !sym->clone->changed)
tools/objtool/klp-diff.c
1993
addend = elf_add_string(e->out, str_sec, sym->clone->twin->name);
tools/objtool/klp-diff.c
2010
sympos = find_sympos(e->orig, sym->clone->twin);
tools/objtool/klp-diff.c
987
patched_sym->clone = out_sym;
tools/objtool/klp-diff.c
988
out_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
153
child_pid = clone(run_vpid_test, stack + stack_size,
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
114
child->pid = child->tid = clone(child_func, child->stack + sizeof(child->stack)/2,
tools/testing/selftests/bpf/progs/dynptr_fail.c
1757
struct bpf_dynptr clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
1761
bpf_ringbuf_reserve_dynptr(&ringbuf, 64, 0, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1764
bpf_dynptr_clone(&ptr1, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1766
bpf_ringbuf_submit_dynptr(&clone, 0);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1776
struct bpf_dynptr clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
1782
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1787
bpf_dynptr_read(read_data, sizeof(read_data), &clone, 0, 0);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1798
struct bpf_dynptr clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
1803
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1805
bpf_ringbuf_submit_dynptr(&clone, 0);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1845
struct bpf_dynptr clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
1850
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1851
data = bpf_dynptr_data(&clone, 0, sizeof(val));
tools/testing/selftests/bpf/progs/dynptr_fail.c
1871
struct bpf_dynptr clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
1879
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1881
bpf_ringbuf_submit_dynptr(&clone, 0);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1925
struct bpf_dynptr clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
1931
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1932
data = bpf_dynptr_slice_rdwr(&clone, 0, buffer, sizeof(buffer));
tools/testing/selftests/bpf/progs/dynptr_fail.c
1950
struct bpf_dynptr clone, meta;
tools/testing/selftests/bpf/progs/dynptr_fail.c
1954
bpf_dynptr_clone(&meta, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1955
md = bpf_dynptr_slice_rdwr(&clone, 0, NULL, sizeof(*md));
tools/testing/selftests/bpf/progs/dynptr_fail.c
1974
struct bpf_dynptr clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
1981
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
1982
data = bpf_dynptr_slice_rdwr(&clone, 0, buffer, sizeof(buffer));
tools/testing/selftests/bpf/progs/dynptr_fail.c
2044
struct bpf_dynptr ptr, clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
2048
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
2053
bpf_ringbuf_discard_dynptr(&clone, 0);
tools/testing/selftests/bpf/progs/dynptr_fail.c
2063
struct bpf_dynptr ptr, clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
2067
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
2073
*(volatile __u8 *)&clone = 0;
tools/testing/selftests/bpf/progs/dynptr_fail.c
2083
struct bpf_dynptr ptr, clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
2087
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
2090
*(volatile __u8 *)&clone = 0;
tools/testing/selftests/bpf/progs/dynptr_fail.c
2102
struct bpf_dynptr ptr, clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
2111
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
2130
struct bpf_dynptr ptr, clone;
tools/testing/selftests/bpf/progs/dynptr_fail.c
2135
bpf_dynptr_clone(&ptr, &clone);
tools/testing/selftests/bpf/progs/dynptr_fail.c
2137
data = bpf_dynptr_data(&clone, 0, sizeof(val));
tools/testing/selftests/bpf/progs/dynptr_fail.c
2139
bpf_ringbuf_discard_dynptr(&clone, 0);
tools/testing/selftests/bpf/progs/dynptr_fail.c
2149
bpf_ringbuf_discard_dynptr(&clone, 0);
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
94
pid = clone(fn, stack, CLONE_VM | SIGCHLD, arg);
tools/testing/selftests/membarrier/membarrier_rseq_stress.c
479
pid_t pid = clone(burner_thread_fn_wrapper, stack + stack_size,
tools/testing/selftests/membarrier/membarrier_rseq_stress.c
544
pid_t pid = clone(leaf_child_fn, stack + stack_size,
tools/testing/selftests/membarrier/membarrier_rseq_stress.c
793
pid_t child = clone(run_throttle_child, stack + 1024 * 1024, CLONE_VM | SIGCHLD, NULL);
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
96
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
437
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,