From d1c824213a43e52903b28878a798fe02e94a4c1f Mon Sep 17 00:00:00 2001 From: Al Viro Date: Thu, 21 Jul 2011 15:57:47 -0400 Subject: [PATCH] --- yaml --- r: 257408 b: refs/heads/master c: 22ba747f660c0acd14761628c24aa972d18058a0 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/jffs2/dir.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index b3f5ca7346c7..dafb22366e14 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 841590ce16c19a3ce38028adfc8b1955482ee00c +refs/heads/master: 22ba747f660c0acd14761628c24aa972d18058a0 diff --git a/trunk/fs/jffs2/dir.c b/trunk/fs/jffs2/dir.c index 8f40ce4f1777..5f243cd63afc 100644 --- a/trunk/fs/jffs2/dir.c +++ b/trunk/fs/jffs2/dir.c @@ -820,7 +820,10 @@ static int jffs2_rename (struct inode *old_dir_i, struct dentry *old_dentry, if (victim_f) { /* There was a victim. Kill it off nicely */ - drop_nlink(new_dentry->d_inode); + if (S_ISDIR(new_dentry->d_inode->i_mode)) + clear_nlink(new_dentry->d_inode); + else + drop_nlink(new_dentry->d_inode); /* Don't oops if the victim was a dirent pointing to an inode which didn't exist. */ if (victim_f->inocache) {