- FC target mode drivers

First, we need to figure out how to add target mode support to
mainline scsi_transport_fc. Then we need more tweaks in the user-space
code.


- user-space passthrough

sg v4 is necessary for the user-space target drivers' passthrough.


- backing-storage disk images

bd_mmap/aio support only raw images. They should support fancy disk
images (like QCOW, vmdk, etc) to enjoy snapshot without using LVM.
Adding QCOW to bd_mmap is quite simple, but a bit tricky to bd_aio
(see Xen's blktap code). Without code duplication, we need to add disk
images to both bd_mmap/aio.


- rearrange backing storage code

Now the backing storage code includes: file I/O (bd_mmap/aio/xen) and
user-space passthrough (bd_sg). The design are hacky. The backing
storage code will be more complicated (supports the fancy disk images,
OSD, etc). We need to reconsider the design at some future time.


- kernel-space passthrough

We need a new kernel module for the kernel-space target drivers'
passthrough. Seems it's ok by James as long as it's cleanly
implemented.


- persistent reservations

Nice though I'm not sure this is that important.


- backing-storage virtualization

Virtual tape support would be nice but it needs lot of work and I have
no plan to implement this.

Virtual cdrom support isn't difficult but I'm not sure people really
need it.


- AIO event notification

The user-space target drivers (only iSCSI now, possibly SRP later on)
need an event notification inferface to handle both synchronous and
asynchronous file descriptors. Now we use a workaround to use a I/O
helper thread (runs synchrnously to enable tgtd daemon run
asynchrnously). This workaround will be removed when upstream kernels
have a unified event notification interface (there are some candidates
under development). It should improve the tgt AIO performance too.
