linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com>
To: Omar Sandoval <osandov@osandov.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	linux-fsdevel@vger.kernel.org
Cc: mtk.manpages@gmail.com,
	Linus Torvalds <torvalds@linux-foundation.org>,
	linux-api@vger.kernel.org, kernel-team@fb.com,
	Xi Wang <xi@cs.washington.edu>
Subject: Re: [RFC PATCH v3 0/2] fs: add AT_REPLACE flag for linkat()
Date: Fri, 27 Apr 2018 14:00:39 +0200	[thread overview]
Message-ID: <ba06a3ff-6569-749f-cbc5-f597db65d347@gmail.com> (raw)
In-Reply-To: <cover.1524549513.git.osandov@fb.com>

Hello Omar,

On 04/24/2018 08:19 AM, Omar Sandoval wrote:
> From: Omar Sandoval <osandov@fb.com>
> 
> Hi, Al,
> 
> This is a respin of my linkat() AT_REPLACE series, previously posted
> here:
> 
> https://patchwork.kernel.org/patch/9636735/
> https://patchwork.kernel.org/patch/9636733/
> 
> There are no changes since v2, only a rebase onto v4.17-rc2 and some
> minor additions to the commit messages.
> 
> The goal is to allow for updating a file atomically in-place with an
> O_TMPFILE like so:
> 
> - open temporary file with O_TMPFILE
> - write temporary file contents
> - fsync temporary file
> - atomically replace permanent location with the temporary file
> - fsync parent directory

Could we have an example program with the next revision please,
perhaps as part of the commit message?

And, please also some text suitable for inclusion in the linkat(2)
manual page.

Thanks,

Michael

> Patch 1 implements the VFS support for this flag. The implementation
> resembles sys_renameat2(), and I took care to preserve all of the
> original error cases and make the new error cases consistent with
> rename.
> 
> Previously, we discussed extending renameat2() instead of linkat() for
> this, but this makes a mess of rename and also forces us to special-case
> the parent directory for O_TMPFILEs in implementations of
> i_op->rename(), so I still think linkat() is a better fit.
> 
> Patch 2 adds support for AT_REPLACE to Btrfs. That's the codebase I'm
> most familiar with so that's where I started, but it should be
> straightforward to implement for other filesystems. v1 of this series
> had some incorrect dentry fiddling, so now I just unhash the replaced
> dentry for simplicity.
> 
> Please take a look.
> 
> Thanks!
> 
> Cc: Xi Wang <xi@cs.washington.edu>
> 
> Omar Sandoval (2):
>   fs: add AT_REPLACE flag for linkat() which replaces the target
>   Btrfs: add support for linkat() AT_REPLACE
> 
>  fs/btrfs/inode.c           |  65 ++++++++++++-
>  fs/ecryptfs/inode.c        |   2 +-
>  fs/namei.c                 | 181 +++++++++++++++++++++++++++++--------
>  fs/nfsd/vfs.c              |   2 +-
>  fs/overlayfs/overlayfs.h   |   2 +-
>  include/linux/fs.h         |   3 +-
>  include/uapi/linux/fcntl.h |   1 +
>  7 files changed, 211 insertions(+), 45 deletions(-)
> 


-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/

  parent reply	other threads:[~2018-04-27 12:00 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-24  6:19 [RFC PATCH v3 0/2] fs: add AT_REPLACE flag for linkat() Omar Sandoval
2018-04-24  6:19 ` [RFC PATCH v3 1/2] fs: add AT_REPLACE flag for linkat() which replaces the target Omar Sandoval
2018-04-24 22:14   ` Omar Sandoval
2018-04-24  6:19 ` [RFC PATCH v3 2/2] Btrfs: add support for linkat() AT_REPLACE Omar Sandoval
2018-04-24 13:21 ` [RFC PATCH v3 0/2] fs: add AT_REPLACE flag for linkat() Christoph Hellwig
2018-04-24 15:26   ` Omar Sandoval
2018-04-26  7:49     ` Omar Sandoval
2018-04-27 12:00 ` Michael Kerrisk (man-pages) [this message]
2018-05-04 18:29   ` Omar Sandoval
2018-05-04 18:30 ` Omar Sandoval

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=ba06a3ff-6569-749f-cbc5-f597db65d347@gmail.com \
    --to=mtk.manpages@gmail.com \
    --cc=kernel-team@fb.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=osandov@osandov.com \
    --cc=torvalds@linux-foundation.org \
    --cc=viro@zeniv.linux.org.uk \
    --cc=xi@cs.washington.edu \
    /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).