From owner-freebsd-current@FreeBSD.ORG Sat Jul 18 13:32:33 2009 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 71339106564A; Sat, 18 Jul 2009 13:32:33 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from esa-jnhn.mail.uoguelph.ca (esa-jnhn.mail.uoguelph.ca [131.104.91.44]) by mx1.freebsd.org (Postfix) with ESMTP id 0A13A8FC12; Sat, 18 Jul 2009 13:32:32 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAOtrYUqDaFvL/2dsb2JhbADNJYQMBYFA X-IronPort-AV: E=Sophos;i="4.43,225,1246852800"; d="scan'208";a="41626535" Received: from nile.cs.uoguelph.ca ([131.104.91.203]) by esa-jnhn-pri.mail.uoguelph.ca with ESMTP; 18 Jul 2009 09:32:32 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by nile.cs.uoguelph.ca (Postfix) with ESMTP id 2EC148D40ED; Sat, 18 Jul 2009 09:32:32 -0400 (EDT) X-Virus-Scanned: amavisd-new at nile.cs.uoguelph.ca Received: from nile.cs.uoguelph.ca ([127.0.0.1]) by localhost (nile.cs.uoguelph.ca [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nQ+4LQLiqwF2; Sat, 18 Jul 2009 09:32:31 -0400 (EDT) Received: from muncher.cs.uoguelph.ca (muncher.cs.uoguelph.ca [131.104.91.102]) by nile.cs.uoguelph.ca (Postfix) with ESMTP id 2FC5E8D40DC; Sat, 18 Jul 2009 09:32:31 -0400 (EDT) Received: from localhost (rmacklem@localhost) by muncher.cs.uoguelph.ca (8.11.7p3+Sun/8.11.6) with ESMTP id n6IDZXS12092; Sat, 18 Jul 2009 09:35:33 -0400 (EDT) X-Authentication-Warning: muncher.cs.uoguelph.ca: rmacklem owned process doing -bs Date: Sat, 18 Jul 2009 09:35:33 -0400 (EDT) From: Rick Macklem X-X-Sender: rmacklem@muncher.cs.uoguelph.ca To: Anonymous In-Reply-To: <86ocrjyrqu.fsf@gmail.com> Message-ID: References: <86zlb45px8.fsf@gmail.com> <20090717081105.GQ55190@deviant.kiev.zoral.com.ua> <86ocrjyrqu.fsf@gmail.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Kostik Belousov , Rick Macklem , freebsd-current@freebsd.org Subject: Re: [newnfs/client] SIGINFO aborts transfer and produces `permission denied' X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jul 2009 13:32:33 -0000 On Sat, 18 Jul 2009, Anonymous wrote: > > Yep, I can reproduce it as easily on 8.0-BETA2 snapshot under qemu > > # uname -vm > FreeBSD 8.0-BETA2 #0: Wed Jul 15 23:25:30 UTC 2009 > root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386 > I'll try to get around to testing it this weekend, but if you'd like to test the following patch, I think it might fix the problem. The new krpc only checks NFSMNT_INT at connect and not every rpc. rick ps: The line #s assume the other patch you tested is already applied. --- untested exp. nfs client patch --- --- fs/nfsclient/nfs_clvfsops.c.sav2 2009-07-18 09:19:07.000000000 -0400 +++ fs/nfsclient/nfs_clvfsops.c 2009-07-18 09:29:14.000000000 -0400 @@ -1037,7 +1037,7 @@ { struct nfsmount *nmp; struct nfsnode *np; - int error, trycnt, ret, clearintr; + int error, trycnt, ret; struct nfsvattr nfsva; static u_int64_t clval = 0; @@ -1152,20 +1152,8 @@ nmp->nm_sockreq.nr_vers = NFS_VER2; - /* - * For Connection based sockets (TCP,...) do the connect here, - * but make it interruptible, even for non-interuptible mounts. - */ - if ((nmp->nm_flag & NFSMNT_INT) == 0) { - nmp->nm_flag |= NFSMNT_INT; - clearintr = 1; - } else { - clearintr = 0; - } if ((error = newnfs_connect(nmp, &nmp->nm_sockreq, cred, td, 0))) goto bad; - if (clearintr) - nmp->nm_flag &= ~NFSMNT_INT; /* * A reference count is needed on the nfsnode representing the