diff options
| author | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 18:11:38 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 18:11:38 -0800 |
| commit | 1a0153507ffae9cf3350e76c12d441788c0191e1 (patch) | |
| tree | d05a502b4fc05202c84c1667019460c08ea088cd /fs/super.c | |
| parent | b0683ac8928c4cf40646a6ce3eb6ffe94605acfa (diff) | |
v2.4.3.2 -> v2.4.3.3
- Hui-Fen Hsu: sis900 driver update
- NIIBE Yutaka: Super-H update
- Alan Cox: more resyncs (ARM down, but more to go)
- David Miller: network zerocopy, Sparc sync, qlogic,FC fix, etc.
- David Miller/me: get rid of various drivers hacks to do mmap
alignment behind the back of the VM layer. Create a real
protocol for it.
Diffstat (limited to 'fs/super.c')
| -rw-r--r-- | fs/super.c | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/fs/super.c b/fs/super.c index 601e3d63f36e..97f4824bd3db 100644 --- a/fs/super.c +++ b/fs/super.c @@ -898,9 +898,9 @@ static void kill_super(struct super_block *sb, int umount_root) /* Need to clean after the sucker */ if (fs->fs_flags & FS_LITTER) d_genocide(root); - if (fs->fs_flags & (FS_SINGLE|FS_LITTER)) - shrink_dcache_parent(root); + shrink_dcache_parent(root); dput(root); + fsync_dev(sb->s_dev); lock_super(sb); if (sop) { if (sop->write_super && sb->s_dirt) @@ -1074,20 +1074,6 @@ static int do_umount(struct vfsmount *mnt, int umount_root, int flags) if( (flags&MNT_FORCE) && sb->s_op->umount_begin) sb->s_op->umount_begin(sb); - /* - * Shrink dcache, then fsync. This guarantees that if the - * filesystem is quiescent at this point, then (a) only the - * root entry should be in use and (b) that root entry is - * clean. - */ - shrink_dcache_sb(sb); - fsync_dev(sb->s_dev); - - if (sb->s_root->d_inode->i_state) { - mntput(mnt); - return -EBUSY; - } - /* Something might grab it again - redo checks */ spin_lock(&dcache_lock); |
