Wrong kind of interface - this needs to use vfs_iter_read/write of type ITER_BVEC. And before merging anything I'd really like to see how this is an improvement over simply using the loop device.