From: Timo Sirainen Date: Sun, 30 Mar 2003 12:48:36 +0000 (+0300) Subject: Handle EDQUOT errno as "not enough disk space" like ENOSPC. X-Git-Tag: 1.1.alpha1~4781 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=742111fa99a5b852c9645080573d5853be3907a7;p=thirdparty%2Fdovecot%2Fcore.git Handle EDQUOT errno as "not enough disk space" like ENOSPC. --HG-- branch : HEAD --- diff --git a/src/lib-index/mail-custom-flags.c b/src/lib-index/mail-custom-flags.c index 3dd979162b..e89dbf5e2d 100644 --- a/src/lib-index/mail-custom-flags.c +++ b/src/lib-index/mail-custom-flags.c @@ -45,7 +45,7 @@ static int index_cf_set_syscall_error(struct mail_custom_flags *mcf, { i_assert(function != NULL); - if (errno == ENOSPC) { + if (ENOSPACE(errno)) { mcf->index->nodiskspace = TRUE; return FALSE; } diff --git a/src/lib-index/mail-index-compress.c b/src/lib-index/mail-index-compress.c index 492b94e6ea..6726bb0700 100644 --- a/src/lib-index/mail-index-compress.c +++ b/src/lib-index/mail-index-compress.c @@ -226,7 +226,7 @@ int mail_index_compress_data(struct mail_index *index) datapath = t_strconcat(index->filepath, DATA_FILE_PREFIX, NULL); if (rename(temppath, datapath) < 0) { - if (errno == ENOSPC) + if (ENOSPACE(errno)) index->nodiskspace = TRUE; index_set_error(index, "rename(%s, %s) failed: %m", diff --git a/src/lib-index/mail-index-data.c b/src/lib-index/mail-index-data.c index c1f9a88892..9e82f8e5d2 100644 --- a/src/lib-index/mail-index-data.c +++ b/src/lib-index/mail-index-data.c @@ -66,7 +66,7 @@ static int index_data_set_syscall_error(struct mail_index_data *data, { i_assert(function != NULL); - if (errno == ENOSPC) { + if (ENOSPACE(errno)) { data->index->nodiskspace = TRUE; return FALSE; } diff --git a/src/lib-index/mail-index-util.c b/src/lib-index/mail-index-util.c index e5a38b92c0..863ed0307f 100644 --- a/src/lib-index/mail-index-util.c +++ b/src/lib-index/mail-index-util.c @@ -52,7 +52,7 @@ int index_set_syscall_error(struct mail_index *index, const char *function) { i_assert(function != NULL); - if (errno == ENOSPC) { + if (ENOSPACE(errno)) { index->nodiskspace = TRUE; return FALSE; } @@ -68,7 +68,7 @@ int index_file_set_syscall_error(struct mail_index *index, const char *filepath, i_assert(filepath != NULL); i_assert(function != NULL); - if (errno == ENOSPC) { + if (ENOSPACE(errno)) { index->nodiskspace = TRUE; return FALSE; } @@ -109,7 +109,7 @@ int mail_index_create_temp_file(struct mail_index *index, const char **path) can't be helped. */ fd = open(*path, O_RDWR | O_CREAT | O_EXCL, 0660); if (fd == -1) { - if (errno == ENOSPC) + if (ENOSPACE(errno)) index->nodiskspace = TRUE; else { index_set_error(index, "Can't create temp index %s: %m", diff --git a/src/lib-index/mail-modifylog.c b/src/lib-index/mail-modifylog.c index 2347a5cf70..923815b5d1 100644 --- a/src/lib-index/mail-modifylog.c +++ b/src/lib-index/mail-modifylog.c @@ -72,7 +72,7 @@ static int modifylog_set_syscall_error(struct modify_log_file *file, { i_assert(function != NULL); - if (errno == ENOSPC) { + if (ENOSPACE(errno)) { file->log->index->nodiskspace = TRUE; return FALSE; } diff --git a/src/lib-index/mail-tree.c b/src/lib-index/mail-tree.c index f0985557e6..6e939c0cca 100644 --- a/src/lib-index/mail-tree.c +++ b/src/lib-index/mail-tree.c @@ -19,7 +19,7 @@ static int tree_set_syscall_error(struct mail_tree *tree, const char *function) { i_assert(function != NULL); - if (errno == ENOSPC) { + if (ENOSPACE(errno)) { tree->index->nodiskspace = TRUE; return FALSE; } diff --git a/src/lib-index/maildir/maildir-index.c b/src/lib-index/maildir/maildir-index.c index 9d6842faf6..18d6775ab7 100644 --- a/src/lib-index/maildir/maildir-index.c +++ b/src/lib-index/maildir/maildir-index.c @@ -225,7 +225,7 @@ static int maildir_index_update_flags(struct mail_index *index, /* minor problem: new_path is overwritten if it exists.. */ if (rename(old_path, new_path) < 0) { - if (errno == ENOSPC) + if (ENOSPACE(errno)) index->nodiskspace = TRUE; index_set_error(index, "maildir flags update: " diff --git a/src/lib-storage/index/index-save.c b/src/lib-storage/index/index-save.c index 6d070a623c..3806d4297d 100644 --- a/src/lib-storage/index/index-save.c +++ b/src/lib-storage/index/index-save.c @@ -82,7 +82,7 @@ static void set_write_error(struct mail_storage *storage, struct ostream *output, const char *path) { errno = output->stream_errno; - if (errno == ENOSPC) + if (ENOSPACE(errno)) mail_storage_set_error(storage, "Not enough disk space"); else { mail_storage_set_critical(storage, diff --git a/src/lib-storage/index/maildir/maildir-save.c b/src/lib-storage/index/maildir/maildir-save.c index b22d38ff79..7c082b4a7a 100644 --- a/src/lib-storage/index/maildir/maildir-save.c +++ b/src/lib-storage/index/maildir/maildir-save.c @@ -72,7 +72,7 @@ static int maildir_create_tmp(struct mail_storage *storage, const char *dir, *fname = t_strdup(tmp_fname); if (fd == -1) { - if (errno == ENOSPC) { + if (ENOSPACE(errno)) { mail_storage_set_error(storage, "Not enough disk space"); } else { @@ -131,7 +131,7 @@ static int maildir_copy(struct mail_save_context *ctx, failed = FALSE; else { failed = TRUE; - if (errno == ENOSPC) { + if (ENOSPACE(errno)) { mail_storage_set_error(ctx->ibox->box.storage, "Not enough disk space"); } else { diff --git a/src/lib-storage/index/mbox/mbox-save.c b/src/lib-storage/index/mbox/mbox-save.c index b95adc70cb..eff08625ea 100644 --- a/src/lib-storage/index/mbox/mbox-save.c +++ b/src/lib-storage/index/mbox/mbox-save.c @@ -39,7 +39,7 @@ static int syscall_error(struct mail_save_context *ctx, const char *function) static int write_error(struct mail_save_context *ctx) { - if (errno == ENOSPC) { + if (ENOSPACE(errno)) { mail_storage_set_error(ctx->ibox->box.storage, "Not enough disk space"); } else { diff --git a/src/lib/compat.h b/src/lib/compat.h index 9100d104e2..486398dd85 100644 --- a/src/lib/compat.h +++ b/src/lib/compat.h @@ -116,4 +116,10 @@ ssize_t my_writev(int fd, const struct iovec *iov, int iov_len); # define EOVERFLOW EINVAL #endif +#ifdef EDQUOT +# define ENOSPACE(errno) ((errno) == ENOSPC || (errno) == EDQUOT) +#else +# define ENOSPACE(errno) ((errno) == ENOSPC) +#endif + #endif