[RFC] [patch 3/3] i_version update for ext4: user interface

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patch adds a  ``st_i_version'' field in the stat
structure, and modifies the stat(2) syscall accordingly. Currently the
change is only visible on i386 and x86_64 archs.



Signed-off-by: Jean Noel Cordenner <jean-noel.cordenner@xxxxxxxx>

Index: linux-2.6.20-rc5/fs/stat.c
===================================================================
--- linux-2.6.20-rc5.orig/fs/stat.c     2007-01-19 16:59:15.000000000 +0100
+++ linux-2.6.20-rc5/fs/stat.c  2007-01-23 16:21:17.000000000 +0100
@@ -31,6 +31,7 @@
        stat->atime = inode->i_atime;
        stat->mtime = inode->i_mtime;
        stat->ctime = inode->i_ctime;
+       stat->i_version = inode->i_version;
        stat->size = i_size_read(inode);
        stat->blocks = inode->i_blocks;
        stat->blksize = (1 << inode->i_blkbits);
@@ -226,6 +227,7 @@
        tmp.st_atime = stat->atime.tv_sec;
        tmp.st_mtime = stat->mtime.tv_sec;
        tmp.st_ctime = stat->ctime.tv_sec;
+       tmp.st_i_version = stat->i_version;
 #ifdef STAT_HAVE_NSEC
        tmp.st_atime_nsec = stat->atime.tv_nsec;
        tmp.st_mtime_nsec = stat->mtime.tv_nsec;
@@ -359,6 +361,7 @@
        tmp.st_mtime_nsec = stat->mtime.tv_nsec;
        tmp.st_ctime = stat->ctime.tv_sec;
        tmp.st_ctime_nsec = stat->ctime.tv_nsec;
+       tmp.st_i_version = stat->i_version;
        tmp.st_size = stat->size;
        tmp.st_blocks = stat->blocks;
        tmp.st_blksize = stat->blksize;
Index: linux-2.6.20-rc5/include/linux/stat.h
===================================================================
--- linux-2.6.20-rc5.orig/include/linux/stat.h 2006-11-29 22:57:37.000000000 +0100 +++ linux-2.6.20-rc5/include/linux/stat.h 2007-01-23 16:22:18.000000000 +0100
@@ -68,6 +68,7 @@
        struct timespec  atime;
        struct timespec mtime;
        struct timespec ctime;
+       unsigned long   i_version;
        unsigned long   blksize;
        unsigned long long      blocks;
 };
Index: linux-2.6.20-rc5/include/asm-i386/stat.h
===================================================================
--- linux-2.6.20-rc5.orig/include/asm-i386/stat.h 2006-11-29 22:57:37.000000000 +0100 +++ linux-2.6.20-rc5/include/asm-i386/stat.h 2007-01-23 17:48:36.000000000 +0100
@@ -32,7 +32,7 @@
        unsigned long  st_mtime_nsec;
        unsigned long  st_ctime;
        unsigned long  st_ctime_nsec;
-       unsigned long  __unused4;
+       unsigned long  st_i_version;
        unsigned long  __unused5;
 };

@@ -41,7 +41,7 @@
  */
 struct stat64 {
        unsigned long long      st_dev;
-       unsigned char   __pad0[4];
+       unsigned int    st_i_version;

 #define STAT64_HAS_BROKEN_ST_INO       1
        unsigned long   __st_ino;
Index: linux-2.6.20-rc5/include/asm-x86_64/stat.h
===================================================================
--- linux-2.6.20-rc5.orig/include/asm-x86_64/stat.h 2006-11-29 22:57:37.000000000 +0100 +++ linux-2.6.20-rc5/include/asm-x86_64/stat.h 2007-01-23 17:57:03.000000000 +0100
@@ -23,7 +23,8 @@
        unsigned long   st_mtime_nsec;
        unsigned long   st_ctime;
        unsigned long   st_ctime_nsec;
-       long            __unused[3];
+       unsigned long   st_i_version;
+       long            __unused[2];
 };

 /* For 32bit emulation */

-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux