forked from mirrors/linux
		
	 e2a33a2a32
			
		
	
	
		e2a33a2a32
		
	
	
	
	
		
			
			bcachefs calls sort() during recovery to sort all keys it found in the journal, and this may be very large - gigabytes on large machines. This has been causing "task blocked" warnings, so needs a cond_resched(). [kent.overstreet@linux.dev: fix kerneldoc] Link: https://lkml.kernel.org/r/cgsr5a447pxqomc4gvznsp5yroqmif4omd7o5lsr2swifjhoic@yzjjrx2bvrq7 Link: https://lkml.kernel.org/r/20250326152606.2594920-1-kent.overstreet@linux.dev Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev> Cc: Kuan-Wei Chiu <visitorckw@gmail.com> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
		
			
				
	
	
		
			27 lines
		
	
	
	
		
			669 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
	
		
			669 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #ifndef _LINUX_SORT_H
 | |
| #define _LINUX_SORT_H
 | |
| 
 | |
| #include <linux/types.h>
 | |
| 
 | |
| void sort_r(void *base, size_t num, size_t size,
 | |
| 	    cmp_r_func_t cmp_func,
 | |
| 	    swap_r_func_t swap_func,
 | |
| 	    const void *priv);
 | |
| 
 | |
| void sort(void *base, size_t num, size_t size,
 | |
| 	  cmp_func_t cmp_func,
 | |
| 	  swap_func_t swap_func);
 | |
| 
 | |
| /* Versions that periodically call cond_resched(): */
 | |
| 
 | |
| void sort_r_nonatomic(void *base, size_t num, size_t size,
 | |
| 		      cmp_r_func_t cmp_func,
 | |
| 		      swap_r_func_t swap_func,
 | |
| 		      const void *priv);
 | |
| 
 | |
| void sort_nonatomic(void *base, size_t num, size_t size,
 | |
| 		    cmp_func_t cmp_func,
 | |
| 		    swap_func_t swap_func);
 | |
| 
 | |
| #endif
 |