aboutsummaryrefslogtreecommitdiffstats
path: root/fs/sysv/namei.c
diff options
context:
space:
mode:
authorJames Morris <jmorris@namei.org>2011-03-07 18:55:06 -0500
committerJames Morris <jmorris@namei.org>2011-03-07 18:55:06 -0500
commit1cc26bada9f6807814806db2f0d78792eecdac71 (patch)
tree5509b5139db04af6c13db0a580c84116a4a54039 /fs/sysv/namei.c
parenteae61f3c829439f8f9121b5cd48a14be04df451f (diff)
parent214d93b02c4fe93638ad268613c9702a81ed9192 (diff)
Merge branch 'master'; commit 'v2.6.38-rc7' into next
Diffstat (limited to 'fs/sysv/namei.c')
-rw-r--r--fs/sysv/namei.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/fs/sysv/namei.c b/fs/sysv/namei.c
index b5e68da2db32..e474fbcf8bde 100644
--- a/fs/sysv/namei.c
+++ b/fs/sysv/namei.c
@@ -48,7 +48,6 @@ static struct dentry *sysv_lookup(struct inode * dir, struct dentry * dentry, st
48 struct inode * inode = NULL; 48 struct inode * inode = NULL;
49 ino_t ino; 49 ino_t ino;
50 50
51 d_set_d_op(dentry, dir->i_sb->s_root->d_op);
52 if (dentry->d_name.len > SYSV_NAMELEN) 51 if (dentry->d_name.len > SYSV_NAMELEN)
53 return ERR_PTR(-ENAMETOOLONG); 52 return ERR_PTR(-ENAMETOOLONG);
54 ino = sysv_inode_by_name(dentry); 53 ino = sysv_inode_by_name(dentry);
@@ -246,7 +245,6 @@ static int sysv_rename(struct inode * old_dir, struct dentry * old_dentry,
246 new_de = sysv_find_entry(new_dentry, &new_page); 245 new_de = sysv_find_entry(new_dentry, &new_page);
247 if (!new_de) 246 if (!new_de)
248 goto out_dir; 247 goto out_dir;
249 inode_inc_link_count(old_inode);
250 sysv_set_link(new_de, new_page, old_inode); 248 sysv_set_link(new_de, new_page, old_inode);
251 new_inode->i_ctime = CURRENT_TIME_SEC; 249 new_inode->i_ctime = CURRENT_TIME_SEC;
252 if (dir_de) 250 if (dir_de)
@@ -258,18 +256,15 @@ static int sysv_rename(struct inode * old_dir, struct dentry * old_dentry,
258 if (new_dir->i_nlink >= SYSV_SB(new_dir->i_sb)->s_link_max) 256 if (new_dir->i_nlink >= SYSV_SB(new_dir->i_sb)->s_link_max)
259 goto out_dir; 257 goto out_dir;
260 } 258 }
261 inode_inc_link_count(old_inode);
262 err = sysv_add_link(new_dentry, old_inode); 259 err = sysv_add_link(new_dentry, old_inode);
263 if (err) { 260 if (err)
264 inode_dec_link_count(old_inode);
265 goto out_dir; 261 goto out_dir;
266 }
267 if (dir_de) 262 if (dir_de)
268 inode_inc_link_count(new_dir); 263 inode_inc_link_count(new_dir);
269 } 264 }
270 265
271 sysv_delete_entry(old_de, old_page); 266 sysv_delete_entry(old_de, old_page);
272 inode_dec_link_count(old_inode); 267 mark_inode_dirty(old_inode);
273 268
274 if (dir_de) { 269 if (dir_de) {
275 sysv_set_link(dir_de, dir_page, new_dir); 270 sysv_set_link(dir_de, dir_page, new_dir);