Re: [PATCH v7 2/4] read-cache: pass 'repo' to 'ce_mode_from_stat()'
SZEDER Gábor <[email protected]>
| Newsgroups | org.kernel.vger.git |
|---|---|
| Message-ID | <[email protected]> |
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.