diff options
author | Junio C Hamano <gitster@pobox.com> | 2014-06-16 10:06:15 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-06-16 10:06:15 -0700 |
commit | 9d1d882e9c1d4a34e2ae3af47d50c1f115a6cf84 (patch) | |
tree | 7ad62be63d7139f16eef7d9b5bfaaa3865ad2d3b /sha1_file.c | |
parent | 414405969e4b3ae7d278c2eaf1995c21cbfb5fdc (diff) | |
parent | d6c8a05bd58be82165be54f01c861c0fae28b8c4 (diff) | |
download | git-9d1d882e9c1d4a34e2ae3af47d50c1f115a6cf84.tar.gz |
Merge branch 'jk/report-fail-to-read-objects-better'
* jk/report-fail-to-read-objects-better:
open_sha1_file: report "most interesting" errno
Diffstat (limited to 'sha1_file.c')
-rw-r--r-- | sha1_file.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sha1_file.c b/sha1_file.c index 3e9f55f1bb..34d527f670 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -1437,19 +1437,23 @@ static int open_sha1_file(const unsigned char *sha1) { int fd; struct alternate_object_database *alt; + int most_interesting_errno; fd = git_open_noatime(sha1_file_name(sha1)); if (fd >= 0) return fd; + most_interesting_errno = errno; prepare_alt_odb(); - errno = ENOENT; for (alt = alt_odb_list; alt; alt = alt->next) { fill_sha1_path(alt->name, sha1); fd = git_open_noatime(alt->base); if (fd >= 0) return fd; + if (most_interesting_errno == ENOENT) + most_interesting_errno = errno; } + errno = most_interesting_errno; return -1; } |