mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	f2fs: set SBI_NEED_FSCK for xattr corruption case
If xattr is corrupted, let's print kernel message and set SBI_NEED_FSCK for further repair. Reported-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Chao Yu <yuchao0@huawei.com> Acked-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
		
							parent
							
								
									10f966bbf5
								
							
						
					
					
						commit
						c83414aedf
					
				
					 1 changed files with 6 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -346,6 +346,9 @@ static int lookup_all_xattrs(struct inode *inode, struct page *ipage,
 | 
			
		|||
 | 
			
		||||
	*xe = __find_xattr(cur_addr, last_txattr_addr, index, len, name);
 | 
			
		||||
	if (!*xe) {
 | 
			
		||||
		f2fs_err(F2FS_I_SB(inode), "inode (%lu) has corrupted xattr",
 | 
			
		||||
								inode->i_ino);
 | 
			
		||||
		set_sbi_flag(F2FS_I_SB(inode), SBI_NEED_FSCK);
 | 
			
		||||
		err = -EFSCORRUPTED;
 | 
			
		||||
		goto out;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -622,6 +625,9 @@ static int __f2fs_setxattr(struct inode *inode, int index,
 | 
			
		|||
	/* find entry with wanted name. */
 | 
			
		||||
	here = __find_xattr(base_addr, last_base_addr, index, len, name);
 | 
			
		||||
	if (!here) {
 | 
			
		||||
		f2fs_err(F2FS_I_SB(inode), "inode (%lu) has corrupted xattr",
 | 
			
		||||
								inode->i_ino);
 | 
			
		||||
		set_sbi_flag(F2FS_I_SB(inode), SBI_NEED_FSCK);
 | 
			
		||||
		error = -EFSCORRUPTED;
 | 
			
		||||
		goto exit;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue