svn commit: r345662 - projects/fuse2/sys/fs/fuse

Alan Somers asomers at FreeBSD.org
Thu Mar 28 21:57:43 UTC 2019


Author: asomers
Date: Thu Mar 28 21:57:42 2019
New Revision: 345662
URL: https://svnweb.freebsd.org/changeset/base/345662

Log:
  fusefs: fix error handling in fuse_vnop_strategy
  
  Reported by:	cem
  Sponsored by:	The FreeBSD Foundation

Modified:
  projects/fuse2/sys/fs/fuse/fuse_io.c
  projects/fuse2/sys/fs/fuse/fuse_vnops.c

Modified: projects/fuse2/sys/fs/fuse/fuse_io.c
==============================================================================
--- projects/fuse2/sys/fs/fuse/fuse_io.c	Thu Mar 28 21:43:01 2019	(r345661)
+++ projects/fuse2/sys/fs/fuse/fuse_io.c	Thu Mar 28 21:57:42 2019	(r345662)
@@ -652,6 +652,7 @@ fuse_io_strategy(struct vnode *vp, struct buf *bp)
 		printf("FUSE: strategy: filehandles are closed\n");
 		bp->b_ioflags |= BIO_ERROR;
 		bp->b_error = error;
+		bufdone(bp);
 		return (error);
 	}
 	cred = bp->b_iocmd == BIO_READ ? bp->b_rcred : bp->b_wcred;

Modified: projects/fuse2/sys/fs/fuse/fuse_vnops.c
==============================================================================
--- projects/fuse2/sys/fs/fuse/fuse_vnops.c	Thu Mar 28 21:43:01 2019	(r345661)
+++ projects/fuse2/sys/fs/fuse/fuse_vnops.c	Thu Mar 28 21:57:42 2019	(r345662)
@@ -1710,7 +1710,7 @@ fuse_vnop_strategy(struct vop_strategy_args *ap)
 		bp->b_ioflags |= BIO_ERROR;
 		bp->b_error = ENXIO;
 		bufdone(bp);
-		return ENXIO;
+		return 0;
 	}
 	if (bp->b_iocmd == BIO_WRITE) {
 		int err;
@@ -1719,6 +1719,7 @@ fuse_vnop_strategy(struct vop_strategy_args *ap)
 		if (err) {
 			bp->b_ioflags |= BIO_ERROR;
 			bp->b_error = err;
+			bufdone(bp);
 			return 0;
 		}
 	}


More information about the svn-src-projects mailing list