|
Link Here
|
| 537 |
quotearg_colon (dir))); |
537 |
quotearg_colon (dir))); |
| 538 |
} |
538 |
} |
|
|
539 |
static void |
| 540 |
free_delayed_set_stat (struct delayed_set_stat *data) |
| 541 |
{ |
| 542 |
xheader_xattr_free (data->xattr_map, data->xattr_map_size); |
| 543 |
free (data->cntx_name); |
| 544 |
free (data->acls_a_ptr); |
| 545 |
free (data->acls_d_ptr); |
| 546 |
free (data); |
| 547 |
} |
| 548 |
|
| 549 |
void |
| 550 |
remove_delayed_set_stat (const char *fname) |
| 551 |
{ |
| 552 |
struct delayed_set_stat *data, *next, *prev = NULL; |
| 553 |
for (data = delayed_set_stat_head; data; data = next) |
| 554 |
{ |
| 555 |
next = data->next; |
| 556 |
if (strcmp (data->file_name, fname) == 0) |
| 557 |
{ |
| 558 |
free_delayed_set_stat (data); |
| 559 |
if (prev) |
| 560 |
prev->next = next; |
| 561 |
else |
| 562 |
delayed_set_stat_head = next; |
| 563 |
return; |
| 564 |
} |
| 565 |
else |
| 566 |
prev = data; |
| 567 |
} |
| 568 |
} |
| 569 |
|
| 539 |
/* After a file/link/directory creation has failed, see if |
570 |
/* After a file/link/directory creation has failed, see if |
| 540 |
it's because some required directory was not present, and if so, |
571 |
it's because some required directory was not present, and if so, |
| 541 |
create all required directories. Return zero if all the required |
572 |
create all required directories. Return zero if all the required |
|
Link Here
|
| 846 |
} |
877 |
} |
| 847 |
delayed_set_stat_head = data->next; |
878 |
delayed_set_stat_head = data->next; |
| 848 |
xheader_xattr_free (data->xattr_map, data->xattr_map_size); |
879 |
free_delayed_set_stat (data); |
| 849 |
free (data->cntx_name); |
|
|
| 850 |
free (data->acls_a_ptr); |
| 851 |
free (data->acls_d_ptr); |
| 852 |
free (data); |
| 853 |
} |
880 |
} |
| 854 |
} |
881 |
} |