All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Howells <dhowells@redhat.com>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: dhowells@redhat.com, viro@ZenIV.linux.org.uk,
	torvalds@linux-foundation.org, linux-fsdevel@vger.kernel.org,
	linux-kernel@vger.kernel.org, bfields@fieldses.org,
	hch@infradead.org, akpm@linux-foundation.org, zab@redhat.com,
	jack@suse.cz, luto@amacapital.net, mszeredi@suse.cz
Subject: Re: [PATCH 00/13] cross rename v4
Date: Thu, 13 Feb 2014 16:42:50 +0000	[thread overview]
Message-ID: <20106.1392309770@warthog.procyon.org.uk> (raw)
In-Reply-To: <20140213162534.GB4026@tucsk.piliscsaba.szeredi.hu>

Miklos Szeredi <miklos@szeredi.hu> wrote:

> Regarding whiteouts, I raised a couple of questions that nobody answered
> yet, so let me ask again.
> 
> - If a filesystem containing whiteouts (fallthroughs, etc...) is mounted as
>   not part of a union, how are these special entities represented to
>   userspace?

I would suggest that whiteouts appear as otherwise negative dentries and that
they don't appear in getdents().

Fallthroughs are far more 'interesting'.  Maybe they should appear in
getdents() with a dentry type saying what they are, but give you EREMOTE or
something if you try to follow them.

Note that there is space in d_flags & DCACHE_ENTRY_TYPE for a whiteout type.
I would, however, mark fallthroughs by a separate flag.  So that the union
dentry will mirror the source dentry's type.

> - Can the user remove them?

Overwriting whiteouts and fallthroughs and unlinking fallthroughs I don't see
as a problem where they can be treated as normal negative dentries and normal
files in this regard.

However, what do you do about non-opaque directories that may or may not have
been unioned if you try and follow a dirent that would be a subdirectory that
hasn't been copied up?

David

  parent reply	other threads:[~2014-02-13 16:43 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-07 16:48 [PATCH 00/13] cross rename v4 Miklos Szeredi
2014-02-07 16:48 ` [PATCH 01/13] vfs: add d_is_dir() Miklos Szeredi
2014-02-07 17:36   ` J. Bruce Fields
2014-02-07 19:30   ` David Howells
2014-02-07 16:49 ` [PATCH 02/13] vfs: rename: move d_move() up Miklos Szeredi
2014-02-07 16:49 ` [PATCH 03/13] vfs: rename: use common code for dir and non-dir Miklos Szeredi
2014-02-07 16:49 ` [PATCH 04/13] vfs: add renameat2 syscall Miklos Szeredi
2014-02-07 16:49 ` [PATCH 05/13] vfs: add RENAME_NOREPLACE flag Miklos Szeredi
2014-02-07 16:49 ` [PATCH 06/13] security: add flags to rename hooks Miklos Szeredi
2014-02-07 16:49 ` [PATCH 07/13] vfs: lock_two_nondirectories: allow directory args Miklos Szeredi
2014-02-07 21:16   ` J. Bruce Fields
2014-02-11 15:32     ` Miklos Szeredi
2014-02-07 16:49 ` [PATCH 08/13] vfs: add cross-rename Miklos Szeredi
2014-02-07 22:40   ` J. Bruce Fields
2014-02-11 15:55     ` Miklos Szeredi
2014-02-07 16:49 ` [PATCH 09/13] ext4: rename: create ext4_renament structure for local vars Miklos Szeredi
2014-02-07 16:49 ` [PATCH 10/13] ext4: rename: move EMLINK check up Miklos Szeredi
2014-02-07 16:49 ` [PATCH 11/13] ext4: rename: split out helper functions Miklos Szeredi
2014-02-07 16:49 ` [PATCH 12/13] ext4: add cross rename support Miklos Szeredi
2014-02-11 21:23   ` Jan Kara
2014-02-07 16:49 ` [PATCH 13/13] vfs: merge rename2 into rename Miklos Szeredi
2014-02-07 22:46 ` [PATCH 00/13] cross rename v4 J. Bruce Fields
2014-02-11 15:57   ` Miklos Szeredi
2014-02-13 19:32     ` J. Bruce Fields
2014-02-10 10:51 ` Dave Chinner
2014-02-11 16:01   ` Miklos Szeredi
2014-02-12 17:18     ` Miklos Szeredi
2014-02-17  8:19       ` Dave Chinner
2014-02-17 18:04         ` Theodore Ts'o
2014-03-19 13:57         ` xfstest for renameat2 system call (was: [PATCH 00/13] cross rename v4) Miklos Szeredi
2014-04-08  1:23           ` Dave Chinner
2014-02-13 15:54 ` [PATCH 00/13] cross rename v4 David Howells
2014-02-13 16:25   ` Miklos Szeredi
2014-02-13 16:42   ` David Howells [this message]
2014-02-13 17:28     ` Miklos Szeredi
2014-02-13 18:21       ` Andy Lutomirski
2014-02-13 18:29       ` Linus Torvalds
2014-02-13 18:56         ` Miklos Szeredi
2014-02-13 19:20           ` Linus Torvalds
2014-02-13 19:02       ` David Howells
2014-02-13 19:32         ` Linus Torvalds
2014-02-13 20:17           ` Eric W. Biederman
2014-02-13 20:28           ` Miklos Szeredi
2014-02-24 17:12             ` Miklos Szeredi
2014-02-24 17:49               ` Linus Torvalds
2014-02-25  4:07               ` J. R. Okajima
2014-02-26 15:15               ` Jan Kara

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20106.1392309770@warthog.procyon.org.uk \
    --to=dhowells@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=bfields@fieldses.org \
    --cc=hch@infradead.org \
    --cc=jack@suse.cz \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=miklos@szeredi.hu \
    --cc=mszeredi@suse.cz \
    --cc=torvalds@linux-foundation.org \
    --cc=viro@ZenIV.linux.org.uk \
    --cc=zab@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.