aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/linux-2.6
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/linux-2.6')
-rw-r--r--fs/xfs/linux-2.6/xfs_linux.h28
-rw-r--r--fs/xfs/linux-2.6/xfs_lrw.c9
2 files changed, 5 insertions, 32 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;