[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aTpzbSVFCSgx7HJp@raspberrypi>
Date: Thu, 11 Dec 2025 08:31:57 +0100
From: Pycode <pycode42@...il.com>
To: Kuan-Wei Chiu <visitorckw@...il.com>
Cc: Jeff Layton <jlayton@...nel.org>, Trond Myklebust <trondmy@...nel.org>,
Anna Schumaker <anna@...nel.org>, linux-nfs@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] Removed unused variable
On Thu, Dec 11, 2025 at 02:54:03PM +0800, Kuan-Wei Chiu wrote:
> On Thu, Dec 11, 2025 at 06:57:54AM +0100, Pycode wrote:
> > On Thu, Dec 11, 2025 at 08:10:25AM +0900, Jeff Layton wrote:
> > > A more descriptive title is preferred: "Remove unused variable from
> > > nfs4_ff_alloc_deviceid_node()"
> > >
> >
> > Thanks for the advices!
> >
> > > On Wed, 2025-12-10 at 21:59 +0100, Pycode wrote:
> > > > Signed-off-by: Pycode <pycode42@...il.com>
> > > >
> > > > Removed the unused variable ret in
> > > > fs/nfs/flexfilelayout/flexfilelayoutdev.c
> > > >
> > > > (Disclaimer this is my first patch, be sorry if I have done anything
> > > > wrong!)
> > > > ---
> > > > fs/nfs/flexfilelayout/flexfilelayoutdev.c | 4 +---
> > > > 1 file changed, 1 insertion(+), 3 deletions(-)
> > > >
> > > > diff --git a/fs/nfs/flexfilelayout/flexfilelayoutdev.c b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
> > > > index c55ea8fa3bfa..9cd04e85d52f 100644
> > > > --- a/fs/nfs/flexfilelayout/flexfilelayoutdev.c
> > > > +++ b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
> > > > @@ -53,7 +53,7 @@ nfs4_ff_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,
> > > > u32 mp_count;
> > > > u32 version_count;
> > > > __be32 *p;
> > > > - int i, ret = -ENOMEM;
> > > > + int i = -ENOMEM;
> > > >
> > >
> > > No need to initialize this.
> > >
> > > > /* set up xdr stream */
> > > > scratch = folio_alloc(gfp_flags, 0);
> > > > @@ -88,7 +88,6 @@ nfs4_ff_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,
> > > > if (list_empty(&dsaddrs)) {
> > > > dprintk("%s: no suitable DS addresses found\n",
> > > > __func__);
> > > > - ret = -ENOMEDIUM;
> > > > goto out_err_drain_dsaddrs;
> > > > }
> > > >
> > > > @@ -134,7 +133,6 @@ nfs4_ff_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,
> > > > dprintk("%s: [%d] unsupported ds version %d-%d\n", __func__,
> > > > i, ds_versions[i].version,
> > > > ds_versions[i].minor_version);
> > > > - ret = -EPROTONOSUPPORT;
> > > > goto out_err_drain_dsaddrs;
> > > > }
> > > >
> > >
> > > What about the dprintk() at the bottom of this function? Does this
> > > actually build?
> >
> > There is no dprintk() at the bottom that used the variable.
>
> At the bottom of this function, there is a dprintk call that refers to ret:
>
> dprintk("%s ERROR: returning %d\n", __func__, ret);
> return NULL;
>
> This causes the build to fail:
>
> In file included from ./include/asm-generic/bug.h:31,
> from ./arch/x86/include/asm/bug.h:193,
> from ./arch/x86/include/asm/alternative.h:9,
> from ./arch/x86/include/asm/barrier.h:5,
> from ./include/asm-generic/bitops/generic-non-atomic.h:7,
> from ./include/linux/bitops.h:28,
> from ./include/linux/kernel.h:23,
> from ./include/linux/uio.h:8,
> from ./include/linux/socket.h:8,
> from ./include/uapi/linux/in.h:25,
> from ./include/linux/in.h:19,
> from ./include/linux/nfs_fs.h:22,
> from fs/nfs/flexfilelayout/flexfilelayoutdev.c:10:
> fs/nfs/flexfilelayout/flexfilelayoutdev.c: In function ‘nfs4_ff_alloc_deviceid_node’:
> fs/nfs/flexfilelayout/flexfilelayoutdev.c:182:55: error: ‘ret’ undeclared (first use in this function); did you mean ‘net’?
> 182 | dprintk("%s ERROR: returning %d\n", __func__, ret);
> | ^~~
> ./include/linux/printk.h:484:33: note: in definition of macro ‘printk_index_wrap’
> 484 | _p_func(_fmt, ##__VA_ARGS__); \
> | ^~~~~~~~~~~
> ./include/linux/sunrpc/debug.h:36:41: note: in expansion of macro ‘printk’
> 36 | # define __sunrpc_printk(fmt, ...) printk(KERN_DEFAULT fmt, ##__VA_ARGS__)
> | ^~~~~~
> ./include/linux/sunrpc/debug.h:42:17: note: in expansion of macro ‘__sunrpc_printk’
> 42 | __sunrpc_printk(fmt, ##__VA_ARGS__); \
> | ^~~~~~~~~~~~~~~
> ./include/linux/sunrpc/debug.h:25:9: note: in expansion of macro ‘dfprintk’
> 25 | dfprintk(FACILITY, fmt, ##__VA_ARGS__)
> | ^~~~~~~~
> fs/nfs/flexfilelayout/flexfilelayoutdev.c:182:9: note: in expansion of macro ‘dprintk’
> 182 | dprintk("%s ERROR: returning %d\n", __func__, ret);
> | ^~~~~~~
> fs/nfs/flexfilelayout/flexfilelayoutdev.c:182:55: note: each undeclared identifier is reported only once for each function it appears in
> 182 | dprintk("%s ERROR: returning %d\n", __func__, ret);
> | ^~~
> ./include/linux/printk.h:484:33: note: in definition of macro ‘printk_index_wrap’
> 484 | _p_func(_fmt, ##__VA_ARGS__); \
> | ^~~~~~~~~~~
> ./include/linux/sunrpc/debug.h:36:41: note: in expansion of macro ‘printk’
> 36 | # define __sunrpc_printk(fmt, ...) printk(KERN_DEFAULT fmt, ##__VA_ARGS__)
> | ^~~~~~
> ./include/linux/sunrpc/debug.h:42:17: note: in expansion of macro ‘__sunrpc_printk’
> 42 | __sunrpc_printk(fmt, ##__VA_ARGS__); \
> | ^~~~~~~~~~~~~~~
> ./include/linux/sunrpc/debug.h:25:9: note: in expansion of macro ‘dfprintk’
> 25 | dfprintk(FACILITY, fmt, ##__VA_ARGS__)
> | ^~~~~~~~
> fs/nfs/flexfilelayout/flexfilelayoutdev.c:182:9: note: in expansion of macro ‘dprintk’
> 182 | dprintk("%s ERROR: returning %d\n", __func__, ret);
> | ^~~~~~~
> make[5]: *** [scripts/Makefile.build:287: fs/nfs/flexfilelayout/flexfilelayoutdev.o] Error 1
> make[4]: *** [scripts/Makefile.build:556: fs/nfs/flexfilelayout] Error 2
> make[3]: *** [scripts/Makefile.build:556: fs/nfs] Error 2
> make[2]: *** [scripts/Makefile.build:556: fs] Error 2
Sorry, I didn't see that there were more returns because of the jumps. For some reason, it compiled without any problems for me.
Powered by blists - more mailing lists