+
+ /*
+ * Clean inode on disk before freeing blocks
+ * to insure no duplicates if system crashes.
+ */
+ itmp = *ip;
+ itmp.i_size = 0;
+ for (i = 0; i < NADDR; i++)
+ itmp.i_un.i_addr[i] = 0;
+ itmp.i_flag |= ICHG|IUPD;
+ iupdat(&itmp, &time, &time, 1);
+ ip->i_flag &= ~(IUPD|IACC|ICHG);
+
+ /*
+ * Now return blocks to free list... if machine
+ * crashes, they will be harmless MISSING blocks.
+ */