[issue1129] hammer-inodes: malloc limit exceeded
Matthew Dillon
dillon at apollo.backplane.com
Tue Sep 16 15:58:19 PDT 2008
:Definitely.
:
:Every time I got a crash, the machine was re-creating an hourly rsnapshot
:arborescence from the previous one. It should have been a mix of mkdir /
:chmod / chown ...
:
:--
:Francois Tigeot
Ok, please try the patch below. This is kinda a kitchen sink approach
and will reduce performance somewhat when doing lots of
hardlinks/chmods/etc but I want to see if it deals with the problem.
Also reduce kern.maxvnodes to 100000.
-Matt
Matthew Dillon
<dillon at backplane.com>
Index: hammer_vnops.c
===================================================================
RCS file: /cvs/src/sys/vfs/hammer/hammer_vnops.c,v
retrieving revision 1.96
diff -u -p -r1.96 hammer_vnops.c
--- hammer_vnops.c 9 Aug 2008 07:04:16 -0000 1.96
+++ hammer_vnops.c 16 Sep 2008 22:52:12 -0000
@@ -1038,6 +1038,7 @@ hammer_vop_nlink(struct vop_nlink_args *
cache_setvp(nch, ap->a_vp);
}
hammer_done_transaction(&trans);
+ hammer_inode_waitreclaims(dip->hmp);
return (error);
}
@@ -1108,6 +1109,7 @@ hammer_vop_nmkdir(struct vop_nmkdir_args
}
}
hammer_done_transaction(&trans);
+ hammer_inode_waitreclaims(dip->hmp);
return (error);
}
@@ -1873,6 +1875,8 @@ done:
if (error == 0)
hammer_modify_inode(ip, modflags);
hammer_done_transaction(&trans);
+ if (ap->a_vp->v_opencount == 0)
+ hammer_inode_waitreclaims(ip->hmp);
return (error);
}
More information about the Bugs
mailing list