linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [EXT4 set 4][PATCH 2/5] i_version: Add hi 32 bit inode version on ext4 on-disk inode
@ 2007-07-01  7:37 Mingming Cao
  2007-07-03 21:37 ` J. Bruce Fields
  2007-07-10 23:30 ` Andrew Morton
  0 siblings, 2 replies; 4+ messages in thread
From: Mingming Cao @ 2007-07-01  7:37 UTC (permalink / raw)
  To: linux-fsdevel, linux-kernel, linux-ext4, nfsv4

This patch adds a 32-bit i_version_hi field to ext4_inode, which can be used for 64-bit inode versions. This field will store the higher 32 bits of the version, while Jean Noel's patch has added support to store the lower 32-bits in osd1.linux1.l_i_version.

Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
---
Index: linux-2.6.21/include/linux/ext4_fs.h
===================================================================
--- linux-2.6.21.orig/include/linux/ext4_fs.h
+++ linux-2.6.21/include/linux/ext4_fs.h
@@ -342,6 +342,7 @@ struct ext4_inode {
 	__le32  i_atime_extra;  /* extra Access time      (nsec << 2 | epoch) */
 	__le32  i_crtime;       /* File Creation time */
 	__le32  i_crtime_extra; /* extra FileCreationtime (nsec << 2 | epoch) */
+	__le32	i_version_hi;	/* high 32 bits for 64-bit version */
 };

 #define i_size_high	i_dir_acl

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

* Re: [EXT4 set 4][PATCH 2/5] i_version: Add hi 32 bit inode version on ext4 on-disk inode
  2007-07-01  7:37 [EXT4 set 4][PATCH 2/5] i_version: Add hi 32 bit inode version on ext4 on-disk inode Mingming Cao
@ 2007-07-03 21:37 ` J. Bruce Fields
  2007-07-10 23:30 ` Andrew Morton
  1 sibling, 0 replies; 4+ messages in thread
From: J. Bruce Fields @ 2007-07-03 21:37 UTC (permalink / raw)
  To: Mingming Cao; +Cc: linux-fsdevel, linux-ext4, nfsv4, linux-kernel

On Sun, Jul 01, 2007 at 03:37:16AM -0400, Mingming Cao wrote:
> This patch adds a 32-bit i_version_hi field to ext4_inode, which can be used for 64-bit inode versions. This field will store the higher 32 bits of the version, while Jean Noel's patch has added support to store the lower 32-bits in osd1.linux1.l_i_version.
> 

Sorry, I'm a little lost--where's that earlier patch, and exactly what
tree should this patch series apply to?

--b.

> Signed-off-by: Mingming Cao <cmm@us.ibm.com>
> Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
> Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
> ---
> Index: linux-2.6.21/include/linux/ext4_fs.h
> ===================================================================
> --- linux-2.6.21.orig/include/linux/ext4_fs.h
> +++ linux-2.6.21/include/linux/ext4_fs.h
> @@ -342,6 +342,7 @@ struct ext4_inode {
>  	__le32  i_atime_extra;  /* extra Access time      (nsec << 2 | epoch) */
>  	__le32  i_crtime;       /* File Creation time */
>  	__le32  i_crtime_extra; /* extra FileCreationtime (nsec << 2 | epoch) */
> +	__le32	i_version_hi;	/* high 32 bits for 64-bit version */
>  };
> 
>  #define i_size_high	i_dir_acl
> 
> 
> _______________________________________________
> NFSv4 mailing list
> NFSv4@linux-nfs.org
> http://linux-nfs.org/cgi-bin/mailman/listinfo/nfsv4

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

* Re: [EXT4 set 4][PATCH 2/5] i_version: Add hi 32 bit inode version on ext4 on-disk inode
  2007-07-01  7:37 [EXT4 set 4][PATCH 2/5] i_version: Add hi 32 bit inode version on ext4 on-disk inode Mingming Cao
  2007-07-03 21:37 ` J. Bruce Fields
@ 2007-07-10 23:30 ` Andrew Morton
  2007-07-11 11:46   ` Andreas Dilger
  1 sibling, 1 reply; 4+ messages in thread
From: Andrew Morton @ 2007-07-10 23:30 UTC (permalink / raw)
  To: cmm; +Cc: linux-fsdevel, linux-kernel, linux-ext4, nfsv4

On Sun, 01 Jul 2007 03:37:16 -0400
Mingming Cao <cmm@us.ibm.com> wrote:

> This patch adds a 32-bit i_version_hi field to ext4_inode, which can be used for 64-bit inode versions. This field will store the higher 32 bits of the version, while Jean Noel's patch has added support to store the lower 32-bits in osd1.linux1.l_i_version.

Please wordwrap this changelog entry to less than 80 columns.  Well, less
than 258, anyway ;)

> Signed-off-by: Mingming Cao <cmm@us.ibm.com>
> Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
> Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
> ---
> Index: linux-2.6.21/include/linux/ext4_fs.h
> ===================================================================
> --- linux-2.6.21.orig/include/linux/ext4_fs.h
> +++ linux-2.6.21/include/linux/ext4_fs.h
> @@ -342,6 +342,7 @@ struct ext4_inode {
>  	__le32  i_atime_extra;  /* extra Access time      (nsec << 2 | epoch) */
>  	__le32  i_crtime;       /* File Creation time */
>  	__le32  i_crtime_extra; /* extra FileCreationtime (nsec << 2 | epoch) */
> +	__le32	i_version_hi;	/* high 32 bits for 64-bit version */
>  };

Aren't there forward- backward-compatibility issues here?  How does the
filesystem driver work out whether this field is present and valid?

The changelog should describe this design issue.

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

* Re: [EXT4 set 4][PATCH 2/5] i_version: Add hi 32 bit inode version on ext4 on-disk inode
  2007-07-10 23:30 ` Andrew Morton
@ 2007-07-11 11:46   ` Andreas Dilger
  0 siblings, 0 replies; 4+ messages in thread
From: Andreas Dilger @ 2007-07-11 11:46 UTC (permalink / raw)
  To: Andrew Morton; +Cc: cmm, linux-fsdevel, linux-kernel, linux-ext4, nfsv4

On Jul 10, 2007  16:30 -0700, Andrew Morton wrote:
> > Signed-off-by: Mingming Cao <cmm@us.ibm.com>
> > Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
> > Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
> > ---
> > Index: linux-2.6.21/include/linux/ext4_fs.h
> > ===================================================================
> > --- linux-2.6.21.orig/include/linux/ext4_fs.h
> > +++ linux-2.6.21/include/linux/ext4_fs.h
> > @@ -342,6 +342,7 @@ struct ext4_inode {
> >  	__le32  i_atime_extra;  /* extra Access time      (nsec << 2 | epoch) */
> >  	__le32  i_crtime;       /* File Creation time */
> >  	__le32  i_crtime_extra; /* extra FileCreationtime (nsec << 2 | epoch) */
> > +	__le32	i_version_hi;	/* high 32 bits for 64-bit version */
> >  };
> 
> Aren't there forward- backward-compatibility issues here?  How does the
> filesystem driver work out whether this field is present and valid?

This uses the same EXT4_FITS_IN_INODE() check as any other, so the
compatibility issues are handled.  NFSv4 could live with 32-bit versions
with only a small danger of overflow, so we can still export ext3
filesystems with 128-byte inodes that have been updated to ext4.  For
Lustre (which requires 64-bit versions), we will enforce that space is
available with s_min_extra_isize and RO_COMPAT_EXTRA_ISIZE.

In the case where an older ext3/ext4 filesystem with large inodes does
not have enough space for i_version_hi the EAs that follow i_extra_isize
will be shifted to make room for it (if possible, which is likely).  There
are no critical fields inside i_extra_isize so in the rare case of a
failure to enlarge the i_extra_isize is not a cause for alarm.

Cheers, Andreas
--
Andreas Dilger
Principal Software Engineer
Cluster File Systems, Inc.

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

end of thread, other threads:[~2007-07-11 11:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-01  7:37 [EXT4 set 4][PATCH 2/5] i_version: Add hi 32 bit inode version on ext4 on-disk inode Mingming Cao
2007-07-03 21:37 ` J. Bruce Fields
2007-07-10 23:30 ` Andrew Morton
2007-07-11 11:46   ` Andreas Dilger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).