Re: [PATCH v7 2/4] read-cache: pass 'repo' to 'ce_mode_from_stat()'
Tian Yuchen <[email protected]>
| Newsgroups | org.kernel.vger.git |
|---|---|
| Message-ID | <[email protected]> |
On 7/20/26 17:52, SZEDER Gábor wrote:
> On Mon, Jul 20, 2026 at 05:13:17PM +0800, Tian Yuchen wrote:
>> On 7/19/26 03:02, SZEDER Gábor wrote:
>>> On Fri, Jul 17, 2026 at 02:35:57PM +0800, Tian Yuchen wrote:
>>>> diff --git a/read-cache.h b/read-cache.h
>>>> index 043da1f1aa..94b8d3e547 100644
>>>> --- a/read-cache.h
>>>> +++ b/read-cache.h
>>>> @@ -4,15 +4,24 @@
>>>> #include "read-cache-ll.h"
>>>> #include "object.h"
>>>> #include "pathspec.h"
>>>> +#include "environment.h"
>>>> -static inline unsigned int ce_mode_from_stat(const struct cache_entry *ce,
>>>> +/*
>>>> + * Determine the appropriate index mode for a file based on its stat()
>>>> + * information and the existing cache entry (if any).
>>>> + *
>>>> + * This function handles degradation for filesystems that lack
>>>> + * symlink support or reliable executable bits.
>>>> + */
>>>> +static inline unsigned int ce_mode_from_stat(struct repository *repo,
>>>
>>> This new parameter is not yet used in this function, which causes
>>> compilation errors in all source files which include "read-cache.h"
>>> when trying to build this commit using DEVELOPER=1, e.g.:
>
>>> I think the new parameter should be marked as UNUSED in this patch,
>>> and then the UNUSED should be dropped in the next, where you start
>>> using the parameter.
>>>
>>>> + const struct cache_entry *ce,
>>>> unsigned int mode)
>>>> {
>>>> extern int trust_executable_bit, has_symlinks;
>>>> - if (!has_symlinks && S_ISREG(mode) &&
>>>> + if (S_ISREG(mode) && !has_symlinks &&
>>>> ce && S_ISLNK(ce->ce_mode))
>>>> return ce->ce_mode;
>>>> - if (!trust_executable_bit && S_ISREG(mode)) {
>>>> + if (S_ISREG(mode) && !trust_executable_bit) {
>>>> if (ce && S_ISREG(ce->ce_mode))
>>>> return ce->ce_mode;
>>>> return create_ce_mode(0666);
>>>> --
>>>> 2.43.0
>>>>
>>
>> But 'USUSED' cannot be used here since the corresponding header
>> (git-compat-util.h, or more specifically compat/posix.h) is not included.
>
> UNUSED _can_ be used here, because:
>
> - This is a header file, so it's not supposed to be compiled on its
> own.
> - All C source files including this header file must start with
> including "git-compat-util.h", so by the time they include
> "read-cache.h", the UNUSED macro is already defined.
>
I see.
Thanks, yuchen