fs/buffer.c: add device information for error output in __find_get_block_slow()
On the ext4 mailing list[1], we got some report about errors in __find_get_block_slow(), but the information is very limited. If the device information is given, we can know the name of the sick volume. Futhermore, we can get the corresponding status of that block(group, inode block etc) by analyzing the disk layout. [1] http://marc.info/?l=linux-ext4&m=131379831421147&w=2 Signed-off-by: Tao Ma <boyu.mt@taobao.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Theodore Ts'o <tytso@mit.edu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									584cff54e1
								
							
						
					
					
						commit
						72a2ebd8bc
					
				| @ -213,13 +213,16 @@ __find_get_block_slow(struct block_device *bdev, sector_t block) | ||||
| 	 * elsewhere, don't buffer_error if we had some unmapped buffers | ||||
| 	 */ | ||||
| 	if (all_mapped) { | ||||
| 		char b[BDEVNAME_SIZE]; | ||||
| 
 | ||||
| 		printk("__find_get_block_slow() failed. " | ||||
| 			"block=%llu, b_blocknr=%llu\n", | ||||
| 			(unsigned long long)block, | ||||
| 			(unsigned long long)bh->b_blocknr); | ||||
| 		printk("b_state=0x%08lx, b_size=%zu\n", | ||||
| 			bh->b_state, bh->b_size); | ||||
| 		printk("device blocksize: %d\n", 1 << bd_inode->i_blkbits); | ||||
| 		printk("device %s blocksize: %d\n", bdevname(bdev, b), | ||||
| 			1 << bd_inode->i_blkbits); | ||||
| 	} | ||||
| out_unlock: | ||||
| 	spin_unlock(&bd_mapping->private_lock); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user