[lkml]   [2004]   [Mar]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] cowlinks v2
    Jörn Engel <> writes:

    > On Sun, 21 March 2004 09:59:39 -0800, Davide Libenzi wrote:
    > >
    > > When I did that, fumes of an in-kernel implementation invaded my head for
    > > a little while. Then you start thinking that you have to teach apps of new
    > > open(2) semantics, you have to bloat kernel code a little bit and you have
    > > to deal with a new set of errors cases that open(2) is not expected to
    > > deal with. A fully userspace implementation did fit my needs at that time,
    > > even if the LD_PRELOAD trick might break if weak aliases setup for open
    > > functions change inside glibc.
    > 209 fairly simple lines definitely have more appear than a full
    > in-kernel implementation with many new corner-cases, yes. But it
    > looks as if you ignore the -ENOSPC case, so you cheated a little. ;)
    > No matter how you try, there is no way around an additional return
    > code for open(), so we have to break compatibility anyway. The good
    > news is that a) people not using this feature won't notice and b) all
    > programs I tried so far can deal with the problem. Vim even has a
    > decent error message - as if my patch was anticipated already.

    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.

    A coworker of mine implemented a version of this idea as a filesystem.
    It did the copy in the kernel, it handled directories, and could be
    used to atomically snapshot your filesystem. The only case that was
    still a little sketchy was how do you handle cow to a file with hard

    The interesting case for us is when you have multiple machines sharing
    the same root filesystem.

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 14:01    [W:0.021 / U:3.424 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site