Linux CIFS filesystem development
 help / color / mirror / Atom feed
From: Nathan Chancellor <nathan@kernel.org>
To: David Howells <dhowells@redhat.com>
Cc: Steve French <sfrench@samba.org>,
	Christian Brauner <brauner@kernel.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-cifs@vger.kernel.org, Paulo Alcantara <pc@manguebit.org>
Subject: Re: [GIT PULL for v7.1] vfs fixes
Date: Mon, 18 May 2026 14:32:54 -0700	[thread overview]
Message-ID: <20260518213254.GB3979157@ax162> (raw)
In-Reply-To: <406981.1779138300@warthog.procyon.org.uk>

On Mon, May 18, 2026 at 10:05:00PM +0100, David Howells wrote:
> Nathan Chancellor <nathan@kernel.org> wrote:
> 
> > > David Howells (22):
> > >       netfs: Fix potential for tearing in ->remote_i_size and ->zero_point
> > ...
> > >  fs/smb/client/cifsfs.c       |  38 ++++--
> > 
> > The changes in this file from that patch breaks the build with clang:
> > 
> >   fs/smb/client/cifsfs.c:1390:29: error: variable 'old_size' is uninitialized when used here [-Werror,-Wuninitialized]
> >    1390 |                 if (rc == 0 && new_size > old_size) {
> >         |                                           ^~~~~~~~
> >   fs/smb/client/cifsfs.c:1307:37: note: initialize the variable 'old_size' to silence this warning
> >    1307 |         unsigned long long i_size, old_size, new_size, zero_point;
> >         |                                            ^
> >         |                                             = 0
> >   fs/smb/client/cifsfs.c:1375:13: error: variable 'zero_point' is uninitialized when used here [-Werror,-Wuninitialized]
> >    1375 |         if (fend > zero_point)
> >         |                    ^~~~~~~~~~
> >   fs/smb/client/cifsfs.c:1307:59: note: initialize the variable 'zero_point' to silence this warning
> >    1307 |         unsigned long long i_size, old_size, new_size, zero_point;
> >         |                                                                  ^
> >         |                                                                   = 0
> >   2 errors generated.
> 
> For some reason, make W=1 with gcc doesn't seem to generate uninitialised
> variable warnings (though maybe clang does?).  Is that specifically
> suppressed?
> 
> 	ifdef CONFIG_CC_IS_GCC
> 	KBUILD_CFLAGS += -Wno-maybe-uninitialized
> 	endif

Yeah, clang's -Wuninitialized and -Wsometimes-uninitialized are on by
default (not just at W=1) for the kernel, whereas GCC's
-Wmaybe-uninitialized has been under W=2 since 78a5255ffb6a ("Stop the
ad-hoc games with -Wno-maybe-initialized") back in 5.7.

I consider this an unfortunate difference between GCC and clang with
regards to -Wuninitialized. If there is any control flow that would
avoid the block that uses the variable uninitialized, GCC "downgrades"
it to -Wmaybe-uninitialized, whereas clang keeps it as -Wuninitialized
with a note of "when used here" to make it clear that the variable will
be used uninitialized if the block is reached:

  https://godbolt.org/z/6eb5zK76T

> I guess.  Can we remove that?

It would be nice for my sanity if it could be but then we are back into
the same situation of false positives, as GCC's warnings are influenced
by optimizations, whereas clang's warnings happen purely in the frontend
before optimizations happen. clang's versions do not flag as many
instances of potentially uninitialized variables (as it cannot do
interprocedural analysis to see across function boundaries) but that
results in much fewer false positives in my experience.

> > There were no -next updates last week, so it seems like the majority of
> > this pull request saw zero -next testing time. I see two kbuild test
> > robot build reports but I guess they were ignored.
> > 
> >   https://lore.kernel.org/202605031459.eX5UbO3K-lkp@intel.com/
> >   https://lore.kernel.org/202605021450.ca5QGqLH-lkp@intel.com/
> 
> Gmail labelled them as spam :-(

Bummer :/

> I think this should be fixed as below, but Steve needs to look it over.

Thanks, I will give it a build test but it seems obvious that it will
fix it.

-- 
Cheers,
Nathan

      reply	other threads:[~2026-05-18 21:32 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20260518-vfs-7.1-rc5.fixes-3eded3a501f4@brauner>
2026-05-18 19:46 ` [GIT PULL for v7.1] vfs fixes Nathan Chancellor
2026-05-18 21:05   ` David Howells
2026-05-18 21:32     ` Nathan Chancellor [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260518213254.GB3979157@ax162 \
    --to=nathan@kernel.org \
    --cc=brauner@kernel.org \
    --cc=dhowells@redhat.com \
    --cc=linux-cifs@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pc@manguebit.org \
    --cc=sfrench@samba.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox