svn commit: r190690 - head/sys/ufs/ffs
Konstantin Belousov
kib at FreeBSD.org
Sat Apr 4 05:19:53 PDT 2009
Author: kib
Date: Sat Apr 4 12:19:52 2009
New Revision: 190690
URL: http://svn.freebsd.org/changeset/base/190690
Log:
When removing or renaming snaphost, do not delve into request_cleanup().
The later may need blocks from the underlying device that belongs
to normal files, that should not be locked while snap lock is held.
Reported and tested by: pho
MFC after: 1 month
Modified:
head/sys/ufs/ffs/ffs_softdep.c
Modified: head/sys/ufs/ffs/ffs_softdep.c
==============================================================================
--- head/sys/ufs/ffs/ffs_softdep.c Sat Apr 4 11:43:32 2009 (r190689)
+++ head/sys/ufs/ffs/ffs_softdep.c Sat Apr 4 12:19:52 2009 (r190690)
@@ -3309,7 +3309,7 @@ newdirrem(bp, dp, ip, isrmdir, prevdirre
* the number of freefile and freeblks structures.
*/
ACQUIRE_LOCK(&lk);
- if (num_dirrem > max_softdeps / 2)
+ if (!(ip->i_flags & SF_SNAPSHOT) && num_dirrem > max_softdeps / 2)
(void) request_cleanup(ITOV(dp)->v_mount, FLUSH_REMOVE);
num_dirrem += 1;
FREE_LOCK(&lk);
More information about the svn-src-head
mailing list