1 ====== 2 kcopyd 3 ====== 4 5 Kcopyd provides the ability to copy a range of 6 to one or more other block-devices, with an as 7 notification. It is used by dm-snapshot and dm 8 9 Users of kcopyd must first create a client and 10 to set aside for their copy jobs. This is done 11 kcopyd_client_create():: 12 13 int kcopyd_client_create(unsigned int num_p 14 struct kcopyd_clie 15 16 To start a copy job, the user must set up io_r 17 the source and destinations of the copy. Each 18 block-device along with the starting sector an 19 of the copy is given as one io_region structur 20 copy are given as an array of io_region struct 21 22 struct io_region { 23 struct block_device *bdev; 24 sector_t sector; 25 sector_t count; 26 }; 27 28 To start the copy, the user calls kcopyd_copy( 29 pointer, pointers to the source and destinatio 30 completion callback routine, and a pointer to 31 32 int kcopyd_copy(struct kcopyd_client *kc, s 33 unsigned int num_dests, str 34 unsigned int flags, kcopyd_ 35 36 typedef void (*kcopyd_notify_fn)(int read_e 37 void *cont 38 39 When the copy completes, kcopyd will call the 40 passing back the user's context pointer. It wi 41 write error occurred during the copy. 42 43 When a user is done with all their copy jobs, 44 kcopyd_client_destroy() to delete the kcopyd c 45 associated memory pages:: 46 47 void kcopyd_client_destroy(struct kcopyd_cl
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.