All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Ronnie Sahlberg <sahlberg@google.com>
Cc: git@vger.kernel.org, Jonathan Nieder <jrnieder@gmail.com>
Subject: Re: [PATCH 06/15] copy.c: make copy_fd preserve meaningful errno
Date: Thu, 23 Oct 2014 10:51:11 -0700	[thread overview]
Message-ID: <xmqqlho6smi8.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1413919462-3458-7-git-send-email-sahlberg@google.com> (Ronnie Sahlberg's message of "Tue, 21 Oct 2014 12:24:13 -0700")

Ronnie Sahlberg <sahlberg@google.com> writes:

> commit 306805ccd147bfdf160b288a8d51fdf9b77ae0fa upstream.
>
> Update copy_fd to return a meaningful errno on failure.

These two are good changes, but makes me wonder if more places
benefit from having error_errno() that does the "save away errno,
use strerror(errno) to give an error message and restore errno"
for us.

Not meant as a suggestion for further changes in this series, but as
a future discussion item.

>
> Change-Id: I771f9703acc816902affcf35ff2a56d9426315ac
> Signed-off-by: Ronnie Sahlberg <sahlberg@google.com>
> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
> ---
>  copy.c | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/copy.c b/copy.c
> index f2970ec..a8d366e 100644
> --- a/copy.c
> +++ b/copy.c
> @@ -8,12 +8,17 @@ int copy_fd(int ifd, int ofd)
>  		if (!len)
>  			break;
>  		if (len < 0) {
> -			return error("copy-fd: read returned %s",
> -				     strerror(errno));
> +			int save_errno = errno;
> +			error("copy-fd: read returned %s", strerror(errno));
> +			errno = save_errno;
> +			return -1;
> +		}
> +		if (write_in_full(ofd, buffer, len) < 0) {
> +			int save_errno = errno;
> +			error("copy-fd: write returned %s", strerror(errno));
> +			errno = save_errno;
> +			return -1;
>  		}
> -		if (write_in_full(ofd, buffer, len) < 0)
> -			return error("copy-fd: write returned %s",
> -				     strerror(errno));
>  	}
>  	return 0;
>  }

  reply	other threads:[~2014-10-23 17:51 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-21 19:24 [PATCH 00/15] ref-transactions-reflog Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 01/15] refs.c make ref_transaction_create a wrapper to ref_transaction_update Ronnie Sahlberg
2014-10-23 17:42   ` Junio C Hamano
2014-10-23 17:44     ` Ronnie Sahlberg
2014-10-23 17:54       ` Junio C Hamano
2014-10-28 18:40         ` Junio C Hamano
2014-10-21 19:24 ` [PATCH 02/15] refs.c: make ref_transaction_delete a wrapper for ref_transaction_update Ronnie Sahlberg
2014-10-23 17:43   ` Junio C Hamano
2014-10-21 19:24 ` [PATCH 03/15] refs.c: rename the transaction functions Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 04/15] refs.c: add a new update_type field to ref_update Ronnie Sahlberg
2014-10-23 17:47   ` Junio C Hamano
2014-10-21 19:24 ` [PATCH 05/15] refs.c: add a function to append a reflog entry to a fd Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 06/15] copy.c: make copy_fd preserve meaningful errno Ronnie Sahlberg
2014-10-23 17:51   ` Junio C Hamano [this message]
2014-10-23 17:54     ` Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 07/15] refs.c: add a transaction function to append a reflog entry Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 08/15] refs.c: add a flag to allow reflog updates to truncate the log Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 09/15] refs.c: only write reflog update if msg is non-NULL Ronnie Sahlberg
2014-10-23 18:32   ` Junio C Hamano
2014-10-28 19:17     ` Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 10/15] refs.c: allow multiple reflog updates during a single transaction Ronnie Sahlberg
2014-10-23 18:54   ` Junio C Hamano
2014-10-28 19:59     ` Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 11/15] reflog.c: use a reflog transaction when writing during expire Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 12/15] refs.c: rename log_ref_setup to create_reflog Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 13/15] refs.c: make unlock_ref/close_ref/commit_ref static Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 14/15] refs.c: remove lock_any_ref_for_update Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 15/15] refs.c: allow deleting refs with a broken sha1 Ronnie Sahlberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqlho6smi8.fsf@gitster.dls.corp.google.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=jrnieder@gmail.com \
    --cc=sahlberg@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.