ext4: check return value of blkdev_issue_flush()
blkdev_issue_flush() can fail; make sure the error gets properly
propagated.
    
This is a port of the equivalent ext3 patch from commit 44f4f729e7.
    
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
			
			
This commit is contained in:
		
							parent
							
								
									316e4cfd0b
								
							
						
					
					
						commit
						a4a39040e9
					
				| @ -203,7 +203,7 @@ int ext4_sync_file(struct file *file, loff_t start, loff_t end, int datasync) | ||||
| 	struct inode *inode = file->f_mapping->host; | ||||
| 	struct ext4_inode_info *ei = EXT4_I(inode); | ||||
| 	journal_t *journal = EXT4_SB(inode->i_sb)->s_journal; | ||||
| 	int ret; | ||||
| 	int ret, err; | ||||
| 	tid_t commit_tid; | ||||
| 	bool needs_barrier = false; | ||||
| 
 | ||||
| @ -255,8 +255,11 @@ int ext4_sync_file(struct file *file, loff_t start, loff_t end, int datasync) | ||||
| 		needs_barrier = true; | ||||
| 	jbd2_log_start_commit(journal, commit_tid); | ||||
| 	ret = jbd2_log_wait_commit(journal, commit_tid); | ||||
| 	if (needs_barrier) | ||||
| 		blkdev_issue_flush(inode->i_sb->s_bdev, GFP_KERNEL, NULL); | ||||
| 	if (needs_barrier) { | ||||
| 		err = blkdev_issue_flush(inode->i_sb->s_bdev, GFP_KERNEL, NULL); | ||||
| 		if (!ret) | ||||
| 			ret = err; | ||||
| 	} | ||||
|  out: | ||||
| 	mutex_unlock(&inode->i_mutex); | ||||
| 	trace_ext4_sync_file_exit(inode, ret); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user