2002-12-17 14:15:02

by Sanjay Kumar

[permalink] [raw]
Subject: How to get the size of the block device ???? (Important)

Hi,
I am Sanjay Kumar and wants to write my own file
system on Linux. I have almost written the code.
But,now i have a problem while writing the code
for "mkfs" for my filesystem.

Problem Summary : I need the size of the block device
in bytes on which my file system will be created.
Actually, there is a feild in the super block, needs
the total no of blocks on the device while while
creating the filesystem. So, Can you Plz. help me out
of this problem.

I got your email id from :

http://lwn.net/2001/0906/a/last-sector.php3

Sanjay Kumar.
M.C.A.,
Univeristy of Pune,
India.

________________________________________________________________________
Missed your favourite TV serial last night? Try the new, Yahoo! TV.
visit http://in.tv.yahoo.com


2002-12-17 14:26:44

by Richard B. Johnson

[permalink] [raw]
Subject: Re: How to get the size of the block device ???? (Important)

On Tue, 17 Dec 2002, [iso-8859-1] Sanjay Kumar wrote:

> Hi,
> I am Sanjay Kumar and wants to write my own file
> system on Linux. I have almost written the code.
> But,now i have a problem while writing the code
> for "mkfs" for my filesystem.
>
> Problem Summary : I need the size of the block device
> in bytes on which my file system will be created.
> Actually, there is a feild in the super block, needs
> the total no of blocks on the device while while
> creating the filesystem. So, Can you Plz. help me out
> of this problem.
>

You make an ioctl() function for your file-system that returns
the block-size that you selected when you designed the system.


Cheers,
Dick Johnson
Penguin : Linux version 2.4.18 on an i686 machine (797.90 BogoMips).
Why is the government concerned about the lunatic fringe? Think about it.


2002-12-17 14:32:50

by Sean Neakums

[permalink] [raw]
Subject: Re: How to get the size of the block device ???? (Important)

commence Richard B. Johnson quotation:

> On Tue, 17 Dec 2002, [iso-8859-1] Sanjay Kumar wrote:
>
>> Problem Summary : I need the size of the block device in bytes on
>> which my file system will be created. Actually, there is a feild
>> in the super block, needs the total no of blocks on the device
>> while while creating the filesystem. So, Can you Plz. help me out
>> of this problem.
>
> You make an ioctl() function for your file-system that returns the
> block-size that you selected when you designed the system.

The size of the block device is what is sought here, not the block
size of the filesystem.

Isn't there an ioctl for this? BLKSIZEGET or something?

--
/ |
[|] Sean Neakums | Questions are a burden to others;
[|] <[email protected]> | answers a prison for oneself.
\ |

2002-12-17 14:31:28

by Nicholas Berry

[permalink] [raw]
Subject: Re: How to get the size of the block device ???? (Important)

I think the question being asked is 'how do I find out how many block
long the device is?'

You can open it, seek to the end, then the file postiton will tell you
the size of the device.

Nik


>>> "Richard B. Johnson" <[email protected]> 12/17/02 09:36AM
>>>
On Tue, 17 Dec 2002, [iso-8859-1] Sanjay Kumar wrote:

> Hi,
> I am Sanjay Kumar and wants to write my own file
> system on Linux. I have almost written the code.
> But,now i have a problem while writing the code
> for "mkfs" for my filesystem.
>
> Problem Summary : I need the size of the block device
> in bytes on which my file system will be created.
> Actually, there is a feild in the super block, needs
> the total no of blocks on the device while while
> creating the filesystem. So, Can you Plz. help me out
> of this problem.
>

You make an ioctl() function for your file-system that returns
the block-size that you selected when you designed the system.


Cheers,
Dick Johnson
Penguin : Linux version 2.4.18 on an i686 machine (797.90 BogoMips).
Why is the government concerned about the lunatic fringe? Think about
it.

2002-12-17 18:41:25

by Matt Domsch

[permalink] [raw]
Subject: RE: How to get the size of the block device ???? (Important)

> I think the question being asked is 'how do I find out how many block
> long the device is?'

You can use the BLKGETSIZE64 ioctl() too. I refer you to the GNU Parted
code (ftp.gnu.org/gnu/parted) in libparted/linux.c to see how it's done
there. It first tries BLKGETSIZE64, then if that fails, tries BLKGETSIZE
instead.

Thanks,
Matt

--
Matt Domsch
Sr. Software Engineer, Lead Engineer, Architect
Dell Linux Solutions http://www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com