aboutsummaryrefslogtreecommitdiffstats
path: root/fs/udf
diff options
context:
space:
mode:
authorStephen Mollett <molletts@yahoo.com>2007-05-08 03:31:31 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-08 14:15:14 -0400
commitc007c06e3cccf6d80de7f97242da1c3146c431b2 (patch)
tree420cd93ce0dd695de99dbfcf999492b0d2ab2723 /fs/udf
parentc483bab099cb89e92b7cad94a52fcdaf37e56657 (diff)
udf: decrement correct link count in udf_rmdir
It appears that a minor thinko occurred in udf_rmdir and the (already-cleared) link count on the directory that is being removed was being decremented instead of the link count on its parent directory. This gives rise to lots of kernel messages similar to: UDF-fs warning (device loop1): udf_rmdir: empty directory has nlink != 2 (8) when removing directory trees. No other ill effects have been observed but I guess it could theoretically result in the link count overflowing on a very long-lived, much modified directory. Signed-off-by: Stephen Mollett <molletts@yahoo.com> Cc: Dave Hansen <haveblue@us.ibm.com> Cc: Jan Kara <jack@ucw.cz> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/udf')
-rw-r--r--fs/udf/namei.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/udf/namei.c b/fs/udf/namei.c
index fe361cd19a98..b25437527de4 100644
--- a/fs/udf/namei.c
+++ b/fs/udf/namei.c
@@ -878,7 +878,7 @@ static int udf_rmdir(struct inode * dir, struct dentry * dentry)
878 inode->i_nlink); 878 inode->i_nlink);
879 clear_nlink(inode); 879 clear_nlink(inode);
880 inode->i_size = 0; 880 inode->i_size = 0;
881 inode_dec_link_count(inode); 881 inode_dec_link_count(dir);
882 inode->i_ctime = dir->i_ctime = dir->i_mtime = current_fs_time(dir->i_sb); 882 inode->i_ctime = dir->i_ctime = dir->i_mtime = current_fs_time(dir->i_sb);
883 mark_inode_dirty(dir); 883 mark_inode_dirty(dir);
884 884