I am trying out a scheme where in I want to emulate a disk storage in the app space. 
With this in mind, I created a chain of  "BlkDrv <-> CharDrv <-> DiskApp"

Disk_app has the real storage (done in memory); BlkDrv is to have block driver interface to this disk for the rest of the system; While CharDrv is use for communicating  between BlkDrv and DiskApp. (Order of loading is insmod chardrv; create a link node; run DiskApp.out ; insmod blkDrv)

BlkDrv is mostly something I picked up from the web (RamDisk). And use to work fine with a local vmalloc-ed RAM. But once I added my logic; I see that once I do fdisk and try to mkfs on the disk it hangs my system. 

Can you please advice something which I might be doing wrong.

Thanks,
-Vic