Re: [PATCH] debugfs: remove unused variable
On Wed, Sep 21, 2016 at 10:50:38AM +0200, Nicolai Stange wrote: > Greg Kroah-Hartman writes: > > > On Tue, Sep 20, 2016 at 05:17:15PM +0100, Eric Engestrom wrote: > >> Signed-off-by: Eric Engestrom > >> --- > >> fs/debugfs/file.c | 3 +-- > >> 1 file changed, 1 insertion(+), 2 deletions(-) > >> > >> diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c > >> index 592059f..04eca0b 100644 > >> --- a/fs/debugfs/file.c > >> +++ b/fs/debugfs/file.c > >> @@ -195,7 +195,6 @@ static int full_proxy_release(struct inode *inode, > >> struct file *filp) > >>const struct dentry *dentry = F_DENTRY(filp); > >>const struct file_operations *real_fops = REAL_FOPS_DEREF(dentry); > >>const struct file_operations *proxy_fops = filp->f_op; > >> - int r = 0; > >> > >>/* > >> * We must not protect this against removal races here: the > >> @@ -204,7 +203,7 @@ static int full_proxy_release(struct inode *inode, > >> struct file *filp) > >> * ->i_private is still being meaningful here. > >> */ > >>if (real_fops->release) > >> - r = real_fops->release(inode, filp); > >> + real_fops->release(inode, filp); > > > > Hm, shouldn't we be propagating the result back up the call chain? > > AFAICS, the VFS layer doesn't ever evaluate the return value of > ->release(), c.f. __fput() in fs/file_table.c . > > OTOH, propagating that value back to caller also wouldn't hurt. But this > would be a matter of taste/coding style. I actually sent an updated fix [1] about an hour ago, which propagates the result instead (which is better IMO, I don't know why I didn't do that the first time around). [1] http://marc.info/?m=147444718118891 (lkml.org is down?) > > I can't remember whether I left this unused int r there on purpose. I > doubt not. Eric, did you run your patch through sparse and Coccinelle? I didn't; how do I do that? I know these tools, but not how to use them in this context. Cheers, Eric > > If so, > > Reviewed-by: Nicolai Stange > > for the diff. (This patch lacks a description though.) > > > Thanks, > > Nicolai
Re: [PATCH] debugfs: remove unused variable
Greg Kroah-Hartman writes: > On Tue, Sep 20, 2016 at 05:17:15PM +0100, Eric Engestrom wrote: >> Signed-off-by: Eric Engestrom >> --- >> fs/debugfs/file.c | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c >> index 592059f..04eca0b 100644 >> --- a/fs/debugfs/file.c >> +++ b/fs/debugfs/file.c >> @@ -195,7 +195,6 @@ static int full_proxy_release(struct inode *inode, >> struct file *filp) >> const struct dentry *dentry = F_DENTRY(filp); >> const struct file_operations *real_fops = REAL_FOPS_DEREF(dentry); >> const struct file_operations *proxy_fops = filp->f_op; >> -int r = 0; >> >> /* >> * We must not protect this against removal races here: the >> @@ -204,7 +203,7 @@ static int full_proxy_release(struct inode *inode, >> struct file *filp) >> * ->i_private is still being meaningful here. >> */ >> if (real_fops->release) >> -r = real_fops->release(inode, filp); >> +real_fops->release(inode, filp); > > Hm, shouldn't we be propagating the result back up the call chain? AFAICS, the VFS layer doesn't ever evaluate the return value of ->release(), c.f. __fput() in fs/file_table.c . OTOH, propagating that value back to caller also wouldn't hurt. But this would be a matter of taste/coding style. I can't remember whether I left this unused int r there on purpose. I doubt not. Eric, did you run your patch through sparse and Coccinelle? If so, Reviewed-by: Nicolai Stange for the diff. (This patch lacks a description though.) Thanks, Nicolai
Re: [PATCH] debugfs: remove unused variable
On Wed, Sep 21, 2016 at 10:01:11AM +0200, Greg Kroah-Hartman wrote: > On Tue, Sep 20, 2016 at 05:17:15PM +0100, Eric Engestrom wrote: > > Signed-off-by: Eric Engestrom > > --- > > fs/debugfs/file.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c > > index 592059f..04eca0b 100644 > > --- a/fs/debugfs/file.c > > +++ b/fs/debugfs/file.c > > @@ -195,7 +195,6 @@ static int full_proxy_release(struct inode *inode, > > struct file *filp) > > const struct dentry *dentry = F_DENTRY(filp); > > const struct file_operations *real_fops = REAL_FOPS_DEREF(dentry); > > const struct file_operations *proxy_fops = filp->f_op; > > - int r = 0; > > > > /* > > * We must not protect this against removal races here: the > > @@ -204,7 +203,7 @@ static int full_proxy_release(struct inode *inode, > > struct file *filp) > > * ->i_private is still being meaningful here. > > */ > > if (real_fops->release) > > - r = real_fops->release(inode, filp); > > + real_fops->release(inode, filp); > > Hm, shouldn't we be propagating the result back up the call chain? You're right, sorry, I wasn't thinking. Correct fix incoming :) Cheers, Eric > > thanks, > > greg k-h
Re: [PATCH] debugfs: remove unused variable
On Tue, Sep 20, 2016 at 05:17:15PM +0100, Eric Engestrom wrote: > Signed-off-by: Eric Engestrom > --- > fs/debugfs/file.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c > index 592059f..04eca0b 100644 > --- a/fs/debugfs/file.c > +++ b/fs/debugfs/file.c > @@ -195,7 +195,6 @@ static int full_proxy_release(struct inode *inode, struct > file *filp) > const struct dentry *dentry = F_DENTRY(filp); > const struct file_operations *real_fops = REAL_FOPS_DEREF(dentry); > const struct file_operations *proxy_fops = filp->f_op; > - int r = 0; > > /* >* We must not protect this against removal races here: the > @@ -204,7 +203,7 @@ static int full_proxy_release(struct inode *inode, struct > file *filp) >* ->i_private is still being meaningful here. >*/ > if (real_fops->release) > - r = real_fops->release(inode, filp); > + real_fops->release(inode, filp); Hm, shouldn't we be propagating the result back up the call chain? thanks, greg k-h