Thanks to GORO and Z we have a solution
Step by step guide
thanks to waigsr
for those looking to see the technical aspects of it.
SE sample zip contains a vold replacement from cm7 which actually do the magic of making sure that first partition gets mounted.
Note : as Link2SD messes with install-recovery.sh its adviced that after flashing this zip port any specific tweak you have in install-recovery.sh over to install-recovery2.sh in the same folder.
and then run link2SD
Hope this helps.
-============== Keeping old study for later reference and memories only ==============
I have been messing around with Link2SD and its config here is a short writeup for those who want to help.
The basic problem
Link2SD looks for a partition no of /sdcard +1 partition
Android has a habbit of mounting the last partition as /sdcard
so link2sd is going to fail in all senses.
however if anything is mounting at /data/sdext2 Link2sd condsider it as a second partition
so we still have hope of using it however there are several limitations of it.
multiple ways in which link2sd could be used.
1) create 2 partitions on sdcard
a) ext2 partition as mmcblk0p1
b) vfat partition as mmcblk0p2
entry in install-recovery.sh
mount -t ext2 /dev/block/mmcblk0p1 /data/sdext2
Cons : xrecovery can't mount sdcard as its mmcblk0p1 that xrecovery mounts
2) create 2 vfat partitions
a) mmcblk0p1 mounting itself at /data/sdext2
b) mmcblk0p2 mounting itself as /sdcard
cons recovery related files will go in /data/sdext2
3) three partition layout
a) mmcblk0p1 -> reserverd for recovery related stuff
b) mmcblk0p2 -> link2sd
c) mmcblk0p3 -> SDCARD
or find an alternative to use mmcblk0p1 as /sdcard
or use a loop file as /data/sdext2
Do suggest what you all think and how should we proceed.