aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2008-02-15 15:00:38 -0500
committerTheodore Ts'o <tytso@mit.edu>2008-02-15 15:00:38 -0500
commit825f1481ead4ce40671089bae7412ac3519e8caa (patch)
tree574243b782595a47fb34f348e6f6a5f3b396678e
parent74d3487fc8aa58cec16dff7239dea1ca59bdab0e (diff)
ext4: Don't use ext4_dec_count() if not needed
The ext4_dec_count() function is only needed when dropping the i_nlink count on inodes which are (or which could be) directories. If we *know* that the inode in question can't possibly be a directory, use drop_nlink or clear_nlink() if we know i_nlink is 1. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
-rw-r--r--fs/ext4/namei.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
index fffd0807a01b..5a79c6b6dc69 100644
--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -2161,7 +2161,7 @@ static int ext4_unlink(struct inode * dir, struct dentry *dentry)
2161 dir->i_ctime = dir->i_mtime = ext4_current_time(dir); 2161 dir->i_ctime = dir->i_mtime = ext4_current_time(dir);
2162 ext4_update_dx_flag(dir); 2162 ext4_update_dx_flag(dir);
2163 ext4_mark_inode_dirty(handle, dir); 2163 ext4_mark_inode_dirty(handle, dir);
2164 ext4_dec_count(handle, inode); 2164 drop_nlink(inode);
2165 if (!inode->i_nlink) 2165 if (!inode->i_nlink)
2166 ext4_orphan_add(handle, inode); 2166 ext4_orphan_add(handle, inode);
2167 inode->i_ctime = ext4_current_time(inode); 2167 inode->i_ctime = ext4_current_time(inode);
@@ -2211,7 +2211,7 @@ retry:
2211 err = __page_symlink(inode, symname, l, 2211 err = __page_symlink(inode, symname, l,
2212 mapping_gfp_mask(inode->i_mapping) & ~__GFP_FS); 2212 mapping_gfp_mask(inode->i_mapping) & ~__GFP_FS);
2213 if (err) { 2213 if (err) {
2214 ext4_dec_count(handle, inode); 2214 clear_nlink(inode);
2215 ext4_mark_inode_dirty(handle, inode); 2215 ext4_mark_inode_dirty(handle, inode);
2216 iput (inode); 2216 iput (inode);
2217 goto out_stop; 2217 goto out_stop;
@@ -2404,7 +2404,7 @@ static int ext4_rename (struct inode * old_dir, struct dentry *old_dentry,
2404 ext4_dec_count(handle, old_dir); 2404 ext4_dec_count(handle, old_dir);
2405 if (new_inode) { 2405 if (new_inode) {
2406 /* checked empty_dir above, can't have another parent, 2406 /* checked empty_dir above, can't have another parent,
2407 * ext3_dec_count() won't work for many-linked dirs */ 2407 * ext4_dec_count() won't work for many-linked dirs */
2408 new_inode->i_nlink = 0; 2408 new_inode->i_nlink = 0;
2409 } else { 2409 } else {
2410 ext4_inc_count(handle, new_dir); 2410 ext4_inc_count(handle, new_dir);