From f1f2a790b15d676adc536a76f26685aeb74acef8 Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Fri, 2 May 2008 16:41:26 +0000 Subject: [PATCH] HAMMER 40C/Many: Inode/link-count sequencer cleanup pass. * Fix a forever-syncing inode issue by properly clearing the XDIRTY flag when the last record is removed from ip->rec_tree. --- sys/vfs/hammer/hammer_object.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/vfs/hammer/hammer_object.c b/sys/vfs/hammer/hammer_object.c index 4b4fdb4d4..68e367d14 100644 --- a/sys/vfs/hammer/hammer_object.c +++ b/sys/vfs/hammer/hammer_object.c @@ -31,7 +31,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $DragonFly: src/sys/vfs/hammer/hammer_object.c,v 1.49 2008/05/02 06:51:57 dillon Exp $ + * $DragonFly: src/sys/vfs/hammer/hammer_object.c,v 1.50 2008/05/02 16:41:26 dillon Exp $ */ #include "hammer.h" @@ -280,6 +280,10 @@ hammer_rel_mem_record(struct hammer_record *record) &record->ip->rec_tree, record); record->flags &= ~HAMMER_RECF_ONRBTREE; + if (RB_EMPTY(&record->ip->rec_tree)) { + record->ip->flags &= ~HAMMER_INODE_XDIRTY; + hammer_test_inode(record->ip); + } } if (record->flags & HAMMER_RECF_ALLOCDATA) { --hammer_count_record_datas; -- 2.11.4.GIT