From owner-freebsd-stable@FreeBSD.ORG Sat Nov 6 10:50:25 2010 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CA55B106564A; Sat, 6 Nov 2010 10:50:25 +0000 (UTC) (envelope-from avg@freebsd.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id DCB0F8FC15; Sat, 6 Nov 2010 10:50:24 +0000 (UTC) Received: from porto.topspin.kiev.ua (porto-e.starpoint.kiev.ua [212.40.38.100]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id MAA27731; Sat, 06 Nov 2010 12:50:20 +0200 (EET) (envelope-from avg@freebsd.org) Received: from localhost.topspin.kiev.ua ([127.0.0.1]) by porto.topspin.kiev.ua with esmtp (Exim 4.34 (FreeBSD)) id 1PEgLk-000MNe-5c; Sat, 06 Nov 2010 12:50:20 +0200 Message-ID: <4CD532EB.1050008@freebsd.org> Date: Sat, 06 Nov 2010 12:50:19 +0200 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.12) Gecko/20101029 Lightning/1.0b2 Thunderbird/3.1.6 MIME-Version: 1.0 To: Kostik Belousov References: <1984713101.142889.1288963447940.JavaMail.root@erie.cs.uoguelph.ca> <20101105212757.GG2392@deviant.kiev.zoral.com.ua> In-Reply-To: <20101105212757.GG2392@deviant.kiev.zoral.com.ua> X-Enigmail-Version: 1.1.2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: Josh Carroll , Rick Macklem , freebsd-stable@freebsd.org, jhb@freebsd.org Subject: Re: NFS deadlock (unkillable nfsd and no mounts work) X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Nov 2010 10:50:25 -0000 on 05/11/2010 23:27 Kostik Belousov said the following: > I agree that the fix a right fix for real issue. It should only > affect the filesystems that do support VFS_VGET(). In other words, > it is relevant for e.g. UFS exports, but not for ZFS, that is the > Andrey case. Actually ZFS does implement vfs_vget, but with a special quirk for .zfs/ and stuff under it: static int zfs_vget(vfs_t *vfsp, ino_t ino, int flags, vnode_t **vpp) { zfsvfs_t *zfsvfs = vfsp->vfs_data; znode_t *zp; int err; /* * zfs_zget() can't operate on virtual entires like .zfs/ or * .zfs/snapshot/ directories, that's why we return EOPNOTSUPP. * This will make NFS to switch to LOOKUP instead of using VGET. */ if (ino == ZFSCTL_INO_ROOT || ino == ZFSCTL_INO_SNAPDIR) return (EOPNOTSUPP); ... ... -- Andriy Gapon