NetBSD Problem Report #44086

From yamt@NetBSD.org  Fri Nov 12 15:37:26 2010
Return-Path: <yamt@NetBSD.org>
Received: by www.NetBSD.org (Postfix, from userid 1270)
	id 64ED963BA61; Fri, 12 Nov 2010 15:37:26 +0000 (UTC)
Message-Id: <20101112153726.64ED963BA61@www.NetBSD.org>
Date: Fri, 12 Nov 2010 15:37:26 +0000 (UTC)
From: yamt@NetBSD.org
Reply-To: yamt@NetBSD.org
To: gnats-bugs@NetBSD.org
Subject: large writes with PUFFS_KFLAG_NOCACHE_PAGE ends up with EIO
X-Send-Pr-Version: 3.95

>Number:         44086
>Category:       kern
>Synopsis:       large writes with PUFFS_KFLAG_NOCACHE_PAGE ends up with EIO
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Nov 12 15:40:00 +0000 2010
>Closed-Date:    Fri Nov 12 17:48:38 +0000 2010
>Last-Modified:  Fri Nov 12 17:50:02 +0000 2010
>Originator:     YAMAMOTO Takashi
>Release:        NetBSD-current
>Organization:

>Environment:


System: NetBSD narn.netbsd.org 4.0_STABLE NetBSD 4.0_STABLE (NBMAIL) #5: Fri Jul 3 22:41:25 UTC 2009 root@ADMIN:/usr/obj/sys/arch/i386/compile.i386/NBMAIL i386
>Description:
	with PUFFS_KFLAG_NOCACHE_PAGE, puffs_vnop_write fails in its 2nd
	iteration due to the reuse of a park.
>How-To-Repeat:
	1. mount a puffs-based PUFFS_KFLAG_NOCACHE_PAGE filesystem
	2. write a large chunk to it
	   eg. dd if=/dev/zero of=/mnt/file bs=1m count=1
>Fix:

Index: puffs_msgif.c
===================================================================
RCS file: /cvsroot/src/sys/fs/puffs/puffs_msgif.c,v
retrieving revision 1.82
diff -u -p -r1.82 puffs_msgif.c
--- puffs_msgif.c	6 Jul 2010 17:00:06 -0000	1.82
+++ puffs_msgif.c	12 Nov 2010 15:31:38 -0000
@@ -332,6 +332,9 @@ puffs_msg_enqueue(struct puffs_mount *pm
 	struct puffs_req *preq, *creq;
 	ssize_t delta;

+	/* some clients reuse a park */
+	park->park_flags &= ~(PARKFLAG_DONE | PARKFLAG_HASERROR);
+
 	mp = PMPTOMP(pmp);
 	preq = park->park_preq;


>Release-Note:

>Audit-Trail:
From: "Antti Kantee" <pooka@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/44086 CVS commit: src/tests/fs/puffs
Date: Fri, 12 Nov 2010 17:33:29 +0000

 Module Name:	src
 Committed By:	pooka
 Date:		Fri Nov 12 17:33:28 UTC 2010

 Modified Files:
 	src/tests/fs/puffs: Makefile
 Added Files:
 	src/tests/fs/puffs: t_io.c

 Log Message:
 Add test case for problem described by yamt in PR kern/44086.
 "large writes with PUFFS_KFLAG_NOCACHE_PAGE ends up with EIO"


 To generate a diff of this commit:
 cvs rdiff -u -r1.11 -r1.12 src/tests/fs/puffs/Makefile
 cvs rdiff -u -r0 -r1.1 src/tests/fs/puffs/t_io.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: open->closed
State-Changed-By: pooka@NetBSD.org
State-Changed-When: Fri, 12 Nov 2010 19:48:38 +0200
State-Changed-Why:
fixed.  thanks!


From: "Antti Kantee" <pooka@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/44086 CVS commit: src/sys/fs/puffs
Date: Fri, 12 Nov 2010 17:46:09 +0000

 Module Name:	src
 Committed By:	pooka
 Date:		Fri Nov 12 17:46:09 UTC 2010

 Modified Files:
 	src/sys/fs/puffs: puffs_msgif.c

 Log Message:
 Allow clients to reuse a "park".

 Patch from <yamt>, fixes PR kern/44086 by him.


 To generate a diff of this commit:
 cvs rdiff -u -r1.82 -r1.83 src/sys/fs/puffs/puffs_msgif.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.