-static struct delete_list {
- dev_t dev;
- INO_T inode;
-} *delete_list;
-static int dlist_len, dlist_alloc_len;
-
-/* yuck! This function wouldn't have been necessary if I had the sorting
- algorithm right. Unfortunately fixing the sorting algorithm would introduce
- a backward incompatibility as file list indexes are sent over the link.
-*/
-static int delete_already_done(struct file_list *flist,int j)
-{
- int i;
- STRUCT_STAT st;
-
- if (link_stat(f_name(flist->files[j]), &st)) return 1;
-
- for (i=0;i<dlist_len;i++) {
- if (st.st_ino == delete_list[i].inode &&
- st.st_dev == delete_list[i].dev)
- return 1;
- }
-
- return 0;
-}
-
-static void add_delete_entry(struct file_struct *file)
-{
- if (dlist_len == dlist_alloc_len) {
- dlist_alloc_len += 1024;
- delete_list = (struct delete_list *)Realloc(delete_list, sizeof(delete_list[0])*dlist_alloc_len);
- if (!delete_list) out_of_memory("add_delete_entry");
- }
-
- delete_list[dlist_len].dev = file->dev;
- delete_list[dlist_len].inode = file->inode;
- dlist_len++;
-
- if (verbose > 3)
- rprintf(FINFO,"added %s to delete list\n", f_name(file));
-}
-
-static void delete_one(struct file_struct *f)