diff options
author | Darrick J. Wong <darrick.wong@oracle.com> | 2017-02-03 02:14:01 +0300 |
---|---|---|
committer | Darrick J. Wong <darrick.wong@oracle.com> | 2017-02-03 02:14:01 +0300 |
commit | 05a630d76bd3f39baf0eecfa305bed2820796dee (patch) | |
tree | 9c48c702ed196b44ab897c69ac6abbfa3b99fd92 /fs/xfs/xfs_reflink.h | |
parent | de14c5f541e78c59006bee56f6c5c2ef1ca07272 (diff) | |
download | linux-05a630d76bd3f39baf0eecfa305bed2820796dee.tar.xz |
xfs: allow unwritten extents in the CoW fork
In the data fork, we only allow extents to perform the following state
transitions:
delay -> real <-> unwritten
There's no way to move directly from a delalloc reservation to an
/unwritten/ allocated extent. However, for the CoW fork we want to be
able to do the following to each extent:
delalloc -> unwritten -> written -> remapped to data fork
This will help us to avoid a race in the speculative CoW preallocation
code between a first thread that is allocating a CoW extent and a second
thread that is remapping part of a file after a write. In order to do
this, however, we need two things: first, we have to be able to
transition from da to unwritten, and second the function that converts
between real and unwritten has to be made aware of the cow fork. Do
both of those things.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'fs/xfs/xfs_reflink.h')
0 files changed, 0 insertions, 0 deletions