On Fri, Aug 02, 2024 at 03:18:02PM +0100, David Howells wrote: > Simon Horman <horms@xxxxxxxxxx> wrote: > > > If the code ever reaches this line, then slice will be used > > uninitialised below. > > It can't actually happen (or, at least, it shouldn't). There are only three > ways of obtaining data: downloading from the server > (NETFS_DOWNLOAD_FROM_SERVER), reading from the cache (NETFS_READ_FROM_CACHE) > and just clearing space (NETFS_FILL_WITH_ZEROES); each of those has its own > if-statement that will set 'slice' or will switch the source to a different > type that will set 'slice'. > > The problem is that the compiler doesn't know this. > > The check for NETFS_INVALID_READ is there just in case. Possibly: > > if (source == NETFS_INVALID_READ) > break; > > could be replaced with a WARN_ON_ONCE() and an unconditional break. Thanks, I think that should make the compiler happy without significantly altering the flow or readability of the code.