| 160 | } |
| 161 | |
| 162 | static int remember_delete(struct file_struct *file, const char *fname, int flags) |
| 163 | { |
| 164 | int len; |
| 165 | |
| 166 | if (deldelay_cnt == deldelay_size && !flush_delete_delay()) |
| 167 | return 0; |
| 168 | |
| 169 | if (flags & DEL_NO_UID_WRITE) |
| 170 | deldelay_buf[deldelay_cnt++] = '!'; |
| 171 | |
| 172 | while (1) { |
| 173 | len = snprintf(deldelay_buf + deldelay_cnt, deldelay_size - deldelay_cnt, |
| 174 | "%x %s%c", (int)file->mode, fname, '\0'); |
| 175 | if ((deldelay_cnt += len) <= deldelay_size) |
| 176 | break; |
| 177 | deldelay_cnt -= len; |
| 178 | if (!flush_delete_delay()) |
| 179 | return 0; |
| 180 | } |
| 181 | |
| 182 | return 1; |
| 183 | } |
| 184 | |
| 185 | static int read_delay_line(char *buf, int *flags_p) |
| 186 | { |
no test coverage detected