NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/44086: large writes with PUFFS_KFLAG_NOCACHE_PAGE ends up with EIO
>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: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Nov 12 15:40:00 +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;
>Unformatted:
Home |
Main Index |
Thread Index |
Old Index