mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 11:03:14 +00:00 
			
		
		
		
	 498e5f2415
			
		
	
	
		498e5f2415
		
	
	
	
	
		
			
			Convert the unsigned longs that are most responsible for bloating the stack usage on 64-bit systems. Nearly all places in the ext3/4 code which uses "unsigned long" is probably a bug, since on 32-bit systems a ulong a 32-bits, which means we are wasting stack space on 64-bit systems. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
		
			
				
	
	
		
			32 lines
		
	
	
		
			672 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			672 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  *  linux/fs/ext4/bitmap.c
 | |
|  *
 | |
|  * Copyright (C) 1992, 1993, 1994, 1995
 | |
|  * Remy Card (card@masi.ibp.fr)
 | |
|  * Laboratoire MASI - Institut Blaise Pascal
 | |
|  * Universite Pierre et Marie Curie (Paris VI)
 | |
|  */
 | |
| 
 | |
| #include <linux/buffer_head.h>
 | |
| #include <linux/jbd2.h>
 | |
| #include "ext4.h"
 | |
| 
 | |
| #ifdef EXT4FS_DEBUG
 | |
| 
 | |
| static const int nibblemap[] = {4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0};
 | |
| 
 | |
| unsigned int ext4_count_free(struct buffer_head *map, unsigned int numchars)
 | |
| {
 | |
| 	unsigned int i, sum = 0;
 | |
| 
 | |
| 	if (!map)
 | |
| 		return 0;
 | |
| 	for (i = 0; i < numchars; i++)
 | |
| 		sum += nibblemap[map->b_data[i] & 0xf] +
 | |
| 			nibblemap[(map->b_data[i] >> 4) & 0xf];
 | |
| 	return sum;
 | |
| }
 | |
| 
 | |
| #endif  /*  EXT4FS_DEBUG  */
 | |
| 
 |