diff options
| author | Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz> | 2011-05-08 14:43:41 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-09 12:04:24 -0400 |
| commit | f73976818adeaa46515a238b21e865850b011a87 (patch) | |
| tree | 0039a4bf88de3416c47b299b385f89e8850e3439 /fs/hpfs | |
| parent | d878597c2c498b63abe3e68d343459944bc358f9 (diff) | |
HPFS: When marking or clearing the dirty bit, sync the filesystem
When marking or clearing the dirty bit, sync the filesystem
Signed-off-by: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/hpfs')
| -rw-r--r-- | fs/hpfs/super.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c index 4858ff882d09..07e8d0c34fdf 100644 --- a/fs/hpfs/super.c +++ b/fs/hpfs/super.c | |||
| @@ -27,6 +27,7 @@ static void mark_dirty(struct super_block *s) | |||
| 27 | sb->dirty = 1; | 27 | sb->dirty = 1; |
| 28 | sb->old_wrote = 0; | 28 | sb->old_wrote = 0; |
| 29 | mark_buffer_dirty(bh); | 29 | mark_buffer_dirty(bh); |
| 30 | sync_dirty_buffer(bh); | ||
| 30 | brelse(bh); | 31 | brelse(bh); |
| 31 | } | 32 | } |
| 32 | } | 33 | } |
| @@ -40,10 +41,12 @@ static void unmark_dirty(struct super_block *s) | |||
| 40 | struct buffer_head *bh; | 41 | struct buffer_head *bh; |
| 41 | struct hpfs_spare_block *sb; | 42 | struct hpfs_spare_block *sb; |
| 42 | if (s->s_flags & MS_RDONLY) return; | 43 | if (s->s_flags & MS_RDONLY) return; |
| 44 | sync_blockdev(s->s_bdev); | ||
| 43 | if ((sb = hpfs_map_sector(s, 17, &bh, 0))) { | 45 | if ((sb = hpfs_map_sector(s, 17, &bh, 0))) { |
| 44 | sb->dirty = hpfs_sb(s)->sb_chkdsk > 1 - hpfs_sb(s)->sb_was_error; | 46 | sb->dirty = hpfs_sb(s)->sb_chkdsk > 1 - hpfs_sb(s)->sb_was_error; |
| 45 | sb->old_wrote = hpfs_sb(s)->sb_chkdsk >= 2 && !hpfs_sb(s)->sb_was_error; | 47 | sb->old_wrote = hpfs_sb(s)->sb_chkdsk >= 2 && !hpfs_sb(s)->sb_was_error; |
| 46 | mark_buffer_dirty(bh); | 48 | mark_buffer_dirty(bh); |
| 49 | sync_dirty_buffer(bh); | ||
| 47 | brelse(bh); | 50 | brelse(bh); |
| 48 | } | 51 | } |
| 49 | } | 52 | } |
