提交 e6a4b37f 编写于 作者: T Tim Shimmin 提交者: Lachlan McIlroy

[XFS] Remove the BPCSHIFT and NB* based macros from XFS.

The BPCSHIFT based macros, btoc*, ctob*, offtoc* and ctooff are either not
used or don't need to be used. The NDPP, NDPP, NBBY macros don't need to
be used but instead are replaced directly by PAGE_SIZE and PAGE_CACHE_SIZE
where appropriate. Initial patch and motivation from Nicolas Kaiser.

SGI-PV: 971186
SGI-Modid: xfs-linux-melb:xfs-kern:30096a
Signed-off-by: NTim Shimmin <tes@sgi.com>
Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
上级 f7b7c367
...@@ -138,43 +138,17 @@ ...@@ -138,43 +138,17 @@
#define spinlock_destroy(lock) #define spinlock_destroy(lock)
#define NBPP PAGE_SIZE
#define NDPP (1 << (PAGE_SHIFT - 9))
#define NBBY 8 /* number of bits per byte */ #define NBBY 8 /* number of bits per byte */
#define NBPC PAGE_SIZE /* Number of bytes per click */
#define BPCSHIFT PAGE_SHIFT /* LOG2(NBPC) if exact */
/* /*
* Size of block device i/o is parameterized here. * Size of block device i/o is parameterized here.
* Currently the system supports page-sized i/o. * Currently the system supports page-sized i/o.
*/ */
#define BLKDEV_IOSHIFT BPCSHIFT #define BLKDEV_IOSHIFT PAGE_CACHE_SHIFT
#define BLKDEV_IOSIZE (1<<BLKDEV_IOSHIFT) #define BLKDEV_IOSIZE (1<<BLKDEV_IOSHIFT)
/* number of BB's per block device block */ /* number of BB's per block device block */
#define BLKDEV_BB BTOBB(BLKDEV_IOSIZE) #define BLKDEV_BB BTOBB(BLKDEV_IOSIZE)
/* bytes to clicks */
#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
#define btoc64(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
#define btoct64(x) ((__uint64_t)(x)>>BPCSHIFT)
/* off_t bytes to clicks */
#define offtoc(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
#define offtoct(x) ((xfs_off_t)(x)>>BPCSHIFT)
/* clicks to off_t bytes */
#define ctooff(x) ((xfs_off_t)(x)<<BPCSHIFT)
/* clicks to bytes */
#define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
#define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
/* bytes to clicks */
#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
#define ENOATTR ENODATA /* Attribute not found */ #define ENOATTR ENODATA /* Attribute not found */
#define EWRONGFS EINVAL /* Mount with wrong filesystem type */ #define EWRONGFS EINVAL /* Mount with wrong filesystem type */
#define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */ #define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
......
...@@ -243,8 +243,7 @@ xfs_read( ...@@ -243,8 +243,7 @@ xfs_read(
if (unlikely(ioflags & IO_ISDIRECT)) { if (unlikely(ioflags & IO_ISDIRECT)) {
if (VN_CACHED(vp)) if (VN_CACHED(vp))
ret = xfs_flushinval_pages(ip, ret = xfs_flushinval_pages(ip, (*offset & PAGE_CACHE_MASK),
ctooff(offtoct(*offset)),
-1, FI_REMAPF_LOCKED); -1, FI_REMAPF_LOCKED);
mutex_unlock(&inode->i_mutex); mutex_unlock(&inode->i_mutex);
if (ret) { if (ret) {
...@@ -731,9 +730,9 @@ xfs_write( ...@@ -731,9 +730,9 @@ xfs_write(
if (VN_CACHED(vp)) { if (VN_CACHED(vp)) {
WARN_ON(need_i_mutex == 0); WARN_ON(need_i_mutex == 0);
xfs_inval_cached_trace(xip, pos, -1, xfs_inval_cached_trace(xip, pos, -1,
ctooff(offtoct(pos)), -1); (pos & PAGE_CACHE_MASK), -1);
error = xfs_flushinval_pages(xip, error = xfs_flushinval_pages(xip,
ctooff(offtoct(pos)), (pos & PAGE_CACHE_MASK),
-1, FI_REMAPF_LOCKED); -1, FI_REMAPF_LOCKED);
if (error) if (error)
goto out_unlock_internal; goto out_unlock_internal;
......
...@@ -52,8 +52,8 @@ extern kmem_zone_t *qm_dqtrxzone; ...@@ -52,8 +52,8 @@ extern kmem_zone_t *qm_dqtrxzone;
/* /*
* Dquot hashtable constants/threshold values. * Dquot hashtable constants/threshold values.
*/ */
#define XFS_QM_HASHSIZE_LOW (NBPP / sizeof(xfs_dqhash_t)) #define XFS_QM_HASHSIZE_LOW (PAGE_SIZE / sizeof(xfs_dqhash_t))
#define XFS_QM_HASHSIZE_HIGH ((NBPP * 4) / sizeof(xfs_dqhash_t)) #define XFS_QM_HASHSIZE_HIGH ((PAGE_SIZE * 4) / sizeof(xfs_dqhash_t))
/* /*
* This defines the unit of allocation of dquots. * This defines the unit of allocation of dquots.
......
...@@ -2830,11 +2830,11 @@ xfs_bmap_btalloc( ...@@ -2830,11 +2830,11 @@ xfs_bmap_btalloc(
args.prod = align; args.prod = align;
if ((args.mod = (xfs_extlen_t)do_mod(ap->off, args.prod))) if ((args.mod = (xfs_extlen_t)do_mod(ap->off, args.prod)))
args.mod = (xfs_extlen_t)(args.prod - args.mod); args.mod = (xfs_extlen_t)(args.prod - args.mod);
} else if (mp->m_sb.sb_blocksize >= NBPP) { } else if (mp->m_sb.sb_blocksize >= PAGE_CACHE_SIZE) {
args.prod = 1; args.prod = 1;
args.mod = 0; args.mod = 0;
} else { } else {
args.prod = NBPP >> mp->m_sb.sb_blocklog; args.prod = PAGE_CACHE_SIZE >> mp->m_sb.sb_blocklog;
if ((args.mod = (xfs_extlen_t)(do_mod(ap->off, args.prod)))) if ((args.mod = (xfs_extlen_t)(do_mod(ap->off, args.prod))))
args.mod = (xfs_extlen_t)(args.prod - args.mod); args.mod = (xfs_extlen_t)(args.prod - args.mod);
} }
......
...@@ -399,7 +399,7 @@ xfs_bulkstat( ...@@ -399,7 +399,7 @@ xfs_bulkstat(
(XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog); (XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog);
nimask = ~(nicluster - 1); nimask = ~(nicluster - 1);
nbcluster = nicluster >> mp->m_sb.sb_inopblog; nbcluster = nicluster >> mp->m_sb.sb_inopblog;
irbuf = kmem_zalloc_greedy(&irbsize, NBPC, NBPC * 4, irbuf = kmem_zalloc_greedy(&irbsize, PAGE_SIZE, PAGE_SIZE * 4,
KM_SLEEP | KM_MAYFAIL | KM_LARGE); KM_SLEEP | KM_MAYFAIL | KM_LARGE);
nirbuf = irbsize / sizeof(*irbuf); nirbuf = irbsize / sizeof(*irbuf);
...@@ -830,7 +830,7 @@ xfs_inumbers( ...@@ -830,7 +830,7 @@ xfs_inumbers(
agino = XFS_INO_TO_AGINO(mp, ino); agino = XFS_INO_TO_AGINO(mp, ino);
left = *count; left = *count;
*count = 0; *count = 0;
bcount = MIN(left, (int)(NBPP / sizeof(*buffer))); bcount = MIN(left, (int)(PAGE_SIZE / sizeof(*buffer)));
buffer = kmem_alloc(bcount * sizeof(*buffer), KM_SLEEP); buffer = kmem_alloc(bcount * sizeof(*buffer), KM_SLEEP);
error = bufidx = 0; error = bufidx = 0;
cur = NULL; cur = NULL;
......
...@@ -1552,7 +1552,7 @@ xlog_dealloc_log(xlog_t *log) ...@@ -1552,7 +1552,7 @@ xlog_dealloc_log(xlog_t *log)
tic = log->l_unmount_free; tic = log->l_unmount_free;
while (tic) { while (tic) {
next_tic = tic->t_next; next_tic = tic->t_next;
kmem_free(tic, NBPP); kmem_free(tic, PAGE_SIZE);
tic = next_tic; tic = next_tic;
} }
} }
...@@ -3161,13 +3161,13 @@ xlog_state_ticket_alloc(xlog_t *log) ...@@ -3161,13 +3161,13 @@ xlog_state_ticket_alloc(xlog_t *log)
xlog_ticket_t *t_list; xlog_ticket_t *t_list;
xlog_ticket_t *next; xlog_ticket_t *next;
xfs_caddr_t buf; xfs_caddr_t buf;
uint i = (NBPP / sizeof(xlog_ticket_t)) - 2; uint i = (PAGE_SIZE / sizeof(xlog_ticket_t)) - 2;
/* /*
* The kmem_zalloc may sleep, so we shouldn't be holding the * The kmem_zalloc may sleep, so we shouldn't be holding the
* global lock. XXXmiken: may want to use zone allocator. * global lock. XXXmiken: may want to use zone allocator.
*/ */
buf = (xfs_caddr_t) kmem_zalloc(NBPP, KM_SLEEP); buf = (xfs_caddr_t) kmem_zalloc(PAGE_SIZE, KM_SLEEP);
spin_lock(&log->l_icloglock); spin_lock(&log->l_icloglock);
......
...@@ -4164,15 +4164,12 @@ xfs_free_file_space( ...@@ -4164,15 +4164,12 @@ xfs_free_file_space(
vn_iowait(ip); /* wait for the completion of any pending DIOs */ vn_iowait(ip); /* wait for the completion of any pending DIOs */
} }
rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, NBPP); rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, PAGE_CACHE_SIZE);
ioffset = offset & ~(rounding - 1); ioffset = offset & ~(rounding - 1);
if (VN_CACHED(vp) != 0) { if (VN_CACHED(vp) != 0) {
xfs_inval_cached_trace(ip, ioffset, -1, xfs_inval_cached_trace(ip, ioffset, -1, ioffset, -1);
ctooff(offtoct(ioffset)), -1); error = xfs_flushinval_pages(ip, ioffset, -1, FI_REMAPF_LOCKED);
error = xfs_flushinval_pages(ip,
ctooff(offtoct(ioffset)),
-1, FI_REMAPF_LOCKED);
if (error) if (error)
goto out_unlock_iolock; goto out_unlock_iolock;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册