2.4.19 Generate better code for nfs_sillyrename
PATCH 1/1 2.4.19 Generate better code for nfs_sillyrename
Using strlen() generates an unnecessary inline function expansion plus dynamic stack adjustment. For constant strings, strlen() == sizeof()-1 and the object code is better. Patch against 2.4.19.
fs/nfs/dir.c +1 -1
@@ -741,7 +741,7 @@ static int nfs_sillyrename(struct inodestatic unsigned int sillycounter;const int i_inosize =sizeof (dir->i_ino)*2 ;const int countersize =sizeof (sillycounter)*2 ; -const int slen =strlen (".nfs" ) + i_inosize + countersize; +const int slen =sizeof (".nfs" )-1 + i_inosize + countersize;char silly[slen+1 ];struct qstr qsilly;struct dentry *sdentry;
Quoted 3 lines · Keith Owens
Using
strlen()generates an unnecessary inline function expansion plus dynamic stack adjustment. For constant strings,strlen()== sizeof()-1 and the object code is better. Patch against 2.4.19.
But now the source code is worse. Macro?
Quoted 12 lines
diff -urp
2.4.x-xfs-linux/fs/nfs/dir.c2.4.x-xfs-linux-kdb/fs/nfs/dir.cfs/nfs/dir.c +1
-1@@ -741,7 +741,7 @@ static int nfs_sillyrename(struct inodestatic unsigned int sillycounter;const int i_inosize =sizeof (dir->i_ino)*2 ;const int countersize =sizeof (sillycounter)*2 ; -const int slen =strlen (".nfs" ) + i_inosize + countersize; +const int slen =sizeof (".nfs" )-1 + i_inosize + countersize;char silly[slen+1 ];struct qstr qsilly;struct dentry *sdentry;
Signature · 1 line
Daniel