mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Davide Libenzi <davidel@xmailserver.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] cowlinks v2
Date: 22 Mar 2004 04:20:31 -0700	[thread overview]
Message-ID: <m1ekrldt6o.fsf@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0403212109020.826-100000@bigblue.dev.mdolabs.com>

Davide Libenzi <davidel@xmailserver.org> writes:

> On 21 Mar 2004, Eric W. Biederman wrote:
> 
> > Davide Libenzi <davidel@xmailserver.org> writes:
> > 
> > > > Actually there is...  You don't do the copy until an actual write occurs.
> > > > Some files are opened read/write when there is simply the chance they
> might
> 
> > > > be written to so delaying the copy is generally a win.
> > > 
> > > What about open+mmap?
> > 
> > The case is nothing really different from having a hole in your file.
> > 
> > There are two pieces to implementing this.  First you create separate
> > page cache  entries for the cow file and it's original, so the
> > laziness of mmapped file writes will not bite you..  Second you make
> > aops -> writepage trigger the actual copy of the file, and have it
> > return -ENOSPC if you can't do the copy.
> 
> There has been a misunderstanding. I thought you were talking about a 
> userspace solution ala fl-cow. Of course if you are inside the kernel you 
> can catch both explicit writes and page syncs.

Right.  Although there is nothing prevent the copy to be in user space
even with the trigger hooks down in the write path.

The nice features of having the hook at that point in the kernel are:
1) No new failure modes for user space to worry about.
2) With cow directory support instant fs level check pointing is achieved.

Eric

  reply	other threads:[~2004-03-22 11:20 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-03-20  8:34 Jörn Engel
2004-03-20  8:49 ` Andrew Morton
2004-03-20 11:27   ` Jörn Engel
2004-03-20 19:28     ` Andrew Morton
2004-03-21 12:43       ` Jörn Engel
2004-03-21 18:53       ` Jörn Engel
     [not found] ` <mit.lcs.mail.linux-kernel/20040320083411.GA25934@wohnheim.fh-wedel.de>
2004-03-20 15:03   ` Patrick J. LoPresti
2004-03-20 15:23     ` Jörn Engel
2004-03-29 17:12       ` Pavel Machek
2004-03-29 21:05         ` Patrick J. LoPresti
2004-03-29 23:16           ` Pavel Machek
2004-03-31 14:34             ` Jamie Lokier
2004-03-31 14:45               ` Pavel Machek
2004-03-31 15:20                 ` Jamie Lokier
2004-04-02 11:44                 ` Tim Connors
2004-04-02 16:54             ` Jörn Engel
2004-04-02 18:01               ` Pavel Machek
2004-04-02 18:17                 ` Jörn Engel
2004-04-02 18:23                   ` Pavel Machek
2004-04-02 19:28                     ` Ross Biro
2004-04-02 21:35                       ` Pavel Machek
2004-04-05  8:12                       ` Jörn Engel
2004-04-05  8:19                         ` Pavel Machek
2004-04-05  8:45                           ` Jörn Engel
2004-04-02 20:09                     ` Jamie Lokier
2004-04-02 21:39                       ` Pavel Machek
2004-04-02 22:00                         ` Chris Friesen
2004-04-03  0:49                           ` Jamie Lokier
2004-04-03  8:23                             ` Pavel Machek
2004-04-03 13:15                               ` Jamie Lokier
2004-04-05  8:19                                 ` Jörn Engel
2004-04-05  8:22                                   ` Pavel Machek
2004-04-03  0:46                         ` Jamie Lokier
2004-04-03  1:04                         ` Jamie Lokier
2004-04-03  1:21                           ` Erik Andersen
2004-04-03  1:59                             ` Jamie Lokier
2004-04-03  3:55                               ` Ross Biro
2004-04-03  9:09                               ` Pavel Machek
2004-04-03 13:27                                 ` Jamie Lokier
2004-04-03 18:39                           ` Eric W. Biederman
2004-04-03 19:43                             ` Jamie Lokier
2004-04-03 20:30                               ` Eric W. Biederman
2004-04-03 21:59                                 ` Jamie Lokier
2004-04-04  8:15                                   ` Eric W. Biederman
2004-04-05  8:35                               ` Jörn Engel
2004-04-05  9:15                                 ` Eric W. Biederman
2004-04-05  9:18                                   ` Jörn Engel
2004-04-05 11:43                                   ` Pavel Machek
2004-04-05 12:17                                     ` Jamie Lokier
2004-04-05 12:39                                   ` Jamie Lokier
2004-04-05 12:41                                 ` Jamie Lokier
2004-04-05 18:03                                   ` Jörn Engel
2004-04-05 11:10                         ` jlnance
2004-04-05 11:46                           ` Pavel Machek
2004-04-05 12:35                           ` Jamie Lokier
2004-04-05  8:43                     ` Jörn Engel
2004-04-03 19:47               ` Eric W. Biederman
2004-04-05  8:54                 ` Jörn Engel
2004-04-05  9:07                   ` Eric W. Biederman
2004-03-20 16:48     ` Davide Libenzi
2004-03-21 12:57       ` Jörn Engel
2004-03-21 17:59         ` Davide Libenzi
2004-03-21 18:14           ` Jörn Engel
2004-03-21 20:26             ` Davide Libenzi
2004-03-21 20:35               ` Jörn Engel
2004-03-22  0:18             ` Eric W. Biederman
2004-03-22  0:25               ` Davide Libenzi
2004-03-22  5:07                 ` Eric W. Biederman
2004-03-22  5:11                   ` Davide Libenzi
2004-03-22 11:20                     ` Eric W. Biederman [this message]
2004-03-22 16:02                       ` Davide Libenzi
2004-03-25 17:49               ` Jamie Lokier
2004-03-25 18:06                 ` Eric W. Biederman
2004-03-25 19:43                   ` Jamie Lokier
2004-03-25 20:38                     ` Linus Torvalds
2004-03-25 22:16                       ` Eric W. Biederman
2004-04-01 14:53                         ` Jörn Engel
2004-04-02 11:54                         ` Tim Connors
2004-03-25 21:46                     ` Eric W. Biederman
2004-03-27 10:28                       ` Jamie Lokier
2004-03-27 21:00                         ` Eric W. Biederman
2004-03-27 21:42                           ` Jamie Lokier
2004-03-27 23:45                             ` Eric W. Biederman
2004-03-28  0:43                               ` Eric W. Biederman
2004-03-28 12:22                                 ` Jamie Lokier
2004-03-28 20:07                                   ` Eric W. Biederman
2004-03-28 23:55                                     ` Jamie Lokier
2004-03-29  1:31                                       ` Eric W. Biederman
2004-03-29 12:36                                         ` Jamie Lokier
2004-03-29 19:36                                           ` Eric W. Biederman
2004-03-29 23:05                                             ` Jamie Lokier
2004-03-29 23:58                                               ` Eric W. Biederman
2004-03-29  7:45                                       ` Denis Vlasenko
2004-03-29  9:28                             ` Pavel Machek
2004-03-29 12:40                               ` Jamie Lokier

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=m1ekrldt6o.fsf@ebiederm.dsl.xmission.com \
    --to=ebiederm@xmission.com \
    --cc=davidel@xmailserver.org \
    --cc=linux-kernel@vger.kernel.org \
    /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

all inboxes | Powered by JetHome®