Subject: Re: [PATCH v7 04/33] files-backend: break out ref reading

From: Michael Haggerty <[email-masked]>
Date: Sun, 20 Mar 2016 06:03:09 +0100

On 03/01/2016 01:52 AM, David Turner wrote:
> Refactor resolve_ref_1 in terms of a new function read_raw_ref, which
> is responsible for reading ref data from the ref storage.
> 
> Later, we will make read_raw_ref a pluggable backend function, and make
> resolve_ref_unsafe common.
> 
> Testing done: Hacked in code to run both old and new version of
> resolve_ref_1 and compare all outputs, failing dramatically if outputs
> differed.  Ran test suite.

I like that you are splitting up resolve_ref_1(), which was too
complicated and convoluted before.

This is a textually large change and I'm still auditing it, but
meanwhile I have a question...

> [...]
> -		if (--depth < 0) {
> -			errno = ELOOP;
> -			return NULL;
> -		}

The old version set errno to ELOOP if there were too many layers of
symrefs. The new version doesn't seem to set errno at all in that case.
I think that is a regression, though I might be misunderstanding something.

Michael