From owner-freebsd-fs@FreeBSD.ORG Tue Aug 12 01:47:19 2008 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E07951065671 for ; Tue, 12 Aug 2008 01:47:19 +0000 (UTC) (envelope-from gw.freebsd@tnode.com) Received: from druga.org (druga.org [193.2.157.120]) by mx1.freebsd.org (Postfix) with ESMTP id 71A058FC19 for ; Tue, 12 Aug 2008 01:47:19 +0000 (UTC) (envelope-from gw.freebsd@tnode.com) Received: from localhost ([127.0.0.1]) by druga.org with esmtp id 1KSivd-0007WY-J1; Tue, 12 Aug 2008 03:44:05 +0200 Received: from druga.org ([127.0.0.1]) by localhost (druga.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 26456-03; Tue, 12 Aug 2008 03:44:05 +0200 (CEST) Received: from bsn-61-101-126.dial-up.dsl.siol.net ([86.61.101.126] helo=[127.0.0.1]) by druga.org with esmtpa id 1KSivd-0007WT-CQ; Tue, 12 Aug 2008 03:44:05 +0200 Message-ID: <48A0EAEF.6060802@tnode.com> Date: Tue, 12 Aug 2008 03:44:15 +0200 From: GW User-Agent: Thunderbird 2.0.0.16 (Windows/20080708) MIME-Version: 1.0 To: freebsd-fs@freebsd.org References: <48A0DCBF.6050900@tnode.com> In-Reply-To: <48A0DCBF.6050900@tnode.com> Content-Type: text/plain; charset=ISO-8859-2; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: at Druga.org Cc: Mitar Subject: Re: Unionfs move directory problems X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Aug 2008 01:47:20 -0000 GW wrote: > For the second problem: > - in all cases (option whiteout=always or whenneeded) when new > directories get created unionfs should check whether such a directory > exists in the lower layer and automaticly whiteout all of its entries - or better (can not work for more than 2 layers) copying all files to upper layer in the moved directory and set the opaque flag, so that underlying files under the new directory name can't be seen through This is the way it is done on the end of the following scenario... First a little different PROBLEM 1 again: ~# mkdir ro ro/foo ro/foo/moveme rw ~# touch ro/foo/moveme/file1 ~# touch ro/foo/moveme/file2 ~# ls -aFloWi orig ~# mount -t unionfs -o below ro rw ~# cd rw ~/rw# ls -aFloWi total 6 49876 drwx------ 3 root wheel - 512 Aug 12 03:10 ./ 49872 drwx------ 4 root wheel - 512 Aug 12 03:09 ../ 49879 drwx------ 2 root wheel - 512 Aug 12 03:09 foo/ ~/rw# ls -aFloWi foo/ total 6 49879 drwx------ 2 root wheel - 512 Aug 12 03:09 ./ 49876 drwx------ 3 root wheel - 512 Aug 12 03:10 ../ 49880 drwx------ 2 root wheel - 512 Aug 12 03:10 moveme/ ~/rw# ls -aFloWi foo/moveme/ total 4 49880 drwx------ 2 root wheel - 512 Aug 12 03:10 ./ 49879 drwx------ 3 root wheel - 512 Aug 12 03:10 ../ 49877 -rw------- 1 root wheel - 0 Aug 12 03:10 file1 49878 -rw------- 1 root wheel - 0 Aug 12 03:10 file2 ~/rw# mv foo/moveme/ . ~/rw# ls -aFloWi total 8 49876 drwx------ 4 root wheel - 512 Aug 12 03:11 ./ 49872 drwx------ 4 root wheel - 512 Aug 12 03:09 ../ 49879 drwx------ 2 root wheel - 512 Aug 12 03:10 foo/ 49880 drwx------ 2 root wheel - 512 Aug 12 03:10 moveme/ ~/rw# ls -aFloWi foo total 4 49879 drwx------ 2 root wheel - 512 Aug 12 03:10 ./ 49876 drwx------ 4 root wheel - 512 Aug 12 03:11 ../ 0 w--------- 0 root wheel - 0 Jan 1 1970 moveme% ~/rw# ls -aFloWi moveme/ total 4 49880 drwx------ 2 root wheel - 512 Aug 12 03:10 ./ 49876 drwx------ 4 root wheel - 512 Aug 12 03:11 ../ << again PROBLEM 1, nothing new And now behavour that is a good solution for PROBLEM 2: ~/rw# mkdir foo/moveme ~/rw# ls -aFloWi foo/ total 6 49879 drwx------ 3 root wheel - 512 Aug 12 03:14 ./ 49876 drwx------ 4 root wheel - 512 Aug 12 03:11 ../ 49881 drwx------ 2 root wheel opaque 512 Aug 12 03:14 moveme/ ~/rw# ls -aFloWi foo/moveme/ total 4 49881 drwx------ 2 root wheel opaque 512 Aug 12 03:14 ./ 49879 drwx------ 3 root wheel - 512 Aug 12 03:14 ../ To proove that the opaque flag did the trick: ~/rw# chflags noopaque foo/moveme/ ~/rw# ls -aFloWi foo/moveme/ total 4 49881 drwx------ 2 root wheel - 512 Aug 12 03:14 ./ 49879 drwx------ 3 root wheel - 512 Aug 12 03:14 ../ 49877 -rw------- 1 root wheel - 0 Aug 12 03:10 file1 49878 -rw------- 1 root wheel - 0 Aug 12 03:10 file2 gw