mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-21 23:57:36 -04:00
xfs: set xfarray killable sort correctly
LOLLM noticed that we *disable* interruptible sorts when the KILLABLE
flag is set. This is backwards. Fix the incorrect logic, and rename
the variable to make the connection more obvious.
Cc: stable@vger.kernel.org # v6.10
Fixes: 271557de7c ("xfs: reduce the rate of cond_resched calls inside scrub")
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Assisted-by: LOLLM # finding obvious bugs
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
This commit is contained in:
committed by
Carlos Maiolino
parent
ea6e2d9de2
commit
540ddc6262
@@ -11,7 +11,7 @@ struct xfs_scrub;
|
||||
struct xchk_relax {
|
||||
unsigned long next_resched;
|
||||
unsigned int resched_nr;
|
||||
bool interruptible;
|
||||
bool killable;
|
||||
};
|
||||
|
||||
/* Yield to the scheduler at most 10x per second. */
|
||||
@@ -21,7 +21,7 @@ struct xchk_relax {
|
||||
(struct xchk_relax){ \
|
||||
.next_resched = XCHK_RELAX_NEXT, \
|
||||
.resched_nr = 0, \
|
||||
.interruptible = true, \
|
||||
.killable = true, \
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -45,7 +45,7 @@ static inline int xchk_maybe_relax(struct xchk_relax *widget)
|
||||
widget->next_resched = XCHK_RELAX_NEXT;
|
||||
}
|
||||
|
||||
if (widget->interruptible && fatal_signal_pending(current))
|
||||
if (widget->killable && fatal_signal_pending(current))
|
||||
return -EINTR;
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -487,8 +487,7 @@ xfarray_sortinfo_alloc(
|
||||
xfarray_sortinfo_lo(si)[0] = 0;
|
||||
xfarray_sortinfo_hi(si)[0] = array->nr - 1;
|
||||
si->relax = INIT_XCHK_RELAX;
|
||||
if (flags & XFARRAY_SORT_KILLABLE)
|
||||
si->relax.interruptible = false;
|
||||
si->relax.killable = !!(flags & XFARRAY_SORT_KILLABLE);
|
||||
|
||||
trace_xfarray_sort(si, nr_bytes);
|
||||
*infop = si;
|
||||
|
||||
Reference in New Issue
Block a user