diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2015-06-19 00:32:42 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-07-06 17:39:56 -0400 |
commit | 8d9dcf14367388674f4d792f494e6f1d6536ac95 (patch) | |
tree | 6164190f8f25412700bb8d7dedae19afe7fe6cca /fs/ufs | |
parent | bbb3eb9d3432ce55a620778ecf5670fa7942090e (diff) | |
download | lwn-8d9dcf14367388674f4d792f494e6f1d6536ac95.tar.gz lwn-8d9dcf14367388674f4d792f494e6f1d6536ac95.zip |
ufs_getfrag_block(): get rid of macro jungles
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/ufs')
-rw-r--r-- | fs/ufs/inode.c | 51 |
1 files changed, 22 insertions, 29 deletions
diff --git a/fs/ufs/inode.c b/fs/ufs/inode.c index d65a89030c91..156ba3c26906 100644 --- a/fs/ufs/inode.c +++ b/fs/ufs/inode.c @@ -465,49 +465,42 @@ static int ufs_getfrag_block(struct inode *inode, sector_t fragment, struct buff err = 0; ptr = fragment; - /* - * ok, these macros clean the logic up a bit and make - * it much more readable: - */ -#define GET_INODE_DATABLOCK(x) \ - ufs_inode_getfrag(inode, x, fragment, 1, &err, &phys, &new,\ - bh_result->b_page) -#define GET_INODE_PTR(x) \ - ufs_inode_getfrag(inode, x, fragment, uspi->s_fpb, &err, NULL, NULL,\ - bh_result->b_page) -#define GET_INDIRECT_DATABLOCK(x) \ - ufs_inode_getblock(inode, bh, x, fragment, \ - &err, &phys, &new, bh_result->b_page) -#define GET_INDIRECT_PTR(x) \ - ufs_inode_getblock(inode, bh, x, fragment, \ - &err, NULL, NULL, NULL) - if (depth == 1) { - bh = GET_INODE_DATABLOCK(ptr); + bh = ufs_inode_getfrag(inode, ptr, fragment, 1, &err, &phys, + &new, bh_result->b_page); goto out; } ptr -= UFS_NDIR_FRAGMENT; if (depth == 2) { - bh = GET_INODE_PTR(UFS_IND_FRAGMENT + (ptr >> uspi->s_apbshift)); + bh = ufs_inode_getfrag(inode, + UFS_IND_FRAGMENT + (ptr >> uspi->s_apbshift), + fragment, uspi->s_fpb, &err, NULL, NULL, + bh_result->b_page); goto get_indirect; } ptr -= 1 << (uspi->s_apbshift + uspi->s_fpbshift); if (depth == 3) { - bh = GET_INODE_PTR(UFS_DIND_FRAGMENT + (ptr >> uspi->s_2apbshift)); + bh = ufs_inode_getfrag(inode, + UFS_DIND_FRAGMENT + (ptr >> uspi->s_2apbshift), + fragment, uspi->s_fpb, &err, NULL, NULL, + bh_result->b_page); goto get_double; } ptr -= 1 << (uspi->s_2apbshift + uspi->s_fpbshift); - bh = GET_INODE_PTR(UFS_TIND_FRAGMENT + (ptr >> uspi->s_3apbshift)); - bh = GET_INDIRECT_PTR((ptr >> uspi->s_2apbshift) & uspi->s_apbmask); + bh = ufs_inode_getfrag(inode, + UFS_TIND_FRAGMENT + (ptr >> uspi->s_3apbshift), + fragment, uspi->s_fpb, &err, NULL, NULL, + bh_result->b_page); + bh = ufs_inode_getblock(inode, bh, + (ptr >> uspi->s_2apbshift) & uspi->s_apbmask, + fragment, &err, NULL, NULL, NULL); get_double: - bh = GET_INDIRECT_PTR((ptr >> uspi->s_apbshift) & uspi->s_apbmask); + bh = ufs_inode_getblock(inode, bh, + (ptr >> uspi->s_apbshift) & uspi->s_apbmask, + fragment, &err, NULL, NULL, NULL); get_indirect: - bh = GET_INDIRECT_DATABLOCK(ptr & uspi->s_apbmask); - -#undef GET_INODE_DATABLOCK -#undef GET_INODE_PTR -#undef GET_INDIRECT_DATABLOCK -#undef GET_INDIRECT_PTR + bh = ufs_inode_getblock(inode, bh, ptr & uspi->s_apbmask, fragment, + &err, &phys, &new, bh_result->b_page); out: if (err) |