Skip to contentSkip to conversation

fix compile breakage in fs/ after nanosecond stat timefields patch

PATCH In review Adrian Bunk 3 participants 3 messages Nov 18, 2002

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fix compile breakage in fs/ after nanosecond stat timefields patch

Hi Andi,

the patch below fixes the following compile errors in 2.5.48:

<-- snip -->

..
gcc -Wp,-MD,fs/adfs/.inode.o.d -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=k6 -Iarch/i386/mach-generic -nostdinc -iwithprefix include -DKBUILD_BASENAME=inode -DKBUILD_MODNAME=adfs -c -o fs/adfs/inode.o fs/adfs/inode.c
fs/adfs/inode.c: In function `adfs_adfs2unix_time':
fs/adfs/inode.c:188: incompatible types in return make[2]: *** [fs/adfs/inode.o] Error 1
...
gcc -Wp,-MD,fs/afs/.vlclient.o.d -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=k6 -Iarch/i386/mach-generic -nostdinc -iwithprefix include -DKBUILD_BASENAME=vlclient -DKBUILD_MODNAME=kafs -c -o fs/afs/vlclient.o fs/afs/vlclient.c
fs/afs/vlclient.c: In function `afs_rxvl_get_entry_by_id_async2':
fs/afs/vlclient.c:587: incompatible types in assignment make[2]: *** [fs/afs/vlclient.o] Error 1
...
gcc -Wp,-MD,fs/jffs2/.fs.o.d -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=k6 -Iarch/i386/mach-generic -nostdinc -iwithprefix include -DKBUILD_BASENAME=fs -DKBUILD_MODNAME=jffs2 -c -o fs/jffs2/fs.o fs/jffs2/fs.c
fs/jffs2/fs.c: In function `jffs2_new_inode':
fs/jffs2/fs.c:257: incompatible types in assignment make[2]: *** [fs/jffs2/fs.o] Error 1

<-- snip -->

Please check whether the patch is correct.

TIA
Adrian

fs/adfs/inode.c renamed from fs/adfs/inode.c.old +1 -1
@@ -185,7 +185,7 @@
 	unsigned int high, low;
 
 	if (ADFS_I(inode)->stamped == 0)
-		return CURRENT_TIME;
+		return get_seconds();
 
 	high = ADFS_I(inode)->loadaddr << 24;
 	low  = ADFS_I(inode)->execaddr;
fs/afs/vlclient.c renamed from fs/afs/vlclient.c.old +1 -1
@@ -584,7 +584,7 @@
 #endif
 
 		/* success */
-		entry->ctime = CURRENT_TIME;
+		entry->ctime = get_seconds();
 		ret = 0;
 		goto done;
 	}
fs/jffs2/fs.c renamed from fs/jffs2/fs.c.old +2 -1
@@ -253,7 +253,8 @@
 	inode->i_mode = ri->mode;
 	inode->i_gid = ri->gid;
 	inode->i_uid = ri->uid;
-	inode->i_atime = inode->i_ctime = inode->i_mtime = 
+	inode->i_atime.tv_sec = inode->i_ctime.tv_sec =
+		inode->i_mtime.tv_sec = 
 		ri->atime = ri->mtime = ri->ctime = get_seconds();
 	inode->i_blksize = PAGE_SIZE;
 	inode->i_blocks = 0;
#1 lore raw
Quoted 3 lines · Adrian Bunk

Hi Andi,

the patch below fixes the following compile errors in 2.5.48:

Seems correct.

Weird, I could swear I (compile) tested all these.

-Andi

#2 lore raw
In reply to Adrian Bunk

Hi all,

below a patch for fs/devfs/base.c in order to follow the time convention changes.

Holger

Quoted 66 lines · Adrian Bunk

Hi Andi,

the patch below fixes the following compile errors in 2.5.48:

<-- snip -->

..
gcc -Wp,-MD,fs/adfs/.inode.o.d -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=k6 -Iarch/i386/mach-generic -nostdinc -iwithprefix include -DKBUILD_BASENAME=inode -DKBUILD_MODNAME=adfs -c -o fs/adfs/inode.o fs/adfs/inode.c
fs/adfs/inode.c: In function `adfs_adfs2unix_time':
fs/adfs/inode.c:188: incompatible types in return make[2]: *** [fs/adfs/inode.o] Error 1
...
gcc -Wp,-MD,fs/afs/.vlclient.o.d -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=k6 -Iarch/i386/mach-generic -nostdinc -iwithprefix include -DKBUILD_BASENAME=vlclient -DKBUILD_MODNAME=kafs -c -o fs/afs/vlclient.o fs/afs/vlclient.c
fs/afs/vlclient.c: In function `afs_rxvl_get_entry_by_id_async2':
fs/afs/vlclient.c:587: incompatible types in assignment make[2]: *** [fs/afs/vlclient.o] Error 1
...
gcc -Wp,-MD,fs/jffs2/.fs.o.d -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=k6 -Iarch/i386/mach-generic -nostdinc -iwithprefix include -DKBUILD_BASENAME=fs -DKBUILD_MODNAME=jffs2 -c -o fs/jffs2/fs.o fs/jffs2/fs.c
fs/jffs2/fs.c: In function `jffs2_new_inode':
fs/jffs2/fs.c:257: incompatible types in assignment make[2]: *** [fs/jffs2/fs.o] Error 1

<-- snip -->

Please check whether the patch is correct.

TIA
Adrian

fs/adfs/inode.c renamed from fs/adfs/inode.c.old +1 -1
@@ -185,7 +185,7 @@
 	unsigned int high, low;
 
 	if (ADFS_I(inode)->stamped == 0)
-		return CURRENT_TIME;
+		return get_seconds();
 
 	high = ADFS_I(inode)->loadaddr << 24;
 	low  = ADFS_I(inode)->execaddr;
fs/afs/vlclient.c renamed from fs/afs/vlclient.c.old +1 -1
@@ -584,7 +584,7 @@
 #endif
 
 		/* success */
-		entry->ctime = CURRENT_TIME;
+		entry->ctime = get_seconds();
 		ret = 0;
 		goto done;
 	}
fs/jffs2/fs.c renamed from fs/jffs2/fs.c.old +2 -2
@@ -253,7 +253,8 @@
 	inode->i_mode = ri->mode;
 	inode->i_gid = ri->gid;
 	inode->i_uid = ri->uid;
-	inode->i_atime = inode->i_ctime = inode->i_mtime = 
+	inode->i_atime.tv_sec = inode->i_ctime.tv_sec =
+		inode->i_mtime.tv_sec = 
 		ri->atime = ri->mtime = ri->ctime = get_seconds();
 	inode->i_blksize = PAGE_SIZE;
 	inode->i_blocks = 0;
-
Quoted 4 lines

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

devfs/base.c renamed from devfs/base.c-orig +15 -12
@@ -799,9 +799,9 @@ struct symlink_type
 struct devfs_inode     /*  This structure is for "persistent" inode storage  */
 {
     struct dentry *dentry;
-    time_t atime;
-    time_t mtime;
-    time_t ctime;
+    struct timespec atime;
+    struct timespec mtime;
+    struct timespec ctime;
     unsigned int ino;            /*  Inode number as seen in the VFS         */
     uid_t uid;
     gid_t gid;
@@ -2509,9 +2509,12 @@ static int devfs_notify_change (struct d
     de->mode = inode->i_mode;
     de->inode.uid = inode->i_uid;
     de->inode.gid = inode->i_gid;
-    de->inode.atime = inode->i_atime.tv_sec;
-    de->inode.mtime = inode->i_mtime.tv_sec;
-    de->inode.ctime = inode->i_ctime.tv_sec;
+    de->inode.atime.tv_sec = inode->i_atime.tv_sec;
+    de->inode.atime.tv_nsec = inode->i_atime.tv_nsec;
+    de->inode.mtime.tv_sec = inode->i_mtime.tv_sec;
+    de->inode.mtime.tv_nsec = inode->i_mtime.tv_nsec;
+    de->inode.ctime.tv_sec = inode->i_ctime.tv_sec;
+    de->inode.ctime.tv_nsec = inode->i_ctime.tv_nsec;
     if ( ( iattr->ia_valid & (ATTR_MODE | ATTR_UID | ATTR_GID) ) &&
 	 !is_devfsd_or_child (fs_info) )
 	devfsd_notify_de (de, DEVFSD_NOTIFY_CHANGE, inode->i_mode,
@@ -2610,12 +2613,12 @@ static struct inode *_devfs_get_vfs_inod
     inode->i_mode = de->mode;
     inode->i_uid = de->inode.uid;
     inode->i_gid = de->inode.gid;
-    inode->i_atime.tv_sec = de->inode.atime;
-    inode->i_mtime.tv_sec = de->inode.mtime;
-    inode->i_ctime.tv_sec = de->inode.ctime;
-    inode->i_atime.tv_nsec = 0;
-    inode->i_mtime.tv_nsec = 0;
-    inode->i_ctime.tv_nsec = 0;
+    inode->i_atime.tv_sec = de->inode.atime.tv_sec;
+    inode->i_atime.tv_nsec = de->inode.atime.tv_nsec;
+    inode->i_mtime.tv_sec = de->inode.mtime.tv_sec;
+    inode->i_mtime.tv_nsec = de->inode.mtime.tv_nsec;
+    inode->i_ctime.tv_sec = de->inode.ctime.tv_sec;
+    inode->i_ctime.tv_nsec = de->inode.ctime.tv_nsec;
     DPRINTK (DEBUG_I_GET, "():   mode: 0%o  uid: %d  gid: %d\n",
 	     (int) inode->i_mode, (int) inode->i_uid, (int) inode->i_gid);
     return inode;