summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/fs/cd9660/cd9660_vfsops.c4
-rw-r--r--sys/fs/hpfs/hpfs_vfsops.c4
-rw-r--r--sys/fs/msdosfs/msdosfs_vfsops.c4
-rw-r--r--sys/fs/ntfs/ntfs_vfsops.c4
-rw-r--r--sys/fs/udf/udf_vfsops.c4
-rw-r--r--sys/geom/geom_vfs.c11
-rw-r--r--sys/geom/geom_vfs.h1
-rw-r--r--sys/gnu/ext2fs/ext2_vfsops.c4
-rw-r--r--sys/gnu/fs/ext2fs/ext2_vfsops.c4
-rw-r--r--sys/isofs/cd9660/cd9660_vfsops.c4
-rw-r--r--sys/ufs/ffs/ffs_vfsops.c4
11 files changed, 30 insertions, 18 deletions
diff --git a/sys/fs/cd9660/cd9660_vfsops.c b/sys/fs/cd9660/cd9660_vfsops.c
index 0c77a55..3d484c9 100644
--- a/sys/fs/cd9660/cd9660_vfsops.c
+++ b/sys/fs/cd9660/cd9660_vfsops.c
@@ -473,7 +473,7 @@ out:
if (cp != NULL) {
DROP_GIANT();
g_topology_lock();
- g_wither_geom_close(cp->geom, ENXIO);
+ g_vfs_close(cp, td);
g_topology_unlock();
PICKUP_GIANT();
}
@@ -516,7 +516,7 @@ cd9660_unmount(mp, mntflags, td)
}
DROP_GIANT();
g_topology_lock();
- g_wither_geom_close(isomp->im_cp->geom, ENXIO);
+ g_vfs_close(isomp->im_cp, td);
g_topology_unlock();
PICKUP_GIANT();
vrele(isomp->im_devvp);
diff --git a/sys/fs/hpfs/hpfs_vfsops.c b/sys/fs/hpfs/hpfs_vfsops.c
index 7c42521..af5291d 100644
--- a/sys/fs/hpfs/hpfs_vfsops.c
+++ b/sys/fs/hpfs/hpfs_vfsops.c
@@ -345,7 +345,7 @@ failed:
if (bp)
brelse (bp);
mp->mnt_data = (qaddr_t)NULL;
- g_wither_geom_close(cp->geom, ENXIO);
+ g_vfs_close(cp, td);
return (error);
}
@@ -375,7 +375,7 @@ hpfs_unmount(
}
vinvalbuf(hpmp->hpm_devvp, V_SAVE, td, 0, 0);
- g_wither_geom_close(hpmp->hpm_cp->geom, ENXIO);
+ g_vfs_close(hpmp->hpm_cp, td);
vrele(hpmp->hpm_devvp);
dprintf(("hpfs_umount: freeing memory...\n"));
diff --git a/sys/fs/msdosfs/msdosfs_vfsops.c b/sys/fs/msdosfs/msdosfs_vfsops.c
index c01b1e8..93fae8a 100644
--- a/sys/fs/msdosfs/msdosfs_vfsops.c
+++ b/sys/fs/msdosfs/msdosfs_vfsops.c
@@ -722,7 +722,7 @@ error_exit:
if (cp != NULL) {
DROP_GIANT();
g_topology_lock();
- g_wither_geom_close(cp->geom, ENXIO);
+ g_vfs_close(cp, td);
g_topology_unlock();
PICKUP_GIANT();
}
@@ -798,7 +798,7 @@ msdosfs_unmount(mp, mntflags, td)
#endif
DROP_GIANT();
g_topology_lock();
- g_wither_geom_close(pmp->pm_cp->geom, ENXIO);
+ g_vfs_close(pmp->pm_cp, td);
g_topology_unlock();
PICKUP_GIANT();
vrele(pmp->pm_devvp);
diff --git a/sys/fs/ntfs/ntfs_vfsops.c b/sys/fs/ntfs/ntfs_vfsops.c
index d7ff5e2..1c2e6bd 100644
--- a/sys/fs/ntfs/ntfs_vfsops.c
+++ b/sys/fs/ntfs/ntfs_vfsops.c
@@ -441,7 +441,7 @@ out:
DROP_GIANT();
g_topology_lock();
- g_wither_geom_close(cp->geom, ENXIO);
+ g_vfs_close(cp, td);
g_topology_unlock();
PICKUP_GIANT();
@@ -489,7 +489,7 @@ ntfs_unmount(
DROP_GIANT();
g_topology_lock();
- g_wither_geom_close(ntmp->ntm_cp->geom, ENXIO);
+ g_vfs_close(ntmp->ntm_cp, td);
g_topology_unlock();
PICKUP_GIANT();
diff --git a/sys/fs/udf/udf_vfsops.c b/sys/fs/udf/udf_vfsops.c
index d39f0cc..ef3ae3f18 100644
--- a/sys/fs/udf/udf_vfsops.c
+++ b/sys/fs/udf/udf_vfsops.c
@@ -486,7 +486,7 @@ bail:
brelse(bp);
DROP_GIANT();
g_topology_lock();
- g_wither_geom_close(cp->geom, ENXIO);
+ g_vfs_close(cp, td);
g_topology_unlock();
PICKUP_GIANT();
return error;
@@ -515,7 +515,7 @@ udf_unmount(struct mount *mp, int mntflags, struct thread *td)
#endif
}
- g_wither_geom_close(udfmp->im_cp->geom, ENXIO);
+ g_vfs_close(udfmp->im_cp, td);
vrele(udfmp->im_devvp);
if (udfmp->s_table != NULL)
diff --git a/sys/geom/geom_vfs.c b/sys/geom/geom_vfs.c
index 9582513..2e8ae34 100644
--- a/sys/geom/geom_vfs.c
+++ b/sys/geom/geom_vfs.c
@@ -150,3 +150,14 @@ g_vfs_open(struct vnode *vp, struct g_consumer **cpp, const char *fsname, int wr
return (error);
}
+
+void
+g_vfs_close(struct g_consumer *cp, struct thread *td)
+{
+ struct g_geom *gp;
+
+ g_topology_assert();
+
+ gp = cp->geom;
+ g_wither_geom_close(gp, ENXIO);
+}
diff --git a/sys/geom/geom_vfs.h b/sys/geom/geom_vfs.h
index 6c2bacb..85aa2b5 100644
--- a/sys/geom/geom_vfs.h
+++ b/sys/geom/geom_vfs.h
@@ -38,5 +38,6 @@ extern struct buf_ops *g_vfs_bufops;
void g_vfs_strategy(struct bufobj *bo, struct buf *bp);
void g_vfs_orphan(struct g_consumer *cp);
int g_vfs_open(struct vnode *vp, struct g_consumer **cpp, const char *fsname, int wr);
+void g_vfs_close(struct g_consumer *cp, struct thread *td);
#endif /* _GEOM_GEOM_VFS_H_ */
diff --git a/sys/gnu/ext2fs/ext2_vfsops.c b/sys/gnu/ext2fs/ext2_vfsops.c
index b3e50aa..b258065 100644
--- a/sys/gnu/ext2fs/ext2_vfsops.c
+++ b/sys/gnu/ext2fs/ext2_vfsops.c
@@ -691,7 +691,7 @@ out:
if (cp != NULL) {
DROP_GIANT();
g_topology_lock();
- g_wither_geom_close(cp->geom, ENXIO);
+ g_vfs_close(cp, td);
g_topology_unlock();
PICKUP_GIANT();
}
@@ -750,7 +750,7 @@ ext2_unmount(mp, mntflags, td)
DROP_GIANT();
g_topology_lock();
- g_wither_geom_close(ump->um_cp->geom, ENXIO);
+ g_vfs_close(ump->um_cp, td);
g_topology_unlock();
PICKUP_GIANT();
vrele(ump->um_devvp);
diff --git a/sys/gnu/fs/ext2fs/ext2_vfsops.c b/sys/gnu/fs/ext2fs/ext2_vfsops.c
index b3e50aa..b258065 100644
--- a/sys/gnu/fs/ext2fs/ext2_vfsops.c
+++ b/sys/gnu/fs/ext2fs/ext2_vfsops.c
@@ -691,7 +691,7 @@ out:
if (cp != NULL) {
DROP_GIANT();
g_topology_lock();
- g_wither_geom_close(cp->geom, ENXIO);
+ g_vfs_close(cp, td);
g_topology_unlock();
PICKUP_GIANT();
}
@@ -750,7 +750,7 @@ ext2_unmount(mp, mntflags, td)
DROP_GIANT();
g_topology_lock();
- g_wither_geom_close(ump->um_cp->geom, ENXIO);
+ g_vfs_close(ump->um_cp, td);
g_topology_unlock();
PICKUP_GIANT();
vrele(ump->um_devvp);
diff --git a/sys/isofs/cd9660/cd9660_vfsops.c b/sys/isofs/cd9660/cd9660_vfsops.c
index 0c77a55..3d484c9 100644
--- a/sys/isofs/cd9660/cd9660_vfsops.c
+++ b/sys/isofs/cd9660/cd9660_vfsops.c
@@ -473,7 +473,7 @@ out:
if (cp != NULL) {
DROP_GIANT();
g_topology_lock();
- g_wither_geom_close(cp->geom, ENXIO);
+ g_vfs_close(cp, td);
g_topology_unlock();
PICKUP_GIANT();
}
@@ -516,7 +516,7 @@ cd9660_unmount(mp, mntflags, td)
}
DROP_GIANT();
g_topology_lock();
- g_wither_geom_close(isomp->im_cp->geom, ENXIO);
+ g_vfs_close(isomp->im_cp, td);
g_topology_unlock();
PICKUP_GIANT();
vrele(isomp->im_devvp);
diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c
index 92feb6c..ee926b5 100644
--- a/sys/ufs/ffs/ffs_vfsops.c
+++ b/sys/ufs/ffs/ffs_vfsops.c
@@ -793,7 +793,7 @@ out:
if (cp != NULL) {
DROP_GIANT();
g_topology_lock();
- g_wither_geom_close(cp->geom, ENXIO);
+ g_vfs_close(cp, td);
g_topology_unlock();
PICKUP_GIANT();
}
@@ -954,7 +954,7 @@ ffs_unmount(mp, mntflags, td)
vinvalbuf(ump->um_devvp, V_SAVE, td, 0, 0);
DROP_GIANT();
g_topology_lock();
- g_wither_geom_close(ump->um_cp->geom, ENXIO);
+ g_vfs_close(ump->um_cp, td);
g_topology_unlock();
PICKUP_GIANT();
vrele(ump->um_devvp);
OpenPOWER on IntegriCloud