提交 797f4277 编写于 作者: M Miao Xie 提交者: Chris Mason

Btrfs: use existing align macros in btrfs_allocate()

The kernel developers have implemented some often-used align macros, we should
use them instead of the complex code.
Signed-off-by: NMiao Xie <miaox@cn.fujitsu.com>
Signed-off-by: NChris Mason <chris.mason@fusionio.com>
上级 af1be4f8
...@@ -2054,12 +2054,12 @@ static long btrfs_fallocate(struct file *file, int mode, ...@@ -2054,12 +2054,12 @@ static long btrfs_fallocate(struct file *file, int mode,
u64 alloc_end; u64 alloc_end;
u64 alloc_hint = 0; u64 alloc_hint = 0;
u64 locked_end; u64 locked_end;
u64 mask = BTRFS_I(inode)->root->sectorsize - 1;
struct extent_map *em; struct extent_map *em;
int blocksize = BTRFS_I(inode)->root->sectorsize;
int ret; int ret;
alloc_start = offset & ~mask; alloc_start = round_down(offset, blocksize);
alloc_end = (offset + len + mask) & ~mask; alloc_end = round_up(offset + len, blocksize);
/* Make sure we aren't being give some crap mode */ /* Make sure we aren't being give some crap mode */
if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE)) if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE))
...@@ -2140,7 +2140,7 @@ static long btrfs_fallocate(struct file *file, int mode, ...@@ -2140,7 +2140,7 @@ static long btrfs_fallocate(struct file *file, int mode,
} }
last_byte = min(extent_map_end(em), alloc_end); last_byte = min(extent_map_end(em), alloc_end);
actual_end = min_t(u64, extent_map_end(em), offset + len); actual_end = min_t(u64, extent_map_end(em), offset + len);
last_byte = (last_byte + mask) & ~mask; last_byte = ALIGN(last_byte, blocksize);
if (em->block_start == EXTENT_MAP_HOLE || if (em->block_start == EXTENT_MAP_HOLE ||
(cur_offset >= inode->i_size && (cur_offset >= inode->i_size &&
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册