Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ext3: Check return value of blkdev_issue_flush()

blkdev_issue_flush() can fail. Make sure the error gets properly propagated.

Signed-off-by: Jan Kara <jack@suse.cz>

Jan Kara 44f4f729 349ecd6a

+7 -2
+7 -2
fs/ext3/fsync.c
··· 92 92 * disk caches manually so that data really is on persistent 93 93 * storage 94 94 */ 95 - if (needs_barrier) 96 - blkdev_issue_flush(inode->i_sb->s_bdev, GFP_KERNEL, NULL); 95 + if (needs_barrier) { 96 + int err; 97 + 98 + err = blkdev_issue_flush(inode->i_sb->s_bdev, GFP_KERNEL, NULL); 99 + if (!ret) 100 + ret = err; 101 + } 97 102 out: 98 103 trace_ext3_sync_file_exit(inode, ret); 99 104 return ret;