diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index 578e71014a2..455508cf996 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -410,6 +410,12 @@ ffs_mount(struct mount *mp) mp->mnt_flag |= mntorflags; MNT_IUNLOCK(mp); + /* + * If this is a snapshot request, take the snapshot. + */ + if (mp->mnt_flag & MNT_SNAPSHOT) + return (ffs_snapshot(mp, fspec)); + /* * Must not call namei() while owning busy ref. */ @@ -684,11 +690,6 @@ ffs_mount(struct mount *mp) MNT_IUNLOCK(mp); } - /* - * If this is a snapshot request, take the snapshot. - */ - if (mp->mnt_flag & MNT_SNAPSHOT) - return (ffs_snapshot(mp, fspec)); } MNT_ILOCK(mp);