diff options
author | mckusick <mckusick@FreeBSD.org> | 2013-10-20 21:11:40 +0000 |
---|---|---|
committer | mckusick <mckusick@FreeBSD.org> | 2013-10-20 21:11:40 +0000 |
commit | 54a566ac252979f0e472a79280aef78826ff5088 (patch) | |
tree | 4fe427c51c64c4af1e45b2f8f3034548b295c36f /sys | |
parent | 10e069d47986cb1f31050f6bc9cef523817710bc (diff) | |
download | FreeBSD-src-54a566ac252979f0e472a79280aef78826ff5088.zip FreeBSD-src-54a566ac252979f0e472a79280aef78826ff5088.tar.gz |
Third of several cleanups to soft dependency implementation.
Ensure that softdep_unmount() and softdep_setup_sbupdate()
only get called for filesystems running with soft dependencies.
No functional change.
Tested by: Peter Holm and Scott Long
Sponsored by: Netflix
Diffstat (limited to 'sys')
-rw-r--r-- | sys/ufs/ffs/ffs_softdep.c | 11 | ||||
-rw-r--r-- | sys/ufs/ffs/ffs_vfsops.c | 15 |
2 files changed, 16 insertions, 10 deletions
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c index 7ff6715..ca5e98d 100644 --- a/sys/ufs/ffs/ffs_softdep.c +++ b/sys/ufs/ffs/ffs_softdep.c @@ -13686,6 +13686,17 @@ DB_SHOW_COMMAND(mkdirs, db_show_mkdirs) } } +/* exported to ffs_vfsops.c */ +extern void db_print_ffs(struct ufsmount *ump); +void +db_print_ffs(struct ufsmount *ump) +{ + db_printf("mp %p %s devvp %p fs %p su_wl %d su_deps %d su_req %d\n", + ump->um_mountp, ump->um_mountp->mnt_stat.f_mntonname, + ump->um_devvp, ump->um_fs, ump->softdep_on_worklist, + ump->softdep_deps, ump->softdep_req); +} + #endif /* DDB */ #endif /* SOFTUPDATES */ diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index a87fdfa..313b53b 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -1286,7 +1286,8 @@ ffs_unmount(mp, mntflags) fs->fs_pendinginodes = 0; } UFS_UNLOCK(ump); - softdep_unmount(mp); + if (MOUNTEDSOFTDEP(mp)) + softdep_unmount(mp); if (fs->fs_ronly == 0 || ump->um_fsckpid > 0) { fs->fs_clean = fs->fs_flags & (FS_UNCLEAN|FS_NEEDSFSCK) ? 0 : 1; error = ffs_sbupdate(ump, MNT_WAIT, 0); @@ -1943,7 +1944,7 @@ ffs_sbupdate(ump, waitfor, suspended) } fs->fs_fmod = 0; fs->fs_time = time_second; - if (fs->fs_flags & FS_DOSOFTDEP) + if (MOUNTEDSOFTDEP(ump->um_mountp)) softdep_setup_sbupdate(ump, (struct fs *)bp->b_data, bp); bcopy((caddr_t)fs, bp->b_data, (u_int)fs->fs_sbsize); ffs_oldfscompat_write((struct fs *)bp->b_data, ump); @@ -2221,14 +2222,8 @@ ffs_own_mount(const struct mount *mp) #ifdef DDB -static void -db_print_ffs(struct ufsmount *ump) -{ - db_printf("mp %p %s devvp %p fs %p su_wl %d su_deps %d su_req %d\n", - ump->um_mountp, ump->um_mountp->mnt_stat.f_mntonname, - ump->um_devvp, ump->um_fs, ump->softdep_on_worklist, - ump->softdep_deps, ump->softdep_req); -} +/* defined in ffs_softdep.c */ +extern void db_print_ffs(struct ufsmount *ump); DB_SHOW_COMMAND(ffs, db_show_ffs) { |