<br>
<br>
On April 26, 2014 5:50:16 PM GMT+05:30, Satheesaran &lt;satheesaran@gmail.com&gt; wrote:<br>
&gt;Hi All,<br>
&gt;<br>
&gt;I was reading through the text, &quot;The Design of the Unix Operating<br>
&gt;System&quot; -<br>
&gt;Maurice Bach<br>
&gt;<br>
&gt;While reading through the Buffer cache, I had the following query<br>
&gt;<br>
&gt;Buffer data structure, has Buffer header + pointer to data area +<br>
&gt;pointers<br>
&gt;for Buffer Management.<br>
&gt;Does this,&quot;pointer to data area&quot;, corresponds to disk block or Logical<br>
&gt;Filesystem block ?<br>
&gt;<br>
&gt;I am confused about this.<br>
&gt;<br>
&gt;To add more, I am aware of the fact that disk block is of 512 bytes on<br>
&gt;the<br>
&gt;most of the hard disks and<br>
<br>
This is the device block size and for Linux kernel it is 512. For filesystem don&#39;t be bothered about it.<br>
<br>
&gt;logical disk block size ( depending on filesystem ) is of 4k in size.<br>
&gt;what would be available in data area pointed in buffer ?<br>
&gt;<br>
1 buffer_head in Linux kernel represents your file system block.<br>
<br>
A file system block has to be multiple of 512 and must be less than or equal to PAGE_SIZE. With that said the buffer head would actually point to something within a page. <br>
<br>
So if your file system block size FS_BLOCKSIZE  you can have PAGE_SIZE/FS_BLOCKSIZE  buffer heads pointing at different locations but within the same page.<br>
<br>
Functions that give you a buffer head like sb_bread take file system block number as argument. <br>
<br>
The translation of which device sector to read/write is done by kernel in 512 units. <br>
<br>
As far as the kernel is concerned device block size is always 512 bytes. So depending on which file system block you request the translation is done since when you mount your file system you will tell kernel about your file system block size. sb_setblocksize i think is the function.<br>
<br>
The device driver may further translate it if the device block size isn&#39;t 512 bytes. But Thats not your concern. Its between kernel and device driver.<br>
<br>
&gt;Thanks,<br>
&gt;Satheesaran<br>
&gt;<br>
&gt;<br>
&gt;------------------------------------------------------------------------<br>
&gt;<br>
&gt;_______________________________________________<br>
&gt;Kernelnewbies mailing list<br>
&gt;Kernelnewbies@kernelnewbies.org<br>
&gt;<a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
<br>
-- <br>
Sent from my Android device with K-9 Mail. Please excuse my brevity.