aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs')
-rw-r--r--fs/xfs/linux-2.6/xfs_linux.h28
-rw-r--r--fs/xfs/linux-2.6/xfs_lrw.c9
-rw-r--r--fs/xfs/quota/xfs_qm.h4
-rw-r--r--fs/xfs/xfs_bmap.c4
-rw-r--r--fs/xfs/xfs_itable.c4
-rw-r--r--fs/xfs/xfs_log.c6
-rw-r--r--fs/xfs/xfs_vnodeops.c9
7 files changed, 17 insertions, 47 deletions
diff --git a/fs/xfs/linux-2.6/xfs_linux.h b/fs/xfs/linux-2.6/xfs_linux.h
index 9bf4f7e965c7..3ca39c4e5d2a 100644
--- a/fs/xfs/linux-2.6/xfs_linux.h
+++ b/fs/xfs/linux-2.6/xfs_linux.h
@@ -138,43 +138,17 @@
138 138
139#define spinlock_destroy(lock) 139#define spinlock_destroy(lock)
140 140
141#define NBPP PAGE_SIZE
142#define NDPP (1 << (PAGE_SHIFT - 9))
143
144#define NBBY 8 /* number of bits per byte */ 141#define NBBY 8 /* number of bits per byte */
145#define NBPC PAGE_SIZE /* Number of bytes per click */
146#define BPCSHIFT PAGE_SHIFT /* LOG2(NBPC) if exact */
147 142
148/* 143/*
149 * Size of block device i/o is parameterized here. 144 * Size of block device i/o is parameterized here.
150 * Currently the system supports page-sized i/o. 145 * Currently the system supports page-sized i/o.
151 */ 146 */
152#define BLKDEV_IOSHIFT BPCSHIFT 147#define BLKDEV_IOSHIFT PAGE_CACHE_SHIFT
153#define BLKDEV_IOSIZE (1<<BLKDEV_IOSHIFT) 148#define BLKDEV_IOSIZE (1<<BLKDEV_IOSHIFT)
154/* number of BB's per block device block */ 149/* number of BB's per block device block */
155#define BLKDEV_BB BTOBB(BLKDEV_IOSIZE) 150#define BLKDEV_BB BTOBB(BLKDEV_IOSIZE)
156 151
157/* bytes to clicks */
158#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
159#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
160#define btoc64(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
161#define btoct64(x) ((__uint64_t)(x)>>BPCSHIFT)
162
163/* off_t bytes to clicks */
164#define offtoc(x) (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)
165#define offtoct(x) ((xfs_off_t)(x)>>BPCSHIFT)
166
167/* clicks to off_t bytes */
168#define ctooff(x) ((xfs_off_t)(x)<<BPCSHIFT)
169
170/* clicks to bytes */
171#define ctob(x) ((__psunsigned_t)(x)<<BPCSHIFT)
172#define btoct(x) ((__psunsigned_t)(x)>>BPCSHIFT)
173#define ctob64(x) ((__uint64_t)(x)<<BPCSHIFT)
174
175/* bytes to clicks */
176#define btoc(x) (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)
177
178#define ENOATTR ENODATA /* Attribute not found */ 152#define ENOATTR ENODATA /* Attribute not found */
179#define EWRONGFS EINVAL /* Mount with wrong filesystem type */ 153#define EWRONGFS EINVAL /* Mount with wrong filesystem type */
180#define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */ 154#define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
diff --git a/fs/xfs/linux-2.6/xfs_lrw.c b/fs/xfs/linux-2.6/xfs_lrw.c
index 19a1f077dbd6..6c3a846a5267 100644
--- a/fs/xfs/linux-2.6/xfs_lrw.c
+++ b/fs/xfs/linux-2.6/xfs_lrw.c
@@ -243,9 +243,8 @@ xfs_read(
243 243
244 if (unlikely(ioflags & IO_ISDIRECT)) { 244 if (unlikely(ioflags & IO_ISDIRECT)) {
245 if (VN_CACHED(vp)) 245 if (VN_CACHED(vp))
246 ret = xfs_flushinval_pages(ip, 246 ret = xfs_flushinval_pages(ip, (*offset & PAGE_CACHE_MASK),
247 ctooff(offtoct(*offset)), 247 -1, FI_REMAPF_LOCKED);
248 -1, FI_REMAPF_LOCKED);
249 mutex_unlock(&inode->i_mutex); 248 mutex_unlock(&inode->i_mutex);
250 if (ret) { 249 if (ret) {
251 xfs_iunlock(ip, XFS_IOLOCK_SHARED); 250 xfs_iunlock(ip, XFS_IOLOCK_SHARED);
@@ -731,9 +730,9 @@ retry:
731 if (VN_CACHED(vp)) { 730 if (VN_CACHED(vp)) {
732 WARN_ON(need_i_mutex == 0); 731 WARN_ON(need_i_mutex == 0);
733 xfs_inval_cached_trace(xip, pos, -1, 732 xfs_inval_cached_trace(xip, pos, -1,
734 ctooff(offtoct(pos)), -1); 733 (pos & PAGE_CACHE_MASK), -1);
735 error = xfs_flushinval_pages(xip, 734 error = xfs_flushinval_pages(xip,
736 ctooff(offtoct(pos)), 735 (pos & PAGE_CACHE_MASK),
737 -1, FI_REMAPF_LOCKED); 736 -1, FI_REMAPF_LOCKED);
738 if (error) 737 if (error)
739 goto out_unlock_internal; 738 goto out_unlock_internal;
diff --git a/fs/xfs/quota/xfs_qm.h b/fs/xfs/quota/xfs_qm.h
index 023400aa55a3..baf537c1c177 100644
--- a/fs/xfs/quota/xfs_qm.h
+++ b/fs/xfs/quota/xfs_qm.h
@@ -52,8 +52,8 @@ extern kmem_zone_t *qm_dqtrxzone;
52/* 52/*
53 * Dquot hashtable constants/threshold values. 53 * Dquot hashtable constants/threshold values.
54 */ 54 */
55#define XFS_QM_HASHSIZE_LOW (NBPP / sizeof(xfs_dqhash_t)) 55#define XFS_QM_HASHSIZE_LOW (PAGE_SIZE / sizeof(xfs_dqhash_t))
56#define XFS_QM_HASHSIZE_HIGH ((NBPP * 4) / sizeof(xfs_dqhash_t)) 56#define XFS_QM_HASHSIZE_HIGH ((PAGE_SIZE * 4) / sizeof(xfs_dqhash_t))
57 57
58/* 58/*
59 * This defines the unit of allocation of dquots. 59 * This defines the unit of allocation of dquots.
diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
index aca51e7e5c5a..1c0a5a585a82 100644
--- a/fs/xfs/xfs_bmap.c
+++ b/fs/xfs/xfs_bmap.c
@@ -2830,11 +2830,11 @@ xfs_bmap_btalloc(
2830 args.prod = align; 2830 args.prod = align;
2831 if ((args.mod = (xfs_extlen_t)do_mod(ap->off, args.prod))) 2831 if ((args.mod = (xfs_extlen_t)do_mod(ap->off, args.prod)))
2832 args.mod = (xfs_extlen_t)(args.prod - args.mod); 2832 args.mod = (xfs_extlen_t)(args.prod - args.mod);
2833 } else if (mp->m_sb.sb_blocksize >= NBPP) { 2833 } else if (mp->m_sb.sb_blocksize >= PAGE_CACHE_SIZE) {
2834 args.prod = 1; 2834 args.prod = 1;
2835 args.mod = 0; 2835 args.mod = 0;
2836 } else { 2836 } else {
2837 args.prod = NBPP >> mp->m_sb.sb_blocklog; 2837 args.prod = PAGE_CACHE_SIZE >> mp->m_sb.sb_blocklog;
2838 if ((args.mod = (xfs_extlen_t)(do_mod(ap->off, args.prod)))) 2838 if ((args.mod = (xfs_extlen_t)(do_mod(ap->off, args.prod))))
2839 args.mod = (xfs_extlen_t)(args.prod - args.mod); 2839 args.mod = (xfs_extlen_t)(args.prod - args.mod);
2840 } 2840 }
diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c
index d9ca3c0eb8cc..a451baaeede8 100644
--- a/fs/xfs/xfs_itable.c
+++ b/fs/xfs/xfs_itable.c
@@ -399,7 +399,7 @@ xfs_bulkstat(
399 (XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog); 399 (XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog);
400 nimask = ~(nicluster - 1); 400 nimask = ~(nicluster - 1);
401 nbcluster = nicluster >> mp->m_sb.sb_inopblog; 401 nbcluster = nicluster >> mp->m_sb.sb_inopblog;
402 irbuf = kmem_zalloc_greedy(&irbsize, NBPC, NBPC * 4, 402 irbuf = kmem_zalloc_greedy(&irbsize, PAGE_SIZE, PAGE_SIZE * 4,
403 KM_SLEEP | KM_MAYFAIL | KM_LARGE); 403 KM_SLEEP | KM_MAYFAIL | KM_LARGE);
404 nirbuf = irbsize / sizeof(*irbuf); 404 nirbuf = irbsize / sizeof(*irbuf);
405 405
@@ -830,7 +830,7 @@ xfs_inumbers(
830 agino = XFS_INO_TO_AGINO(mp, ino); 830 agino = XFS_INO_TO_AGINO(mp, ino);
831 left = *count; 831 left = *count;
832 *count = 0; 832 *count = 0;
833 bcount = MIN(left, (int)(NBPP / sizeof(*buffer))); 833 bcount = MIN(left, (int)(PAGE_SIZE / sizeof(*buffer)));
834 buffer = kmem_alloc(bcount * sizeof(*buffer), KM_SLEEP); 834 buffer = kmem_alloc(bcount * sizeof(*buffer), KM_SLEEP);
835 error = bufidx = 0; 835 error = bufidx = 0;
836 cur = NULL; 836 cur = NULL;
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
index 7ed15bdc32bf..4c86a26330a0 100644
--- a/fs/xfs/xfs_log.c
+++ b/fs/xfs/xfs_log.c
@@ -1552,7 +1552,7 @@ xlog_dealloc_log(xlog_t *log)
1552 tic = log->l_unmount_free; 1552 tic = log->l_unmount_free;
1553 while (tic) { 1553 while (tic) {
1554 next_tic = tic->t_next; 1554 next_tic = tic->t_next;
1555 kmem_free(tic, NBPP); 1555 kmem_free(tic, PAGE_SIZE);
1556 tic = next_tic; 1556 tic = next_tic;
1557 } 1557 }
1558 } 1558 }
@@ -3161,13 +3161,13 @@ xlog_state_ticket_alloc(xlog_t *log)
3161 xlog_ticket_t *t_list; 3161 xlog_ticket_t *t_list;
3162 xlog_ticket_t *next; 3162 xlog_ticket_t *next;
3163 xfs_caddr_t buf; 3163 xfs_caddr_t buf;
3164 uint i = (NBPP / sizeof(xlog_ticket_t)) - 2; 3164 uint i = (PAGE_SIZE / sizeof(xlog_ticket_t)) - 2;
3165 3165
3166 /* 3166 /*
3167 * The kmem_zalloc may sleep, so we shouldn't be holding the 3167 * The kmem_zalloc may sleep, so we shouldn't be holding the
3168 * global lock. XXXmiken: may want to use zone allocator. 3168 * global lock. XXXmiken: may want to use zone allocator.
3169 */ 3169 */
3170 buf = (xfs_caddr_t) kmem_zalloc(NBPP, KM_SLEEP); 3170 buf = (xfs_caddr_t) kmem_zalloc(PAGE_SIZE, KM_SLEEP);
3171 3171
3172 spin_lock(&log->l_icloglock); 3172 spin_lock(&log->l_icloglock);
3173 3173
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
index 5322d9fb5321..7f380e885a6f 100644
--- a/fs/xfs/xfs_vnodeops.c
+++ b/fs/xfs/xfs_vnodeops.c
@@ -4164,15 +4164,12 @@ xfs_free_file_space(
4164 vn_iowait(ip); /* wait for the completion of any pending DIOs */ 4164 vn_iowait(ip); /* wait for the completion of any pending DIOs */
4165 } 4165 }
4166 4166
4167 rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, NBPP); 4167 rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, PAGE_CACHE_SIZE);
4168 ioffset = offset & ~(rounding - 1); 4168 ioffset = offset & ~(rounding - 1);
4169 4169
4170 if (VN_CACHED(vp) != 0) { 4170 if (VN_CACHED(vp) != 0) {
4171 xfs_inval_cached_trace(ip, ioffset, -1, 4171 xfs_inval_cached_trace(ip, ioffset, -1, ioffset, -1);
4172 ctooff(offtoct(ioffset)), -1); 4172 error = xfs_flushinval_pages(ip, ioffset, -1, FI_REMAPF_LOCKED);
4173 error = xfs_flushinval_pages(ip,
4174 ctooff(offtoct(ioffset)),
4175 -1, FI_REMAPF_LOCKED);
4176 if (error) 4173 if (error)
4177 goto out_unlock_iolock; 4174 goto out_unlock_iolock;
4178 } 4175 }