diff options
author | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2009-01-14 00:29:51 -0500 |
---|---|---|
committer | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2009-01-14 00:29:51 -0500 |
commit | cb7a97d01521797cad9f63e8478403c3e51fea49 (patch) | |
tree | 84cddf20369f82f10c1c3712e6cce20dd1b9d863 /fs/super.c | |
parent | 0335cb76aa3fa913a2164bc9b669e5aef9d56fa3 (diff) | |
parent | a6525042bfdfcab128bd91fad264de10fd24a55e (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-linus
Diffstat (limited to 'fs/super.c')
-rw-r--r-- | fs/super.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/super.c b/fs/super.c index cb20744ec789..ed080c417167 100644 --- a/fs/super.c +++ b/fs/super.c | |||
@@ -458,7 +458,6 @@ void sync_filesystems(int wait) | |||
458 | if (sb->s_flags & MS_RDONLY) | 458 | if (sb->s_flags & MS_RDONLY) |
459 | continue; | 459 | continue; |
460 | sb->s_need_sync_fs = 1; | 460 | sb->s_need_sync_fs = 1; |
461 | async_synchronize_full_special(&sb->s_async_list); | ||
462 | } | 461 | } |
463 | 462 | ||
464 | restart: | 463 | restart: |
@@ -471,6 +470,7 @@ restart: | |||
471 | sb->s_count++; | 470 | sb->s_count++; |
472 | spin_unlock(&sb_lock); | 471 | spin_unlock(&sb_lock); |
473 | down_read(&sb->s_umount); | 472 | down_read(&sb->s_umount); |
473 | async_synchronize_full_special(&sb->s_async_list); | ||
474 | if (sb->s_root && (wait || sb->s_dirt)) | 474 | if (sb->s_root && (wait || sb->s_dirt)) |
475 | sb->s_op->sync_fs(sb, wait); | 475 | sb->s_op->sync_fs(sb, wait); |
476 | up_read(&sb->s_umount); | 476 | up_read(&sb->s_umount); |
@@ -810,6 +810,7 @@ int get_sb_bdev(struct file_system_type *fs_type, | |||
810 | } | 810 | } |
811 | 811 | ||
812 | s->s_flags |= MS_ACTIVE; | 812 | s->s_flags |= MS_ACTIVE; |
813 | bdev->bd_super = s; | ||
813 | } | 814 | } |
814 | 815 | ||
815 | return simple_set_mnt(mnt, s); | 816 | return simple_set_mnt(mnt, s); |
@@ -829,6 +830,7 @@ void kill_block_super(struct super_block *sb) | |||
829 | struct block_device *bdev = sb->s_bdev; | 830 | struct block_device *bdev = sb->s_bdev; |
830 | fmode_t mode = sb->s_mode; | 831 | fmode_t mode = sb->s_mode; |
831 | 832 | ||
833 | bdev->bd_super = 0; | ||
832 | generic_shutdown_super(sb); | 834 | generic_shutdown_super(sb); |
833 | sync_blockdev(bdev); | 835 | sync_blockdev(bdev); |
834 | close_bdev_exclusive(bdev, mode); | 836 | close_bdev_exclusive(bdev, mode); |