Message ID | 20250228082622.2638686-2-sunjunchao2870@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | *** Code cleanup *** | expand |
Hi Julian,
kernel test robot noticed the following build warnings:
[auto build test WARNING on xfs-linux/for-next]
[also build test WARNING on linus/master v6.14-rc4 next-20250228]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Julian-Sun/xfs-remove-unnecessary-checks-for-__GFP_NOFAIL-allocation/20250228-162815
base: https://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git for-next
patch link: https://lore.kernel.org/r/20250228082622.2638686-2-sunjunchao2870%40gmail.com
patch subject: [PATCH 1/2] xfs: remove unnecessary checks for __GFP_NOFAIL allocation.
config: i386-buildonly-randconfig-001-20250301 (https://download.01.org/0day-ci/archive/20250301/202503011738.qvNVWziu-lkp@intel.com/config)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250301/202503011738.qvNVWziu-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503011738.qvNVWziu-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> fs/xfs/xfs_mru_cache.c:359:1: warning: unused label 'exit' [-Wunused-label]
359 | exit:
| ^~~~~
1 warning generated.
vim +/exit +359 fs/xfs/xfs_mru_cache.c
2a82b8be8a8dac David Chinner 2007-07-11 307
2a82b8be8a8dac David Chinner 2007-07-11 308 /*
2a82b8be8a8dac David Chinner 2007-07-11 309 * To initialise a struct xfs_mru_cache pointer, call xfs_mru_cache_create()
2a82b8be8a8dac David Chinner 2007-07-11 310 * with the address of the pointer, a lifetime value in milliseconds, a group
2a82b8be8a8dac David Chinner 2007-07-11 311 * count and a free function to use when deleting elements. This function
2a82b8be8a8dac David Chinner 2007-07-11 312 * returns 0 if the initialisation was successful.
2a82b8be8a8dac David Chinner 2007-07-11 313 */
2a82b8be8a8dac David Chinner 2007-07-11 314 int
2a82b8be8a8dac David Chinner 2007-07-11 315 xfs_mru_cache_create(
22328d712dd7fd Christoph Hellwig 2014-04-23 316 struct xfs_mru_cache **mrup,
7fcd3efa1e9ebe Christoph Hellwig 2018-04-09 317 void *data,
2a82b8be8a8dac David Chinner 2007-07-11 318 unsigned int lifetime_ms,
2a82b8be8a8dac David Chinner 2007-07-11 319 unsigned int grp_count,
2a82b8be8a8dac David Chinner 2007-07-11 320 xfs_mru_cache_free_func_t free_func)
2a82b8be8a8dac David Chinner 2007-07-11 321 {
22328d712dd7fd Christoph Hellwig 2014-04-23 322 struct xfs_mru_cache *mru = NULL;
2a82b8be8a8dac David Chinner 2007-07-11 323 int err = 0, grp;
2a82b8be8a8dac David Chinner 2007-07-11 324 unsigned int grp_time;
2a82b8be8a8dac David Chinner 2007-07-11 325
2a82b8be8a8dac David Chinner 2007-07-11 326 if (mrup)
2a82b8be8a8dac David Chinner 2007-07-11 327 *mrup = NULL;
2a82b8be8a8dac David Chinner 2007-07-11 328
2a82b8be8a8dac David Chinner 2007-07-11 329 if (!mrup || !grp_count || !lifetime_ms || !free_func)
2451337dd04390 Dave Chinner 2014-06-25 330 return -EINVAL;
2a82b8be8a8dac David Chinner 2007-07-11 331
2a82b8be8a8dac David Chinner 2007-07-11 332 if (!(grp_time = msecs_to_jiffies(lifetime_ms) / grp_count))
2451337dd04390 Dave Chinner 2014-06-25 333 return -EINVAL;
2a82b8be8a8dac David Chinner 2007-07-11 334
10634530f7ba94 Dave Chinner 2024-01-16 335 mru = kzalloc(sizeof(*mru), GFP_KERNEL | __GFP_NOFAIL);
2a82b8be8a8dac David Chinner 2007-07-11 336
2a82b8be8a8dac David Chinner 2007-07-11 337 /* An extra list is needed to avoid reaping up to a grp_time early. */
2a82b8be8a8dac David Chinner 2007-07-11 338 mru->grp_count = grp_count + 1;
10634530f7ba94 Dave Chinner 2024-01-16 339 mru->lists = kzalloc(mru->grp_count * sizeof(*mru->lists),
10634530f7ba94 Dave Chinner 2024-01-16 340 GFP_KERNEL | __GFP_NOFAIL);
2a82b8be8a8dac David Chinner 2007-07-11 341
2a82b8be8a8dac David Chinner 2007-07-11 342 for (grp = 0; grp < mru->grp_count; grp++)
2a82b8be8a8dac David Chinner 2007-07-11 343 INIT_LIST_HEAD(mru->lists + grp);
2a82b8be8a8dac David Chinner 2007-07-11 344
2a82b8be8a8dac David Chinner 2007-07-11 345 /*
2a82b8be8a8dac David Chinner 2007-07-11 346 * We use GFP_KERNEL radix tree preload and do inserts under a
2a82b8be8a8dac David Chinner 2007-07-11 347 * spinlock so GFP_ATOMIC is appropriate for the radix tree itself.
2a82b8be8a8dac David Chinner 2007-07-11 348 */
2a82b8be8a8dac David Chinner 2007-07-11 349 INIT_RADIX_TREE(&mru->store, GFP_ATOMIC);
2a82b8be8a8dac David Chinner 2007-07-11 350 INIT_LIST_HEAD(&mru->reap_list);
007c61c68640ea Eric Sandeen 2007-10-11 351 spin_lock_init(&mru->lock);
2a82b8be8a8dac David Chinner 2007-07-11 352 INIT_DELAYED_WORK(&mru->work, _xfs_mru_cache_reap);
2a82b8be8a8dac David Chinner 2007-07-11 353
2a82b8be8a8dac David Chinner 2007-07-11 354 mru->grp_time = grp_time;
2a82b8be8a8dac David Chinner 2007-07-11 355 mru->free_func = free_func;
7fcd3efa1e9ebe Christoph Hellwig 2018-04-09 356 mru->data = data;
2a82b8be8a8dac David Chinner 2007-07-11 357 *mrup = mru;
2a82b8be8a8dac David Chinner 2007-07-11 358
2a82b8be8a8dac David Chinner 2007-07-11 @359 exit:
2a82b8be8a8dac David Chinner 2007-07-11 360 if (err && mru && mru->lists)
d4c75a1b40cd03 Dave Chinner 2024-01-16 361 kfree(mru->lists);
2a82b8be8a8dac David Chinner 2007-07-11 362 if (err && mru)
d4c75a1b40cd03 Dave Chinner 2024-01-16 363 kfree(mru);
2a82b8be8a8dac David Chinner 2007-07-11 364
2a82b8be8a8dac David Chinner 2007-07-11 365 return err;
2a82b8be8a8dac David Chinner 2007-07-11 366 }
2a82b8be8a8dac David Chinner 2007-07-11 367
diff --git a/fs/xfs/libxfs/xfs_da_btree.c b/fs/xfs/libxfs/xfs_da_btree.c index 17d9e6154f19..d4c6ad6be5e1 100644 --- a/fs/xfs/libxfs/xfs_da_btree.c +++ b/fs/xfs/libxfs/xfs_da_btree.c @@ -2718,10 +2718,6 @@ xfs_dabuf_map( if (nirecs > 1) { map = kzalloc(nirecs * sizeof(struct xfs_buf_map), GFP_KERNEL | __GFP_NOLOCKDEP | __GFP_NOFAIL); - if (!map) { - error = -ENOMEM; - goto out_free_irecs; - } *mapp = map; } diff --git a/fs/xfs/libxfs/xfs_dir2.c b/fs/xfs/libxfs/xfs_dir2.c index 1775abcfa04d..7d837510dc3b 100644 --- a/fs/xfs/libxfs/xfs_dir2.c +++ b/fs/xfs/libxfs/xfs_dir2.c @@ -249,8 +249,6 @@ xfs_dir_init( return error; args = kzalloc(sizeof(*args), GFP_KERNEL | __GFP_NOFAIL); - if (!args) - return -ENOMEM; args->geo = dp->i_mount->m_dir_geo; args->dp = dp; @@ -342,8 +340,6 @@ xfs_dir_createname( } args = kzalloc(sizeof(*args), GFP_KERNEL | __GFP_NOFAIL); - if (!args) - return -ENOMEM; args->geo = dp->i_mount->m_dir_geo; args->name = name->name; @@ -504,8 +500,6 @@ xfs_dir_removename( XFS_STATS_INC(dp->i_mount, xs_dir_remove); args = kzalloc(sizeof(*args), GFP_KERNEL | __GFP_NOFAIL); - if (!args) - return -ENOMEM; args->geo = dp->i_mount->m_dir_geo; args->name = name->name; @@ -564,8 +558,6 @@ xfs_dir_replace( return rval; args = kzalloc(sizeof(*args), GFP_KERNEL | __GFP_NOFAIL); - if (!args) - return -ENOMEM; args->geo = dp->i_mount->m_dir_geo; args->name = name->name; diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c index 15bb790359f8..4b53dde32689 100644 --- a/fs/xfs/xfs_buf.c +++ b/fs/xfs/xfs_buf.c @@ -182,8 +182,6 @@ xfs_buf_get_maps( bp->b_maps = kzalloc(map_count * sizeof(struct xfs_buf_map), GFP_KERNEL | __GFP_NOLOCKDEP | __GFP_NOFAIL); - if (!bp->b_maps) - return -ENOMEM; return 0; } @@ -326,8 +324,6 @@ xfs_buf_alloc_kmem( gfp_mask |= __GFP_ZERO; bp->b_addr = kmalloc(size, gfp_mask); - if (!bp->b_addr) - return -ENOMEM; if (((unsigned long)(bp->b_addr + size - 1) & PAGE_MASK) != ((unsigned long)bp->b_addr & PAGE_MASK)) { diff --git a/fs/xfs/xfs_mru_cache.c b/fs/xfs/xfs_mru_cache.c index d0f5b403bdbe..0d08d6b5e5be 100644 --- a/fs/xfs/xfs_mru_cache.c +++ b/fs/xfs/xfs_mru_cache.c @@ -333,17 +333,11 @@ xfs_mru_cache_create( return -EINVAL; mru = kzalloc(sizeof(*mru), GFP_KERNEL | __GFP_NOFAIL); - if (!mru) - return -ENOMEM; /* An extra list is needed to avoid reaping up to a grp_time early. */ mru->grp_count = grp_count + 1; mru->lists = kzalloc(mru->grp_count * sizeof(*mru->lists), GFP_KERNEL | __GFP_NOFAIL); - if (!mru->lists) { - err = -ENOMEM; - goto exit; - } for (grp = 0; grp < mru->grp_count; grp++) INIT_LIST_HEAD(mru->lists + grp); diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c index 0055066fb1d9..59a600d8de7c 100644 --- a/fs/xfs/xfs_super.c +++ b/fs/xfs/xfs_super.c @@ -2075,8 +2075,6 @@ xfs_init_fs_context( int i; mp = kzalloc(sizeof(struct xfs_mount), GFP_KERNEL | __GFP_NOFAIL); - if (!mp) - return -ENOMEM; spin_lock_init(&mp->m_sb_lock); for (i = 0; i < XG_TYPE_MAX; i++)
The __GFP_NOFAIL flag ensures that allocation will not fail. So remove the unnecessary checks. Signed-off-by: Julian Sun <sunjunchao2870@gmail.com> --- fs/xfs/libxfs/xfs_da_btree.c | 4 ---- fs/xfs/libxfs/xfs_dir2.c | 8 -------- fs/xfs/xfs_buf.c | 4 ---- fs/xfs/xfs_mru_cache.c | 6 ------ fs/xfs/xfs_super.c | 2 -- 5 files changed, 24 deletions(-)