[PATCH][next][V2] xattr: remove redundant check on variable err

Colin Ian King posted 1 patch 3 weeks, 4 days ago
fs/xattr.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
[PATCH][next][V2] xattr: remove redundant check on variable err
Posted by Colin Ian King 3 weeks, 4 days ago
Curretly in function generic_listxattr the for_each_xattr_handler loop
checks err and will return out of the function if err is non-zero.
It's impossible for err to be non-zero at the end of the function where
err is checked again for a non-zero value. The final non-zero check is
therefore redundant and can be removed. Also move the declaration of
err into the loop.

Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
---
V2: Move declaration of err into the loop as per Al Viro's suggestion
---
 fs/xattr.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/fs/xattr.c b/fs/xattr.c
index 05ec7e7d9e87..fd4e3ab8034d 100644
--- a/fs/xattr.c
+++ b/fs/xattr.c
@@ -1005,9 +1005,10 @@ generic_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size)
 {
 	const struct xattr_handler *handler, * const *handlers = dentry->d_sb->s_xattr;
 	ssize_t remaining_size = buffer_size;
-	int err = 0;
 
 	for_each_xattr_handler(handlers, handler) {
+		int err;
+
 		if (!handler->name || (handler->list && !handler->list(dentry)))
 			continue;
 		err = xattr_list_one(&buffer, &remaining_size, handler->name);
@@ -1015,7 +1016,7 @@ generic_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size)
 			return err;
 	}
 
-	return err ? err : buffer_size - remaining_size;
+	return buffer_size - remaining_size;
 }
 EXPORT_SYMBOL(generic_listxattr);
 
-- 
2.39.5
Re: [PATCH][next][V2] xattr: remove redundant check on variable err
Posted by Al Viro 3 weeks, 3 days ago
On Wed, Oct 30, 2024 at 06:25:47PM +0000, Colin Ian King wrote:
> Curretly in function generic_listxattr the for_each_xattr_handler loop
> checks err and will return out of the function if err is non-zero.
> It's impossible for err to be non-zero at the end of the function where
> err is checked again for a non-zero value. The final non-zero check is
> therefore redundant and can be removed. Also move the declaration of
> err into the loop.
> 
> Signed-off-by: Colin Ian King <colin.i.king@gmail.com>

Applied (viro/vfs.git #work.xattr2)