On Fri, Oct 8, 2010 at 4:32 AM, gaurav mahajan <gauravmahajan2007@xxxxxxxxx> wrote: > Hi, > > I'm new to kernel coding and I have this doubt. I'm trying to write a > simple dm-target which will concatenate devices and perform io > operations on it. That seems like the normal LVM2 functionality. You should be able to create a normal LV from multiple VGs in userspace and then trace the activity to see how it works in the kernel. > There are a couple of things that I'm stuck up with......any help is > appreciated ... > > 1. What do the presuspend and postsuspend fields in struct target_type mean ? Are you familiar with lvm snapshots? When you snapshot a LV you need to quiesce the LV prior to performing the snapshot and release after the snapshot is created. I believe those relate to that. fyi LVM2 is the userspace tools that leverage the Device Mapper kernel capabilities > 2. A bio request for read is split into no. of bios (here we're also > splitting bvec's wherever necessary) for reading from different > devices. For splitting the bvec's we are using the function split_bvec > (drivers/md/dm.c). > Now, after read completion, we've multiple bios with data in pages > pointed by bvec. For satisfying the read request, we want to merge the > data available in bios (Because we have splitted one bvec from > original bio into no. of bios). > > How can we merge these bvec's into one bvec for original bio? > Does the function dm_merge_bvec (dm.c) serve the same purpose? I suspect your are going to have to ask that on the device mapper mailing list. It may be called the lvm mailing list. > Thanks and Regards, > Gaurav. Greg -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ