Remove the #if defined(FFS) || defined(IFS) braces around the calls to

ffs_snapgone(). ufs.ko module is not build with FFS define, causing
snapshot inode number slots in superblock never be freed, as well as a
reference on the snapshot vnode.

IFS was removed several years ago, and UFS/FFS separation was not
maintained for real.

Reported, analyzed and tested by:	Yamagi Burmeister <lists yamagi org>
MFC after:	3 days
This commit is contained in:
Konstantin Belousov 2011-03-17 11:23:12 +00:00
parent 19aad99109
commit ffda66c299
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=219712

View File

@ -1252,10 +1252,8 @@ ufs_dirremove(dvp, ip, flags, isrmdir)
* drop its snapshot reference so that it will be reclaimed
* when last open reference goes away.
*/
#if defined(FFS) || defined(IFS)
if (ip != 0 && (ip->i_flags & SF_SNAPSHOT) != 0 && ip->i_effnlink == 0)
ffs_snapgone(ip);
#endif
return (error);
}
@ -1317,10 +1315,8 @@ ufs_dirrewrite(dp, oip, newinum, newtype, isrmdir)
* drop its snapshot reference so that it will be reclaimed
* when last open reference goes away.
*/
#if defined(FFS) || defined(IFS)
if ((oip->i_flags & SF_SNAPSHOT) != 0 && oip->i_effnlink == 0)
ffs_snapgone(oip);
#endif
return (error);
}