From: Valerie Aurora <vaurora@redhat.com>
To: 7eggert@gmx.de, David Woodhouse <dwmw2@infradead.org>
Cc: Miklos Szeredi <miklos@szeredi.hu>,
jack@suse.cz, agruen@suse.de, viro@zeniv.linux.org.uk,
jblunck@suse.de, hch@infradead.org, linux-kernel@vger.kernel.org,
linux-fsdevel@vger.kernel.org, tytso@mit.edu,
linux-ext4@vger.kernel.org
Subject: Re: [PATCH 14/38] fallthru: ext2 fallthru support
Date: Tue, 24 Aug 2010 13:21:09 -0400 [thread overview]
Message-ID: <20100824172108.GA28718@shell> (raw)
In-Reply-To: <E1OlrzM-0001lZ-0z@be1.7eggert.dyndns.org>
On Thu, Aug 19, 2010 at 01:24:07AM +0200, Bodo Eggert wrote:
> Miklos Szeredi <miklos@szeredi.hu> wrote:
> > On Tue, 17 Aug 2010, Valerie Aurora wrote:
>
> >> > - hard links to make sure a separate inode is not necessary for each
> >> > whiteout/fallthrough entry
> >>
> >> The problem with hard links is that you run into hard link limits. I
> >> don't think we can do hard links for whiteouts and fallthrus. Each
> >> whiteout or fallthru will cost an inode if we implement them as
> >> extended attributes. This cost has to be balanced against the cost of
> >> implementing them as dentries, which is mainly code complexity in
> >> individual file systems.
>
> Not knowing the details, I'd suggest to implement a generic function to
> create an attributed inode and let the fs override it to create an
> unlinked-file-dentry instead.
>
> Benefit: All fs supporting extended attributes will be able to support
> whiteout. If the fs has other means of supporting whiteout, they may fake
> the attribute.
Yeah, I think that's the way to go.
> Possible problems:
> - Having two ways of reporting a whiteout? Or can it be reported using a
> (static) fake inode?
They are going to look the same at the VFS level and higher.
> - How do you un-whiteout while (not) having an overlaying fs?
The current version of whiteout support always hides DT_WHT dentries
from userspace. Perhaps a start is to only hide DT_WHT entries when
the file system is union mounted. Applications usually ignore all
dentries with d_ino == 0 so it might not cause problems.
Right now, you have to remove whiteouts offline using fsck.
> > get_unlinked_inode() is a great idea. But I feel that individual
> > inodes for each fallthrough is excessive. It'll make the first
> > readdir() really really expensive and wastes a lot of disk and memory
> > for no good reason.
> >
> > Not sure how to fix the hard link limits problem though...
>
> Do a hardlink if you can create a hard link, otherwise use a fresh inode
> and use that for the next hardlink(s).
Bleah! Then you have a code path that is only tested when you hit
LINK_MAX. Sounds like a recipe for bugs for me.
-VAL
next prev parent reply other threads:[~2010-08-24 17:21 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <eVJmW-3Lf-15@gated-at.bofh.it>
[not found] ` <eVJmW-3Lf-19@gated-at.bofh.it>
[not found] ` <fdNs6-5F1-7@gated-at.bofh.it>
[not found] ` <fdVfY-pv-23@gated-at.bofh.it>
[not found] ` <fe6Ep-cD-13@gated-at.bofh.it>
[not found] ` <fiCPo-73x-17@gated-at.bofh.it>
[not found] ` <fiMc1-6ip-7@gated-at.bofh.it>
2010-08-18 23:24 ` [PATCH 14/38] fallthru: ext2 fallthru support Bodo Eggert
2010-08-19 2:03 ` J. R. Okajima
2010-08-24 17:21 ` Valerie Aurora [this message]
2010-08-26 9:53 ` Bodo Eggert
[not found] <1281134124-17041-1-git-send-email-vaurora@redhat.com>
2010-08-06 22:35 ` Valerie Aurora
2010-08-07 0:28 ` Andreas Dilger
2010-08-08 16:40 ` Valerie Aurora
[not found] <1277492728-11446-1-git-send-email-vaurora@redhat.com>
2010-06-25 19:05 ` Valerie Aurora
[not found] <1276627208-17242-1-git-send-email-vaurora@redhat.com>
2010-06-15 18:39 ` Valerie Aurora
2010-07-13 4:30 ` Ian Kent
2010-08-04 14:44 ` Miklos Szeredi
2010-08-04 22:48 ` Valerie Aurora
2010-08-05 10:36 ` Miklos Szeredi
2010-08-05 23:30 ` Valerie Aurora
2010-08-06 8:15 ` Miklos Szeredi
2010-08-06 17:16 ` Valerie Aurora
2010-08-06 17:44 ` Miklos Szeredi
2010-08-04 23:04 ` Valerie Aurora
2010-08-05 11:13 ` Miklos Szeredi
2010-08-06 17:12 ` Valerie Aurora
2010-08-17 22:27 ` Valerie Aurora
2010-08-18 8:26 ` Miklos Szeredi
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=20100824172108.GA28718@shell \
--to=vaurora@redhat.com \
--cc=7eggert@gmx.de \
--cc=agruen@suse.de \
--cc=dwmw2@infradead.org \
--cc=hch@infradead.org \
--cc=jack@suse.cz \
--cc=jblunck@suse.de \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=tytso@mit.edu \
--cc=viro@zeniv.linux.org.uk \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).