mbox series

[v4,0/3] Add full support for cloning inline extents

Message ID 20200228130419.16719-1-fdmanana@kernel.org (mailing list archive)
Headers show
Series Add full support for cloning inline extents | expand

Message

Filipe Manana Feb. 28, 2020, 1:04 p.m. UTC
From: Filipe Manana <fdmanana@suse.com>

This patchset adds support for currently unsupported cases of reflink
operations that cover a file range that has inline extents, more details
on why/how in patch 3/3.

It also starts by moving all the reflink code out of ioctl.c into a new
file named reflink.c (like xfs does) since this code is quite significant
in size and has grown over the years.

V4: Updated patch 3 to fix a deadlock due to allocating space while holding
    a transaction open. No changes to the first two patches.

V3: Updated first patch to introduce reflink.h as well, besides reflink.c.

V2: Removed third patch from the previous patchset version. Since the full
    page ends up getting written, it's not necessary to read it before
    writing to it in case it's not uptodate. The final patch, which is
    now patch number 3, ends up being simpler as well.

Filipe Manana (3):
  Btrfs: move all reflink implementation code into its own file
  Btrfs: simplify inline extent handling when doing reflinks
  Btrfs: implement full reflink support for inline extents

 fs/btrfs/Makefile  |   2 +-
 fs/btrfs/ctree.h   |   3 -
 fs/btrfs/file.c    |   1 +
 fs/btrfs/ioctl.c   | 733 -----------------------------------------------
 fs/btrfs/reflink.c | 811 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 fs/btrfs/reflink.h |  12 +
 6 files changed, 825 insertions(+), 737 deletions(-)
 create mode 100644 fs/btrfs/reflink.c
 create mode 100644 fs/btrfs/reflink.h

Comments

David Sterba Feb. 28, 2020, 1:49 p.m. UTC | #1
On Fri, Feb 28, 2020 at 01:04:16PM +0000, fdmanana@kernel.org wrote:
> From: Filipe Manana <fdmanana@suse.com>
> 
> This patchset adds support for currently unsupported cases of reflink
> operations that cover a file range that has inline extents, more details
> on why/how in patch 3/3.
> 
> It also starts by moving all the reflink code out of ioctl.c into a new
> file named reflink.c (like xfs does) since this code is quite significant
> in size and has grown over the years.
> 
> V4: Updated patch 3 to fix a deadlock due to allocating space while holding
>     a transaction open. No changes to the first two patches.

V4 replaced in for-next, thanks.
David Sterba March 6, 2020, 8:19 p.m. UTC | #2
On Fri, Feb 28, 2020 at 02:49:47PM +0100, David Sterba wrote:
> On Fri, Feb 28, 2020 at 01:04:16PM +0000, fdmanana@kernel.org wrote:
> > From: Filipe Manana <fdmanana@suse.com>
> > 
> > This patchset adds support for currently unsupported cases of reflink
> > operations that cover a file range that has inline extents, more details
> > on why/how in patch 3/3.
> > 
> > It also starts by moving all the reflink code out of ioctl.c into a new
> > file named reflink.c (like xfs does) since this code is quite significant
> > in size and has grown over the years.
> > 
> > V4: Updated patch 3 to fix a deadlock due to allocating space while holding
> >     a transaction open. No changes to the first two patches.
> 
> V4 replaced in for-next, thanks.

Moved to misc-next.