Re: [PATCH] nfs: removed goto statement

From: Benjamin Coddington
Date: Fri May 20 2022 - 07:04:12 EST


On 20 May 2022, at 4:50, Javier Abrego wrote:

In this function goto can be replaced. Avoiding goto will improve the
readability

Signed-off-by: Javier Abrego<javier.abrego.lorente@xxxxxxxxx>
---
fs/nfs/nfs42xattr.c | 28 +++++++++++++---------------
1 file changed, 13 insertions(+), 15 deletions(-)

diff --git a/fs/nfs/nfs42xattr.c b/fs/nfs/nfs42xattr.c
index e7b34f7e0..9bf3a88fd 100644
--- a/fs/nfs/nfs42xattr.c
+++ b/fs/nfs/nfs42xattr.c
@@ -747,21 +747,19 @@ void nfs4_xattr_cache_set_list(struct inode *inode, const char *buf,
return;

entry = nfs4_xattr_alloc_entry(NULL, buf, NULL, buflen);
- if (entry == NULL)
- goto out;
-
- /*
- * This is just there to be able to get to bucket->cache,
- * which is obviously the same for all buckets, so just
- * use bucket 0.
- */
- entry->bucket = &cache->buckets[0];
-
- if (!nfs4_xattr_set_listcache(cache, entry))
- kref_put(&entry->ref, nfs4_xattr_free_entry_cb);
-
-out:
- kref_put(&cache->ref, nfs4_xattr_free_cache_cb);
+ if (entry == NULL) {
+ kref_put(&cache->ref, nfs4_xattr_free_cache_cb);
+ } else {
+ /*
+ * This is just there to be able to get to bucket->cache,
+ * which is obviously the same for all buckets, so just
+ * use bucket 0.
+ */
+ entry->bucket = &cache->buckets[0];
+
+ if (!nfs4_xattr_set_listcache(cache, entry))
+ kref_put(&entry->ref, nfs4_xattr_free_entry_cb);
+ }
}

/*
--
2.25.1

No, NACK because you removed the kref_put of cache->ref. I find this
function quite readable as it is.

Ben