|
@@ -92,8 +92,13 @@ int ext3_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
|
|
* disk caches manually so that data really is on persistent
|
|
* disk caches manually so that data really is on persistent
|
|
* storage
|
|
* storage
|
|
*/
|
|
*/
|
|
- if (needs_barrier)
|
|
|
|
- blkdev_issue_flush(inode->i_sb->s_bdev, GFP_KERNEL, NULL);
|
|
|
|
|
|
+ if (needs_barrier) {
|
|
|
|
+ int err;
|
|
|
|
+
|
|
|
|
+ err = blkdev_issue_flush(inode->i_sb->s_bdev, GFP_KERNEL, NULL);
|
|
|
|
+ if (!ret)
|
|
|
|
+ ret = err;
|
|
|
|
+ }
|
|
out:
|
|
out:
|
|
trace_ext3_sync_file_exit(inode, ret);
|
|
trace_ext3_sync_file_exit(inode, ret);
|
|
return ret;
|
|
return ret;
|