diff options
Diffstat (limited to 'fs/fat')
-rw-r--r-- | fs/fat/fatent.c | 3 | ||||
-rw-r--r-- | fs/fat/misc.c | 5 |
2 files changed, 3 insertions, 5 deletions
diff --git a/fs/fat/fatent.c b/fs/fat/fatent.c index 81184d3b75a3..b47d2c9f4fa1 100644 --- a/fs/fat/fatent.c +++ b/fs/fat/fatent.c | |||
@@ -577,7 +577,8 @@ int fat_free_clusters(struct inode *inode, int cluster) | |||
577 | 577 | ||
578 | sb_issue_discard(sb, | 578 | sb_issue_discard(sb, |
579 | fat_clus_to_blknr(sbi, first_cl), | 579 | fat_clus_to_blknr(sbi, first_cl), |
580 | nr_clus * sbi->sec_per_clus); | 580 | nr_clus * sbi->sec_per_clus, |
581 | GFP_NOFS, 0); | ||
581 | 582 | ||
582 | first_cl = cluster; | 583 | first_cl = cluster; |
583 | } | 584 | } |
diff --git a/fs/fat/misc.c b/fs/fat/misc.c index 1736f2356388..970e682ea754 100644 --- a/fs/fat/misc.c +++ b/fs/fat/misc.c | |||
@@ -255,10 +255,7 @@ int fat_sync_bhs(struct buffer_head **bhs, int nr_bhs) | |||
255 | 255 | ||
256 | for (i = 0; i < nr_bhs; i++) { | 256 | for (i = 0; i < nr_bhs; i++) { |
257 | wait_on_buffer(bhs[i]); | 257 | wait_on_buffer(bhs[i]); |
258 | if (buffer_eopnotsupp(bhs[i])) { | 258 | if (!err && !buffer_uptodate(bhs[i])) |
259 | clear_buffer_eopnotsupp(bhs[i]); | ||
260 | err = -EOPNOTSUPP; | ||
261 | } else if (!err && !buffer_uptodate(bhs[i])) | ||
262 | err = -EIO; | 259 | err = -EIO; |
263 | } | 260 | } |
264 | return err; | 261 | return err; |