diff options
author | Darrick J. Wong <darrick.wong@oracle.com> | 2016-10-03 12:11:47 -0400 |
---|---|---|
committer | Darrick J. Wong <darrick.wong@oracle.com> | 2016-10-05 19:26:29 -0400 |
commit | 0e07c039bac5f6ce7e3bc512ab9efb4aaa76da94 (patch) | |
tree | 955c79cb97ffb167d03ed0fa82c8ebbc248b1d69 | |
parent | 80de462e090c2c346ca6ec6344b326e81e8cef84 (diff) |
xfs: add shared rmap map/unmap/convert log item types
Wire up some rmap log redo item type codes to map, unmap, or convert
shared data block extents. The actual log item recovery comes in a
later patch.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
-rw-r--r-- | fs/xfs/libxfs/xfs_log_format.h | 3 | ||||
-rw-r--r-- | fs/xfs/xfs_rmap_item.c | 3 | ||||
-rw-r--r-- | fs/xfs/xfs_trans_rmap.c | 9 |
3 files changed, 15 insertions, 0 deletions
diff --git a/fs/xfs/libxfs/xfs_log_format.h b/fs/xfs/libxfs/xfs_log_format.h index 364ce6fcc213..083cdd6d6c28 100644 --- a/fs/xfs/libxfs/xfs_log_format.h +++ b/fs/xfs/libxfs/xfs_log_format.h | |||
@@ -635,8 +635,11 @@ struct xfs_map_extent { | |||
635 | 635 | ||
636 | /* rmap me_flags: upper bits are flags, lower byte is type code */ | 636 | /* rmap me_flags: upper bits are flags, lower byte is type code */ |
637 | #define XFS_RMAP_EXTENT_MAP 1 | 637 | #define XFS_RMAP_EXTENT_MAP 1 |
638 | #define XFS_RMAP_EXTENT_MAP_SHARED 2 | ||
638 | #define XFS_RMAP_EXTENT_UNMAP 3 | 639 | #define XFS_RMAP_EXTENT_UNMAP 3 |
640 | #define XFS_RMAP_EXTENT_UNMAP_SHARED 4 | ||
639 | #define XFS_RMAP_EXTENT_CONVERT 5 | 641 | #define XFS_RMAP_EXTENT_CONVERT 5 |
642 | #define XFS_RMAP_EXTENT_CONVERT_SHARED 6 | ||
640 | #define XFS_RMAP_EXTENT_ALLOC 7 | 643 | #define XFS_RMAP_EXTENT_ALLOC 7 |
641 | #define XFS_RMAP_EXTENT_FREE 8 | 644 | #define XFS_RMAP_EXTENT_FREE 8 |
642 | #define XFS_RMAP_EXTENT_TYPE_MASK 0xFF | 645 | #define XFS_RMAP_EXTENT_TYPE_MASK 0xFF |
diff --git a/fs/xfs/xfs_rmap_item.c b/fs/xfs/xfs_rmap_item.c index 0432a459871c..19d817e3e1d9 100644 --- a/fs/xfs/xfs_rmap_item.c +++ b/fs/xfs/xfs_rmap_item.c | |||
@@ -441,8 +441,11 @@ xfs_rui_recover( | |||
441 | XFS_FSB_TO_DADDR(mp, rmap->me_startblock)); | 441 | XFS_FSB_TO_DADDR(mp, rmap->me_startblock)); |
442 | switch (rmap->me_flags & XFS_RMAP_EXTENT_TYPE_MASK) { | 442 | switch (rmap->me_flags & XFS_RMAP_EXTENT_TYPE_MASK) { |
443 | case XFS_RMAP_EXTENT_MAP: | 443 | case XFS_RMAP_EXTENT_MAP: |
444 | case XFS_RMAP_EXTENT_MAP_SHARED: | ||
444 | case XFS_RMAP_EXTENT_UNMAP: | 445 | case XFS_RMAP_EXTENT_UNMAP: |
446 | case XFS_RMAP_EXTENT_UNMAP_SHARED: | ||
445 | case XFS_RMAP_EXTENT_CONVERT: | 447 | case XFS_RMAP_EXTENT_CONVERT: |
448 | case XFS_RMAP_EXTENT_CONVERT_SHARED: | ||
446 | case XFS_RMAP_EXTENT_ALLOC: | 449 | case XFS_RMAP_EXTENT_ALLOC: |
447 | case XFS_RMAP_EXTENT_FREE: | 450 | case XFS_RMAP_EXTENT_FREE: |
448 | op_ok = true; | 451 | op_ok = true; |
diff --git a/fs/xfs/xfs_trans_rmap.c b/fs/xfs/xfs_trans_rmap.c index 5a50ef881568..9ead064b5e90 100644 --- a/fs/xfs/xfs_trans_rmap.c +++ b/fs/xfs/xfs_trans_rmap.c | |||
@@ -48,12 +48,21 @@ xfs_trans_set_rmap_flags( | |||
48 | case XFS_RMAP_MAP: | 48 | case XFS_RMAP_MAP: |
49 | rmap->me_flags |= XFS_RMAP_EXTENT_MAP; | 49 | rmap->me_flags |= XFS_RMAP_EXTENT_MAP; |
50 | break; | 50 | break; |
51 | case XFS_RMAP_MAP_SHARED: | ||
52 | rmap->me_flags |= XFS_RMAP_EXTENT_MAP_SHARED; | ||
53 | break; | ||
51 | case XFS_RMAP_UNMAP: | 54 | case XFS_RMAP_UNMAP: |
52 | rmap->me_flags |= XFS_RMAP_EXTENT_UNMAP; | 55 | rmap->me_flags |= XFS_RMAP_EXTENT_UNMAP; |
53 | break; | 56 | break; |
57 | case XFS_RMAP_UNMAP_SHARED: | ||
58 | rmap->me_flags |= XFS_RMAP_EXTENT_UNMAP_SHARED; | ||
59 | break; | ||
54 | case XFS_RMAP_CONVERT: | 60 | case XFS_RMAP_CONVERT: |
55 | rmap->me_flags |= XFS_RMAP_EXTENT_CONVERT; | 61 | rmap->me_flags |= XFS_RMAP_EXTENT_CONVERT; |
56 | break; | 62 | break; |
63 | case XFS_RMAP_CONVERT_SHARED: | ||
64 | rmap->me_flags |= XFS_RMAP_EXTENT_CONVERT_SHARED; | ||
65 | break; | ||
57 | case XFS_RMAP_ALLOC: | 66 | case XFS_RMAP_ALLOC: |
58 | rmap->me_flags |= XFS_RMAP_EXTENT_ALLOC; | 67 | rmap->me_flags |= XFS_RMAP_EXTENT_ALLOC; |
59 | break; | 68 | break; |