mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 11:46:19 +00:00
[PATCH] fs/inode.c tweaks
Only touch inode's i_mtime and i_ctime to make them equal to "now" in case they aren't yet (don't just update timestamp unconditionally). Uninline the hash function to save 259 Bytes. This tiny inode change which may improve cache behaviour also shaves off 8 Bytes from file_update_time() on i386. Included a tiny codestyle cleanup, too. Signed-off-by: Andreas Mohr <andi@lisas.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
07acaf28d2
commit
ed97bd37ef
1 changed files with 8 additions and 6 deletions
14
fs/inode.c
14
fs/inode.c
|
@ -657,7 +657,7 @@ static struct inode * get_new_inode_fast(struct super_block *sb, struct hlist_he
|
|||
return inode;
|
||||
}
|
||||
|
||||
static inline unsigned long hash(struct super_block *sb, unsigned long hashval)
|
||||
static unsigned long hash(struct super_block *sb, unsigned long hashval)
|
||||
{
|
||||
unsigned long tmp;
|
||||
|
||||
|
@ -1003,7 +1003,7 @@ void generic_delete_inode(struct inode *inode)
|
|||
|
||||
list_del_init(&inode->i_list);
|
||||
list_del_init(&inode->i_sb_list);
|
||||
inode->i_state|=I_FREEING;
|
||||
inode->i_state |= I_FREEING;
|
||||
inodes_stat.nr_inodes--;
|
||||
spin_unlock(&inode_lock);
|
||||
|
||||
|
@ -1210,13 +1210,15 @@ void file_update_time(struct file *file)
|
|||
return;
|
||||
|
||||
now = current_fs_time(inode->i_sb);
|
||||
if (!timespec_equal(&inode->i_mtime, &now))
|
||||
if (!timespec_equal(&inode->i_mtime, &now)) {
|
||||
inode->i_mtime = now;
|
||||
sync_it = 1;
|
||||
inode->i_mtime = now;
|
||||
}
|
||||
|
||||
if (!timespec_equal(&inode->i_ctime, &now))
|
||||
if (!timespec_equal(&inode->i_ctime, &now)) {
|
||||
inode->i_ctime = now;
|
||||
sync_it = 1;
|
||||
inode->i_ctime = now;
|
||||
}
|
||||
|
||||
if (sync_it)
|
||||
mark_inode_dirty_sync(inode);
|
||||
|
|
Loading…
Reference in a new issue