<div dir="ltr"><div><div><div><div><div><div><div><br clear="all"></div>Hi All<br></div><br>i have got a requirement where I need to encrypt/decrypt data that goes from scsi layer to a particular block device.<br></div>As per my understanding till now on scsi subsystem in linux, i think i need to <br>

</div>use crypto api and call appropriate encrypt/decrypt function from sd driver for block device. <br><br>I need to locate that specific function where this change needs to be made ...<br>I know basic block device driver writing in linux .. But not able to fit scsi in this picture.<br>

<br></div>I have few basic doubts.. kindly help in resolving ...<br><br></div><div>1) Now, as example block device driver sbull, as given LDD, works on request queue, fetches req from this queue, using function req = elv_next_request(q)), <br>

in request function.<br>what is corresponding function in sd layer ?<br></div><div>That is the function where i have req-&gt;buffer in hand with me..<br><br><br></div><div>2) For a write operation from initiator to disk<br>

is the hierarchy like this<br></div><div></div><div><b>sd_prep_fn</b><br>generic block device request structure -&gt; converted into scsi specific request structure  <br></div><div>OR <br></div><div>what is scsi_prep_fn for??<br>

<br></div><div>3)How is Scpnt pointer that is req-&gt; special is used in sd_prep_func.. is processed? i mean which layer picks Scpnt up and processes ??<br><br></div><div>4)Any document any URL any kind of instruction will be extremely helpful.<br>

<br></div><div>5)Whenever a <b>new scsi device is attached </b>sd_probe is called 
sd_async_probe() is the async part of sd_probe() So when this is called 
the prep_fn is set to <span class="">sd_prep_fn</span> and hence this will be called.</div><div><br></div><div><b>But i thought sd_prep_fn should be called for each and every request .....??</b><br></div><div>Kindly help me to clear the confusion ..<br>

</div><div><br></div><div><br></div>Thanks<br></div>Nidhi<br><div><div><div><br><br>
</div></div></div></div>