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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.