|
|
@@ -193,12 +193,17 @@ static int fat_file_release(struct inode *inode, struct file *filp)
|
|
|
int fat_file_fsync(struct file *filp, loff_t start, loff_t end, int datasync)
|
|
|
{
|
|
|
struct inode *inode = filp->f_mapping->host;
|
|
|
- int res, err;
|
|
|
+ int err;
|
|
|
+
|
|
|
+ err = __generic_file_fsync(filp, start, end, datasync);
|
|
|
+ if (err)
|
|
|
+ return err;
|
|
|
|
|
|
- res = generic_file_fsync(filp, start, end, datasync);
|
|
|
err = sync_mapping_buffers(MSDOS_SB(inode->i_sb)->fat_inode->i_mapping);
|
|
|
+ if (err)
|
|
|
+ return err;
|
|
|
|
|
|
- return res ? res : err;
|
|
|
+ return blkdev_issue_flush(inode->i_sb->s_bdev, GFP_KERNEL, NULL);
|
|
|
}
|
|
|
|
|
|
|