[Libsysio-commit] HEAD: libsysio/src inode.c
Brought to you by:
lward
From: Lee W. <lw...@us...> - 2008-12-06 23:28:26
|
Update of /cvsroot/libsysio/libsysio/src In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv8101 Modified Files: inode.c Log Message: When removing file system objects, make them undead. Go ahead and kill inodes marked immune if they are also zombies. Index: inode.c =================================================================== RCS file: /cvsroot/libsysio/libsysio/src/inode.c,v retrieving revision 1.47 retrieving revision 1.48 diff -u -w -b -B -p -r1.47 -r1.48 --- inode.c 6 Dec 2008 21:56:25 -0000 1.47 +++ inode.c 6 Dec 2008 23:28:19 -0000 1.48 @@ -169,7 +169,7 @@ i_reclaim() ino = next; next = ino->i_nodes.tqe_next; INO_CST_UPDCNT(iexamined); - if (ino->i_ref || ino->i_immune) + if (ino->i_ref || (ino->i_immune && !ino->i_zombie)) continue; INO_CST_UPDCNT(idismissed); _sysio_i_gone(ino); @@ -1321,6 +1321,7 @@ _sysio_p_unlink(struct pnode *pno) /* * Clean the namespace graphs to reflect the unlink. */ + _sysio_i_undead(pno->p_base->pb_ino); _sysio_pb_disconnect(pno->p_base); return 0; } @@ -1367,6 +1368,7 @@ _sysio_p_rmdir(struct pnode *pno) /* * Clean the namespace graphs to reflect the unlink. */ + _sysio_i_undead(pno->p_base->pb_ino); _sysio_pb_disconnect(pno->p_base); return 0; } |