2003-09-09 19:08:36

by Bernd Schubert

[permalink] [raw]
Subject: inode generation numbers

Hello,

for a user space nfs-daemon it would be helpful to get the inode generation
numbers. However it seems the fstat() from the glibc doesn't support this,
but refering to some google search fstat() from some (not all) other unixes
does.
Does anyone know how to read those numbers from userspace with linux?

Thanks,
Bernd


2003-09-09 20:08:53

by Andreas Dilger

[permalink] [raw]
Subject: Re: inode generation numbers

On Sep 09, 2003 21:08 +0200, Bernd Schubert wrote:
> for a user space nfs-daemon it would be helpful to get the inode generation
> numbers. However it seems the fstat() from the glibc doesn't support this,
> but refering to some google search fstat() from some (not all) other unixes
> does.
> Does anyone know how to read those numbers from userspace with linux?

For ext2/ext3 filesystems you can use EXT2_GET_VERSION ioctl for this.
Maybe reiserfs as well.

Cheers, Andreas
--
Andreas Dilger
http://sourceforge.net/projects/ext2resize/
http://www-mddsp.enel.ucalgary.ca/People/adilger/

2003-09-09 22:56:23

by Bernd Schubert

[permalink] [raw]
Subject: Re: inode generation numbers

On Tuesday 09 September 2003 22:07, Andreas Dilger wrote:
> On Sep 09, 2003 21:08 +0200, Bernd Schubert wrote:
> > for a user space nfs-daemon it would be helpful to get the inode
> > generation numbers. However it seems the fstat() from the glibc doesn't
> > support this, but refering to some google search fstat() from some (not
> > all) other unixes does.
> > Does anyone know how to read those numbers from userspace with linux?
>
> For ext2/ext3 filesystems you can use EXT2_GET_VERSION ioctl for this.

regarding to fs/ext2/ioctl.c it should be EXT2_IOC_GETVERSION, shouldn't it?

> Maybe reiserfs as well.
>

Hello,

thanks a lot, it seems to work pretty well.
Since I have never used the ioctl() call before I only want to be sure I don't
do something wrong, I think this is correct, isn't it?

int ret, igen;
ret = ioctl(fd, EXT2_IOC_GETVERSION, &igen);


It also works for reiserfs-partitions with the very same call, @reiserfs-team,
this won't change in the future, will it?


Cheers,
Bernd

2003-09-10 00:04:19

by Andries Brouwer

[permalink] [raw]
Subject: Re: inode generation numbers

On Tue, Sep 09, 2003 at 09:08:37PM +0200, Bernd Schubert wrote:

> for a user space nfs-daemon it would be helpful to get the inode generation
> numbers. However it seems the fstat() from the glibc doesn't support this,
> but refering to some google search fstat() from some (not all) other unixes
> does.
> Does anyone know how to read those numbers from userspace with linux?

For ext2:
The i_generation field of a file can be read and set using
the EXT2_IOC_GETVERSION and EXT2_IOC_SETVERSION ioctls.

2003-09-10 08:18:50

by Nikita Danilov

[permalink] [raw]
Subject: Re: inode generation numbers

Andreas Dilger writes:
> On Sep 09, 2003 21:08 +0200, Bernd Schubert wrote:
> > for a user space nfs-daemon it would be helpful to get the inode generation
> > numbers. However it seems the fstat() from the glibc doesn't support this,
> > but refering to some google search fstat() from some (not all) other unixes
> > does.
> > Does anyone know how to read those numbers from userspace with linux?
>
> For ext2/ext3 filesystems you can use EXT2_GET_VERSION ioctl for this.
> Maybe reiserfs as well.

yes.

>
> Cheers, Andreas

Nikita.

2003-09-11 07:03:28

by Oleg Drokin

[permalink] [raw]
Subject: Re: inode generation numbers

Hello!

On Wed, Sep 10, 2003 at 12:53:22AM +0200, Bernd Schubert wrote:

> It also works for reiserfs-partitions with the very same call, @reiserfs-team,
> this won't change in the future, will it?

Yes, it is in there just to be compatible with ext2.

Be warned that on v3.5 filesystems this generation stuff is weakly implemented
and defaults to object id of parent directory.

Bye,
Oleg