Skip to contentSkip to conversation

change attribute for ext4: user interface

RFC PATCH In review Jean-Noel Cordenner 1 participant 1 message Nov 29, 2006 VFS

lore
Share & tools
lore
#0 lore raw

RFC PATCH 3/3 change attribute for ext4: user interface

This patch adds a ``st_change_attribute'' 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 Celine Bourde
Signed-off-by Alexandre Ratchov
include/asm-i386/stat.h 2006-11-29 16:03:30.000000000 +0100 renamed from include/asm-i386/stat.h 2006-11-09 17:21:28.000000000 +0100 +2 -2
Index: linux-2.6.19-rc2-mm2-CA/include/asm-i386/stat.h
===================================================================
@@ -32,7 +32,7 @@
        unsigned long  st_mtime_nsec;
        unsigned long  st_ctime;
        unsigned long  st_ctime_nsec;
-       unsigned long  __unused4;
+       unsigned long  st_change_attribute;
        unsigned long  __unused5;
 };
 
@@ -41,7 +41,7 @@
  */
 struct stat64 {
        unsigned long long      st_dev;
-       unsigned char   __pad0[4];
+       unsigned char   st_change_attribute;
 
 #define STAT64_HAS_BROKEN_ST_INO       1
        unsigned long   __st_ino;
include/asm-x86_64/stat.h 2006-11-29 16:04:24.000000000 +0100 renamed from include/asm-x86_64/stat.h 2006-11-13 16:49:14.000000000 +0100 +2 -1
Index: linux-2.6.19-rc2-mm2-CA/include/asm-x86_64/stat.h
===================================================================
@@ -23,7 +23,8 @@
        unsigned long   st_mtime_nsec;
        unsigned long   st_ctime;
        unsigned long   st_ctime_nsec;
-       long            __unused[3];
+       unsigned long   st_change_attribute;
+       long            __unused[2];
 };
 
 /* For 32bit emulation */
include/linux/stat.h 2006-11-29 16:06:02.000000000 +0100 renamed from include/linux/stat.h 2006-11-09 17:21:49.000000000 +0100 +1 -0
Index: linux-2.6.19-rc2-mm2-CA/include/linux/stat.h
===================================================================
@@ -68,6 +68,7 @@
        struct timespec  atime;
        struct timespec mtime;
        struct timespec ctime;
+       unsigned long   change_attribute;
        unsigned long   blksize;
        unsigned long long      blocks;
 };
fs/stat.c 2006-11-29 16:07:54.000000000 +0100 renamed from fs/stat.c 2006-11-09 17:20:52.000000000 +0100 +3 -0
Index: linux-2.6.19-rc2-mm2-CA/fs/stat.c
===================================================================
@@ -32,6 +32,7 @@
        stat->mtime = inode->i_mtime;
        stat->ctime = inode->i_ctime;
        stat->size = i_size_read(inode);
+       stat->change_attribute = inode->i_change_attribute;
        stat->blocks = inode->i_blocks;
        stat->blksize = (1 << inode->i_blkbits);
 }
@@ -233,6 +234,7 @@
        tmp.st_atime = stat->atime.tv_sec;
        tmp.st_mtime = stat->mtime.tv_sec;
        tmp.st_ctime = stat->ctime.tv_sec;
+       tmp.st_change_attribute = stat->change_attribute;
 #ifdef STAT_HAVE_NSEC
        tmp.st_atime_nsec = stat->atime.tv_nsec;
        tmp.st_mtime_nsec = stat->mtime.tv_nsec;
@@ -366,6 +368,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_change_attribute = stat->change_attribute;
        tmp.st_size = stat->size;
        tmp.st_blocks = stat->blocks;
        tmp.st_blksize = stat->blksize;