diff options
author | vk154806 <none@none> | 2007-04-20 06:09:57 -0700 |
---|---|---|
committer | vk154806 <none@none> | 2007-04-20 06:09:57 -0700 |
commit | d13c09a7f68650a64fdd79529685b4761b73bfbc (patch) | |
tree | 752bf9e50a91aa8696a2b52d644c8d5a7e08a798 /usr/src | |
parent | 61ee869ef3fff08996d6710c5d4f7a17bc81415c (diff) | |
download | illumos-joyent-d13c09a7f68650a64fdd79529685b4761b73bfbc.tar.gz |
6453594 Number of unreclaimed files and Number of inodes in ufs delete queue are not always in sync
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/fs/ufs/ufs_thread.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/usr/src/uts/common/fs/ufs/ufs_thread.c b/usr/src/uts/common/fs/ufs/ufs_thread.c index 06237a090b..2828cc43cd 100644 --- a/usr/src/uts/common/fs/ufs/ufs_thread.c +++ b/usr/src/uts/common/fs/ufs/ufs_thread.c @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -264,11 +264,19 @@ ufs_delete(struct ufsvfs *ufsvfsp, struct inode *ip, int dolockfs) * Ignore if deletes are not allowed (wlock/hlock) */ if (ULOCKFS_IS_NOIDEL(ITOUL(ip))) { + mutex_enter(&delq->uq_mutex); + delq_info->delq_unreclaimed_blocks -= ip->i_blocks; + delq_info->delq_unreclaimed_files--; + mutex_exit(&delq->uq_mutex); VN_RELE(vp); return; } if ((vp->v_count > 1) || (ip->i_mode == 0)) { + mutex_enter(&delq->uq_mutex); + delq_info->delq_unreclaimed_blocks -= ip->i_blocks; + delq_info->delq_unreclaimed_files--; + mutex_exit(&delq->uq_mutex); VN_RELE(vp); return; } |