From ffda66c299a91bf3dfc15ec1dfd68a512fca8a99 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Thu, 17 Mar 2011 11:23:12 +0000 Subject: [PATCH] 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 MFC after: 3 days --- sys/ufs/ufs/ufs_lookup.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/sys/ufs/ufs/ufs_lookup.c b/sys/ufs/ufs/ufs_lookup.c index e9977183cb6..d819f694a12 100644 --- a/sys/ufs/ufs/ufs_lookup.c +++ b/sys/ufs/ufs/ufs_lookup.c @@ -1252,10 +1252,8 @@ out: * 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); }