diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/fs/cd9660/cd9660_vfsops.c | 4 | ||||
-rw-r--r-- | sys/fs/hpfs/hpfs_vfsops.c | 4 | ||||
-rw-r--r-- | sys/fs/msdosfs/msdosfs_vfsops.c | 4 | ||||
-rw-r--r-- | sys/fs/ntfs/ntfs_vfsops.c | 4 | ||||
-rw-r--r-- | sys/fs/udf/udf_vfsops.c | 4 | ||||
-rw-r--r-- | sys/geom/geom_vfs.c | 11 | ||||
-rw-r--r-- | sys/geom/geom_vfs.h | 1 | ||||
-rw-r--r-- | sys/gnu/ext2fs/ext2_vfsops.c | 4 | ||||
-rw-r--r-- | sys/gnu/fs/ext2fs/ext2_vfsops.c | 4 | ||||
-rw-r--r-- | sys/isofs/cd9660/cd9660_vfsops.c | 4 | ||||
-rw-r--r-- | sys/ufs/ffs/ffs_vfsops.c | 4 |
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); |