]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: teach get_bmapx about shared extents and the CoW fork
authorDarrick J. Wong <darrick.wong@oracle.com>
Tue, 25 Oct 2016 01:42:12 +0000 (12:42 +1100)
committerDave Chinner <david@fromorbit.com>
Tue, 25 Oct 2016 01:42:12 +0000 (12:42 +1100)
Source kernel commit: f86f403794b1446b68afb3c233d4c0bc0e93b654

Teach xfs_getbmapx how to report shared extents and CoW fork contents
accurately in the bmap output by querying the refcount btree
appropriately.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
libxfs/xfs_fs.h

index f291a5352d7fff8593388b0c9f880c04dd1c7811..bb70066ee42b78ab443fe35cdc5ef79af689701a 100644 (file)
@@ -105,14 +105,16 @@ struct getbmapx {
 #define BMV_IF_PREALLOC                0x4     /* rtn status BMV_OF_PREALLOC if req */
 #define BMV_IF_DELALLOC                0x8     /* rtn status BMV_OF_DELALLOC if req */
 #define BMV_IF_NO_HOLES                0x10    /* Do not return holes */
+#define BMV_IF_COWFORK         0x20    /* return CoW fork rather than data */
 #define BMV_IF_VALID   \
        (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC|  \
-        BMV_IF_DELALLOC|BMV_IF_NO_HOLES)
+        BMV_IF_DELALLOC|BMV_IF_NO_HOLES|BMV_IF_COWFORK)
 
 /*     bmv_oflags values - returned for each non-header segment */
 #define BMV_OF_PREALLOC                0x1     /* segment = unwritten pre-allocation */
 #define BMV_OF_DELALLOC                0x2     /* segment = delayed allocation */
 #define BMV_OF_LAST            0x4     /* segment is the last in the file */
+#define BMV_OF_SHARED          0x8     /* segment shared with another file */
 
 /*
  * Structure for XFS_IOC_FSSETDM.