public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* set blksize of block device
@ 2004-10-27 18:19 Lei Yang
  2004-10-27 18:30 ` Lei Yang
  0 siblings, 1 reply; 14+ messages in thread
From: Lei Yang @ 2004-10-27 18:19 UTC (permalink / raw)
  To: linux-kernel

Hello,

I am learning block device drivers and have a newbie question. Given a 
block device, is there anyway that I could set its block size? For 
example, I want to write a block device driver that will work on an 
existing block device.  In this driver, I want block size smaller. (The 
idea looks confusing but I could explain if anybody is interested :- )  
However,  typically the block size is 1KB, now I want to set it to 512 
or 256.  Can I do it?

TIA
Lei


^ permalink raw reply	[flat|nested] 14+ messages in thread
* Re: set blksize of block device
@ 2004-10-28  3:34 Bijoy Thomas
  2004-10-28  3:42 ` Lei Yang
  2004-11-01 13:55 ` Jon Masters
  0 siblings, 2 replies; 14+ messages in thread
From: Bijoy Thomas @ 2004-10-28  3:34 UTC (permalink / raw)
  To: Lei Yang; +Cc: linux-kernel, kernelnewbies


You set the blocksize for block device when you format it. For e.g, when you format a device with mkfs.ext2, you specify what block size you wish to use. This gets recorded in the superblock of the device. You can see what blocksize a device is using by running the tune2fs command with the deivce as an argument.

Reading and writing a block on a device in userspace is as simple as opening the device, lseeking to the block in question and doing a read or write. Keep in mind that the filesystem blocksize has nothing to do with the blocksize for the device. The sector size for most block devices is 512 bytes. This means that the unit in which we can communicate with the device is 512bytes. However, the filesystem driver will have it own unit i.e, the blocksize. Hence, usually many sectors will fall in a block. The blocks are held in the buffer cache.The filesystem block size should be a power of 2 and less than the pagesize.

In kernel space, reads and writes to blocks on the device are done through the function bread and block_read. Both functions are used to read blocks from a device. If you modify a block, you can set the buffer as dirty and the kernel will later write it to disk.

Regards,
Bijoy.


----- Original Message -----
From: Lei Yang <lya755@ece.northwestern.edu>
Date: Wednesday, October 27, 2004 10:25 pm
Subject: Re: set blksize of block device

> Or in other words, is there generic routines for block devices such 
> that 
> we could:
> 
> get (set) block size of a block device;
> read an existing block (e.g. block 4);
> write an existing block (e.g. block 5);
> 
> Please help!!!!
> 
> TIA
> Lei
> 
> 
> Lei Yang wrote:
> 
> > If nobody could answer this question, what about another one? Is 
> there 
> > a system call or a kernel interface that would allow me to write 
> a 
> > block of data to block 1 of a certain block device?
> >
> > Thanks for your reply in advance!
> >
> > Lei
> >
> > Lei Yang wrote:
> >
> >> Please cc me if you have answers to this, I am not on the list. 
> >> Thanks a lot!
> >>
> >> Lei Yang wrote:
> >>
> >>> Hello,
> >>>
> >>> I am learning block device drivers and have a newbie question. 
> Given 
> >>> a block device, is there anyway that I could set its block 
> size? For 
> >>> example, I want to write a block device driver that will work 
> on an 
> >>> existing block device.  In this driver, I want block size 
> smaller. 
> >>> (The idea looks confusing but I could explain if anybody is 
> >>> interested :- )  However,  typically the block size is 1KB, now 
> I 
> >>> want to set it to 512 or 256.  Can I do it?
> >>>
> >>> TIA
> >>> Lei
> >>>
> >>
> >>
> >>
> >
> >
> >
> > -- 
> > Kernelnewbies: Help each other learn about the Linux kernel.
> > Archive:       http://mail.nl.linux.org/kernelnewbies/
> > FAQ:           http://kernelnewbies.org/faq/
> >
> >
> 
> 
> 
> --
> Kernelnewbies: Help each other learn about the Linux kernel.
> Archive:       http://mail.nl.linux.org/kernelnewbies/
> FAQ:           http://kernelnewbies.org/faq/
> 
> 


^ permalink raw reply	[flat|nested] 14+ messages in thread
* RE: set blksize of block device
@ 2004-10-28  6:07 gopu.bhaskar
  0 siblings, 0 replies; 14+ messages in thread
From: gopu.bhaskar @ 2004-10-28  6:07 UTC (permalink / raw)
  To: lya755, bijoyjth; +Cc: linux-kernel, kernelnewbies

> >
> Isn't there a bwrite similar to bread?
> 

http://mail.nl.linux.org/kernelnewbies/2003-06/msg00231.html

-Gopu.

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2004-11-01 13:59 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-10-27 18:19 set blksize of block device Lei Yang
2004-10-27 18:30 ` Lei Yang
2004-10-28  1:44   ` Lei Yang
2004-10-28  2:25     ` Lei Yang
2004-10-28  6:11       ` Denis Vlasenko
2004-10-28 21:20         ` Lei Yang
2004-10-28 21:50           ` Todd Poynor
2004-10-28  6:09     ` Denis Vlasenko
2004-10-28 16:35     ` Shesha B.  Sreenivasamurthy
2004-10-28 21:04       ` Lei Yang
  -- strict thread matches above, loose matches on Subject: below --
2004-10-28  3:34 Bijoy Thomas
2004-10-28  3:42 ` Lei Yang
2004-11-01 13:55 ` Jon Masters
2004-10-28  6:07 gopu.bhaskar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox