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:
(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.