int index_storage_mailbox_delete(struct mailbox *box)
{
struct mailbox_metadata metadata;
+ int ret_guid;
if (!box->opened) {
/* \noselect mailbox, try deleting only the directory */
if (mailbox_mark_index_deleted(box, TRUE) < 0)
return -1;
- if (mailbox_get_metadata(box, MAILBOX_METADATA_GUID, &metadata) < 0)
- return -1;
+ ret_guid = mailbox_get_metadata(box, MAILBOX_METADATA_GUID, &metadata);
/* Make sure the indexes are closed before trying to delete the
directory that contains them. It can still fail with some NFS
return -1;
}
- mailbox_list_add_change(box->list, MAILBOX_LOG_RECORD_DELETE_MAILBOX,
- metadata.guid);
+ if (ret_guid == 0) {
+ mailbox_list_add_change(box->list,
+ MAILBOX_LOG_RECORD_DELETE_MAILBOX,
+ metadata.guid);
+ }
return index_storage_mailbox_delete_dir(box, TRUE);
}