From owner-freebsd-current@FreeBSD.ORG Thu Jul 12 23:18:15 2012 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 52D0E106566B; Thu, 12 Jul 2012 23:18:15 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) by mx1.freebsd.org (Postfix) with ESMTP id 2492C8FC0A; Thu, 12 Jul 2012 23:18:13 +0000 (UTC) Received: by lbon10 with SMTP id n10so4844403lbo.13 for ; Thu, 12 Jul 2012 16:18:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=oN5gr8Xa4u6Yrq8qMUrNEgu6aYcZUyyntR+zpmTNojc=; b=pFqWVrK+7xMdfz6zqk79WW4f0gJ2mWCZmxYX+OalTIUdXRK67u3dJ6oRo0auFhPWDb 0orfsA89dvrE/fLHDvPcdnUXt45oQNZ5FrTn2pyzMP23Uy8ehq3YQ2jjz22VYTLPs0er ZHD46YdvEXQ+PP0Y99B9biD2GMKeHuK/nMWix/WCC9gV88zBtKl62YwD5C9T7gLpu2el 5/1Uyf9MDbMXHc7AQJo5I5O1Ca6KHge+j0533jDkRCFEtiw8+44jnWtJA4lPZ7EmNTVo tg3hwvEMh/fEuGVY1rfPZ8c6Fa5xmqxssnhsGVrFXbkSDepQgVQF0PONg7U+ZkSh0vAr 9reg== MIME-Version: 1.0 Received: by 10.152.136.18 with SMTP id pw18mr156386lab.17.1342135092829; Thu, 12 Jul 2012 16:18:12 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Thu, 12 Jul 2012 16:18:12 -0700 (PDT) In-Reply-To: References: Date: Fri, 13 Jul 2012 00:18:12 +0100 X-Google-Sender-Auth: OpTdrpDJgACfGzZ9P5Xj4oGeLtA Message-ID: From: Attilio Rao To: FreeBSD FS , freebsd-current@freebsd.org, Peter Holm , =?UTF-8?Q?Gustau_P=C3=A9rez?= , George Neville-Neil Content-Type: text/plain; charset=UTF-8 Cc: Subject: Re: MPSAFE VFS -- List of upcoming actions X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jul 2012 23:18:15 -0000 2012/7/4 Attilio Rao : > 2012/6/29 Attilio Rao : >> As already published several times, according to the following plan: >> http://wiki.freebsd.org/NONMPSAFE_DEORBIT_VFS >> > > I still haven't heard from Vivien or Edward, anyway as NTFS is > basically only used RO these days (also the mount_ntfs code just > permits RO mounting) I stripped all the uncomplete/bogus write support > with the following patch: > http://www.freebsd.org/~attilio/ntfs_remove_write.patch > > This is an attempt to make the code smaller and possibly just focus on > the locking that really matter (as read-only filesystem). > On some points of the patch I'm a bit less sure as we could easily > take into account also write for things like vaccess() arguments, and > make easier to re-add correct write support at some point in the > future, but still force RO, even if the approach used in the patch is > more correct IMHO. > As an added bonus this patch cleans some dirty code in the mount > operation and fixes a bug as vfs_mountedfrom() is called before real > mounting is completed and can still fail. A quick update on this. It looks like NTFS won't be completed for this GSoC thus I seriously need to find an alternative to not loose the NTFS support entirely. I tried to look into the NTFS implementation right now and it is really a poor support. As Peter has also verified, it can deadlock in no-time, it compeltely violates VFS rules, etc. IMHO it deserves a complete rewrite if we would still support in-kernel NTFS. I also tried to look at the NetBSD implementation. Their code is someway similar to our, but they used very complicated (and very dirty) code to do the locking. Even if I don't know well enough NetBSD VFS, I have the impression not all the races are correctly handled. Definitively, not something I would like to port. Considering all that the only viable option would be meaning an userland filesystem implementation. My preferred choice would be to import PUFFS and librefuse on top of it but honestly it requires a lot of time to be completed, time which I don't currently have as in 2 months Giant must be gone by the VFS. I then decided to switch to gnn's rewamp of FUSE patches. You can find his initial e-mail here: http://lists.freebsd.org/pipermail/freebsd-fs/2012-March/013876.html I've precisely got the second version of George's patch and created this dolphin branch: svn://svn.freebsd.org/base/projects/fuse I'm fixing low hanging fruit for the moment (see r238411 for example) and I still have to make a throughful review. However my idea is to commit the support once: - ntfs-3g is well stress-tested and proves to be bug-free - there is no major/big technical issue pending after the reviews I'm now looking for people sticking with the branch and trying to stress-test ntfs-3g as much as they can. For example I know that Gustau (cc'ed) already had issues. It would be good if he tries to reproduce them and make a full report. Please try to stick with the code contained with this branch for the tests unless diversly advised. As final note, George as agreed to maintain FUSE in the long-term and of course I'll give him an hand as time permits. Thanks, Attilio -- Peace can only be achieved by understanding - A. Einstein