* [djwong-xfs:xfile-page-caching 155/205] fs/xfs/xfs_xchgrange.c:589:11-12: WARNING opportunity for max()
@ 2023-12-13 0:27 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2023-12-13 0:27 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Julia Lawall
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: "Darrick J. Wong" <darrick.wong@oracle.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git xfile-page-caching
head: ae5732f1c245c24e63c885992c35f723f36f79ff
commit: 6bcbdc56bcd1a52709a65aa1dd422f4fb9add400 [155/205] xfs: bind the xfs-specific extent swap code to the vfs-generic file exchange code
:::::: branch date: 6 days ago
:::::: commit date: 6 days ago
config: x86_64-randconfig-102-20231212 (https://download.01.org/0day-ci/archive/20231213/202312130827.g4o7KEHX-lkp@intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce: (https://download.01.org/0day-ci/archive/20231213/202312130827.g4o7KEHX-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>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202312130827.g4o7KEHX-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> fs/xfs/xfs_xchgrange.c:589:11-12: WARNING opportunity for max()
fs/xfs/xfs_xchgrange.c:590:11-12: WARNING opportunity for max()
vim +589 fs/xfs/xfs_xchgrange.c
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 551
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 552 /*
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 553 * Obtain a quota reservation to make sure we don't hit EDQUOT. We can skip
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 554 * this if quota enforcement is disabled or if both inodes' dquots are the
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 555 * same. The qretry structure must be initialized to zeroes before the first
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 556 * call to this function.
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 557 */
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 558 STATIC int
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 559 xfs_xchg_range_reserve_quota(
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 560 struct xfs_trans *tp,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 561 const struct xfs_swapext_req *req,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 562 unsigned int *qretry)
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 563 {
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 564 int64_t ddelta, rdelta;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 565 int ip1_error = 0;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 566 int error;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 567
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 568 /*
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 569 * Don't bother with a quota reservation if we're not enforcing them
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 570 * or the two inodes have the same dquots.
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 571 */
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 572 if (!XFS_IS_QUOTA_ON(tp->t_mountp) || req->ip1 == req->ip2 ||
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 573 (req->ip1->i_udquot == req->ip2->i_udquot &&
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 574 req->ip1->i_gdquot == req->ip2->i_gdquot &&
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 575 req->ip1->i_pdquot == req->ip2->i_pdquot))
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 576 return 0;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 577
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 578 *qretry = 0;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 579
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 580 /*
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 581 * For each file, compute the net gain in the number of regular blocks
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 582 * that will be mapped into that file and reserve that much quota. The
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 583 * quota counts must be able to absorb at least that much space.
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 584 */
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 585 ddelta = req->ip2_bcount - req->ip1_bcount;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 586 rdelta = req->ip2_rtbcount - req->ip1_rtbcount;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 587 if (ddelta > 0 || rdelta > 0) {
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 588 error = xfs_trans_reserve_quota_nblks(tp, req->ip1,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 @589 ddelta > 0 ? ddelta : 0,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 590 rdelta > 0 ? rdelta : 0,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 591 false);
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 592 if (error == -EDQUOT || error == -ENOSPC) {
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 593 /*
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 594 * Save this error and see what happens if we try to
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 595 * reserve quota for ip2. Then report both.
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 596 */
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 597 *qretry |= QRETRY_IP1;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 598 ip1_error = error;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 599 error = 0;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 600 }
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 601 if (error)
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 602 return error;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 603 }
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 604 if (ddelta < 0 || rdelta < 0) {
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 605 error = xfs_trans_reserve_quota_nblks(tp, req->ip2,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 606 ddelta < 0 ? -ddelta : 0,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 607 rdelta < 0 ? -rdelta : 0,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 608 false);
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 609 if (error == -EDQUOT || error == -ENOSPC)
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 610 *qretry |= QRETRY_IP2;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 611 if (error)
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 612 return error;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 613 }
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 614 if (ip1_error)
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 615 return ip1_error;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 616
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 617 /*
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 618 * For each file, forcibly reserve the gross gain in mapped blocks so
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 619 * that we don't trip over any quota block reservation assertions.
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 620 * We must reserve the gross gain because the quota code subtracts from
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 621 * bcount the number of blocks that we unmap; it does not add that
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 622 * quantity back to the quota block reservation.
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 623 */
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 624 error = xfs_trans_reserve_quota_nblks(tp, req->ip1, req->ip1_bcount,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 625 req->ip1_rtbcount, true);
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 626 if (error)
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 627 return error;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 628
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 629 return xfs_trans_reserve_quota_nblks(tp, req->ip2, req->ip2_bcount,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 630 req->ip2_rtbcount, true);
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 631 }
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 632
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread* [djwong-xfs:xfile-page-caching 155/205] fs/xfs/xfs_xchgrange.c:589:11-12: WARNING opportunity for max()
@ 2024-01-03 19:47 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2024-01-03 19:47 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Julia Lawall
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: "Darrick J. Wong" <darrick.wong@oracle.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git xfile-page-caching
head: b18189bccabcaf5598270916c6cd355f8486f30e
commit: 6bcbdc56bcd1a52709a65aa1dd422f4fb9add400 [155/205] xfs: bind the xfs-specific extent swap code to the vfs-generic file exchange code
:::::: branch date: 3 days ago
:::::: commit date: 4 weeks ago
config: x86_64-randconfig-102-20231212 (https://download.01.org/0day-ci/archive/20240104/202401040352.Nc2fJp6T-lkp@intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
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>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202401040352.Nc2fJp6T-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> fs/xfs/xfs_xchgrange.c:589:11-12: WARNING opportunity for max()
fs/xfs/xfs_xchgrange.c:590:11-12: WARNING opportunity for max()
vim +589 fs/xfs/xfs_xchgrange.c
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 551
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 552 /*
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 553 * Obtain a quota reservation to make sure we don't hit EDQUOT. We can skip
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 554 * this if quota enforcement is disabled or if both inodes' dquots are the
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 555 * same. The qretry structure must be initialized to zeroes before the first
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 556 * call to this function.
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 557 */
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 558 STATIC int
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 559 xfs_xchg_range_reserve_quota(
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 560 struct xfs_trans *tp,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 561 const struct xfs_swapext_req *req,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 562 unsigned int *qretry)
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 563 {
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 564 int64_t ddelta, rdelta;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 565 int ip1_error = 0;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 566 int error;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 567
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 568 /*
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 569 * Don't bother with a quota reservation if we're not enforcing them
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 570 * or the two inodes have the same dquots.
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 571 */
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 572 if (!XFS_IS_QUOTA_ON(tp->t_mountp) || req->ip1 == req->ip2 ||
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 573 (req->ip1->i_udquot == req->ip2->i_udquot &&
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 574 req->ip1->i_gdquot == req->ip2->i_gdquot &&
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 575 req->ip1->i_pdquot == req->ip2->i_pdquot))
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 576 return 0;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 577
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 578 *qretry = 0;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 579
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 580 /*
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 581 * For each file, compute the net gain in the number of regular blocks
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 582 * that will be mapped into that file and reserve that much quota. The
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 583 * quota counts must be able to absorb at least that much space.
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 584 */
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 585 ddelta = req->ip2_bcount - req->ip1_bcount;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 586 rdelta = req->ip2_rtbcount - req->ip1_rtbcount;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 587 if (ddelta > 0 || rdelta > 0) {
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 588 error = xfs_trans_reserve_quota_nblks(tp, req->ip1,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 @589 ddelta > 0 ? ddelta : 0,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 590 rdelta > 0 ? rdelta : 0,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 591 false);
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 592 if (error == -EDQUOT || error == -ENOSPC) {
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 593 /*
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 594 * Save this error and see what happens if we try to
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 595 * reserve quota for ip2. Then report both.
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 596 */
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 597 *qretry |= QRETRY_IP1;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 598 ip1_error = error;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 599 error = 0;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 600 }
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 601 if (error)
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 602 return error;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 603 }
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 604 if (ddelta < 0 || rdelta < 0) {
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 605 error = xfs_trans_reserve_quota_nblks(tp, req->ip2,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 606 ddelta < 0 ? -ddelta : 0,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 607 rdelta < 0 ? -rdelta : 0,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 608 false);
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 609 if (error == -EDQUOT || error == -ENOSPC)
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 610 *qretry |= QRETRY_IP2;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 611 if (error)
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 612 return error;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 613 }
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 614 if (ip1_error)
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 615 return ip1_error;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 616
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 617 /*
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 618 * For each file, forcibly reserve the gross gain in mapped blocks so
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 619 * that we don't trip over any quota block reservation assertions.
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 620 * We must reserve the gross gain because the quota code subtracts from
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 621 * bcount the number of blocks that we unmap; it does not add that
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 622 * quantity back to the quota block reservation.
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 623 */
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 624 error = xfs_trans_reserve_quota_nblks(tp, req->ip1, req->ip1_bcount,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 625 req->ip1_rtbcount, true);
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 626 if (error)
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 627 return error;
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 628
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 629 return xfs_trans_reserve_quota_nblks(tp, req->ip2, req->ip2_bcount,
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 630 req->ip2_rtbcount, true);
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 631 }
6bcbdc56bcd1a5 Darrick J. Wong 2023-03-06 632
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-01-03 19:48 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-13 0:27 [djwong-xfs:xfile-page-caching 155/205] fs/xfs/xfs_xchgrange.c:589:11-12: WARNING opportunity for max() kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2024-01-03 19:47 kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.