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:
parent
19aad99109
commit
ffda66c299
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=219712
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user