提交 7ee66c03 编写于 作者: C Christoph Hellwig 提交者: Darrick J. Wong

iomap: move IOMAP_F_BOUNDARY to gfs2

Just define a range of fs specific flags and use that in gfs2 instead of
exposing this internal flag globally.
Signed-off-by: NChristoph Hellwig <hch@lst.de>
Reviewed-by: NDave Chinner <dchinner@redhat.com>
Reviewed-by: NDarrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: NDarrick J. Wong <darrick.wong@oracle.com>
上级 9ecac0ef
...@@ -683,6 +683,8 @@ static void gfs2_stuffed_iomap(struct inode *inode, struct iomap *iomap) ...@@ -683,6 +683,8 @@ static void gfs2_stuffed_iomap(struct inode *inode, struct iomap *iomap)
iomap->type = IOMAP_INLINE; iomap->type = IOMAP_INLINE;
} }
#define IOMAP_F_GFS2_BOUNDARY IOMAP_F_PRIVATE
/** /**
* gfs2_iomap_begin - Map blocks from an inode to disk blocks * gfs2_iomap_begin - Map blocks from an inode to disk blocks
* @inode: The inode * @inode: The inode
...@@ -774,7 +776,7 @@ int gfs2_iomap_begin(struct inode *inode, loff_t pos, loff_t length, ...@@ -774,7 +776,7 @@ int gfs2_iomap_begin(struct inode *inode, loff_t pos, loff_t length,
bh = mp.mp_bh[ip->i_height - 1]; bh = mp.mp_bh[ip->i_height - 1];
len = gfs2_extent_length(bh->b_data, bh->b_size, ptr, lend - lblock, &eob); len = gfs2_extent_length(bh->b_data, bh->b_size, ptr, lend - lblock, &eob);
if (eob) if (eob)
iomap->flags |= IOMAP_F_BOUNDARY; iomap->flags |= IOMAP_F_GFS2_BOUNDARY;
iomap->length = (u64)len << inode->i_blkbits; iomap->length = (u64)len << inode->i_blkbits;
out_release: out_release:
...@@ -846,12 +848,12 @@ int gfs2_block_map(struct inode *inode, sector_t lblock, ...@@ -846,12 +848,12 @@ int gfs2_block_map(struct inode *inode, sector_t lblock,
if (iomap.length > bh_map->b_size) { if (iomap.length > bh_map->b_size) {
iomap.length = bh_map->b_size; iomap.length = bh_map->b_size;
iomap.flags &= ~IOMAP_F_BOUNDARY; iomap.flags &= ~IOMAP_F_GFS2_BOUNDARY;
} }
if (iomap.addr != IOMAP_NULL_ADDR) if (iomap.addr != IOMAP_NULL_ADDR)
map_bh(bh_map, inode->i_sb, iomap.addr >> inode->i_blkbits); map_bh(bh_map, inode->i_sb, iomap.addr >> inode->i_blkbits);
bh_map->b_size = iomap.length; bh_map->b_size = iomap.length;
if (iomap.flags & IOMAP_F_BOUNDARY) if (iomap.flags & IOMAP_F_GFS2_BOUNDARY)
set_buffer_boundary(bh_map); set_buffer_boundary(bh_map);
if (iomap.flags & IOMAP_F_NEW) if (iomap.flags & IOMAP_F_NEW)
set_buffer_new(bh_map); set_buffer_new(bh_map);
......
...@@ -27,8 +27,7 @@ struct vm_fault; ...@@ -27,8 +27,7 @@ struct vm_fault;
* written data and requires fdatasync to commit them to persistent storage. * written data and requires fdatasync to commit them to persistent storage.
*/ */
#define IOMAP_F_NEW 0x01 /* blocks have been newly allocated */ #define IOMAP_F_NEW 0x01 /* blocks have been newly allocated */
#define IOMAP_F_BOUNDARY 0x02 /* mapping ends at metadata boundary */ #define IOMAP_F_DIRTY 0x02 /* uncommitted metadata */
#define IOMAP_F_DIRTY 0x04 /* uncommitted metadata */
/* /*
* Flags that only need to be reported for IOMAP_REPORT requests: * Flags that only need to be reported for IOMAP_REPORT requests:
...@@ -36,6 +35,12 @@ struct vm_fault; ...@@ -36,6 +35,12 @@ struct vm_fault;
#define IOMAP_F_MERGED 0x10 /* contains multiple blocks/extents */ #define IOMAP_F_MERGED 0x10 /* contains multiple blocks/extents */
#define IOMAP_F_SHARED 0x20 /* block shared with another file */ #define IOMAP_F_SHARED 0x20 /* block shared with another file */
/*
* Flags from 0x1000 up are for file system specific usage:
*/
#define IOMAP_F_PRIVATE 0x1000
/* /*
* Magic value for addr: * Magic value for addr:
*/ */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册