From: Stephen Mollett Date: Tue, 8 May 2007 07:31:31 +0000 (-0700) Subject: udf: decrement correct link count in udf_rmdir X-Git-Tag: v2.6.22-rc1~613 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c007c06e3cccf6d80de7f97242da1c3146c431b2;p=linux-2.6 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 Cc: Dave Hansen Cc: Jan Kara Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/fs/udf/namei.c b/fs/udf/namei.c index fe361cd19a..b25437527d 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) inode->i_nlink); clear_nlink(inode); inode->i_size = 0; - inode_dec_link_count(inode); + inode_dec_link_count(dir); inode->i_ctime = dir->i_ctime = dir->i_mtime = current_fs_time(dir->i_sb); mark_inode_dirty(dir);