diff --git a/sys/miscfs/genfs/layer_vnops.c b/sys/miscfs/genfs/layer_vnops.c index b71541f1e917..c67f2db4d33b 100644 --- a/sys/miscfs/genfs/layer_vnops.c +++ b/sys/miscfs/genfs/layer_vnops.c @@ -1,4 +1,4 @@ -/* $NetBSD: layer_vnops.c,v 1.49 2011/07/11 08:27:38 hannken Exp $ */ +/* $NetBSD: layer_vnops.c,v 1.50 2011/07/11 08:34:01 hannken Exp $ */ /* * Copyright (c) 1999 National Aeronautics & Space Administration @@ -170,7 +170,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: layer_vnops.c,v 1.49 2011/07/11 08:27:38 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: layer_vnops.c,v 1.50 2011/07/11 08:34:01 hannken Exp $"); #include #include @@ -186,6 +186,7 @@ __KERNEL_RCSID(0, "$NetBSD: layer_vnops.c,v 1.49 2011/07/11 08:27:38 hannken Exp #include #include #include +#include /* * This is the 08-June-99 bypass routine, based on the 10-Apr-92 bypass @@ -529,10 +530,16 @@ layer_fsync(void *v) off_t offhi; struct lwp *a_l; } */ *ap = v; + int error; if (ap->a_flags & FSYNC_RECLAIM) { return 0; } + if (ap->a_vp->v_type == VBLK || ap->a_vp->v_type == VCHR) { + error = spec_fsync(v); + if (error) + return error; + } return LAYERFS_DO_BYPASS(ap->a_vp, ap); }