aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cramfs/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/cramfs/inode.c')
-rw-r--r--fs/cramfs/inode.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c
index b862bc219cd7..3a32ddf98095 100644
--- a/fs/cramfs/inode.c
+++ b/fs/cramfs/inode.c
@@ -137,7 +137,7 @@ static struct inode *get_cramfs_inode(struct super_block *sb,
137 * page cache and dentry tree anyway.. 137 * page cache and dentry tree anyway..
138 * 138 *
139 * This also acts as a way to guarantee contiguous areas of up to 139 * This also acts as a way to guarantee contiguous areas of up to
140 * BLKS_PER_BUF*PAGE_CACHE_SIZE, so that the caller doesn't need to 140 * BLKS_PER_BUF*PAGE_SIZE, so that the caller doesn't need to
141 * worry about end-of-buffer issues even when decompressing a full 141 * worry about end-of-buffer issues even when decompressing a full
142 * page cache. 142 * page cache.
143 */ 143 */
@@ -152,7 +152,7 @@ static struct inode *get_cramfs_inode(struct super_block *sb,
152 */ 152 */
153#define BLKS_PER_BUF_SHIFT (2) 153#define BLKS_PER_BUF_SHIFT (2)
154#define BLKS_PER_BUF (1 << BLKS_PER_BUF_SHIFT) 154#define BLKS_PER_BUF (1 << BLKS_PER_BUF_SHIFT)
155#define BUFFER_SIZE (BLKS_PER_BUF*PAGE_CACHE_SIZE) 155#define BUFFER_SIZE (BLKS_PER_BUF*PAGE_SIZE)
156 156
157static unsigned char read_buffers[READ_BUFFERS][BUFFER_SIZE]; 157static unsigned char read_buffers[READ_BUFFERS][BUFFER_SIZE];
158static unsigned buffer_blocknr[READ_BUFFERS]; 158static unsigned buffer_blocknr[READ_BUFFERS];
@@ -173,8 +173,8 @@ static void *cramfs_read(struct super_block *sb, unsigned int offset, unsigned i
173 173
174 if (!len) 174 if (!len)
175 return NULL; 175 return NULL;
176 blocknr = offset >> PAGE_CACHE_SHIFT; 176 blocknr = offset >> PAGE_SHIFT;
177 offset &= PAGE_CACHE_SIZE - 1; 177 offset &= PAGE_SIZE - 1;
178 178
179 /* Check if an existing buffer already has the data.. */ 179 /* Check if an existing buffer already has the data.. */
180 for (i = 0; i < READ_BUFFERS; i++) { 180 for (i = 0; i < READ_BUFFERS; i++) {
@@ -184,14 +184,14 @@ static void *cramfs_read(struct super_block *sb, unsigned int offset, unsigned i
184 continue; 184 continue;
185 if (blocknr < buffer_blocknr[i]) 185 if (blocknr < buffer_blocknr[i])
186 continue; 186 continue;
187 blk_offset = (blocknr - buffer_blocknr[i]) << PAGE_CACHE_SHIFT; 187 blk_offset = (blocknr - buffer_blocknr[i]) << PAGE_SHIFT;
188 blk_offset += offset; 188 blk_offset += offset;
189 if (blk_offset + len > BUFFER_SIZE) 189 if (blk_offset + len > BUFFER_SIZE)
190 continue; 190 continue;
191 return read_buffers[i] + blk_offset; 191 return read_buffers[i] + blk_offset;
192 } 192 }
193 193
194 devsize = mapping->host->i_size >> PAGE_CACHE_SHIFT; 194 devsize = mapping->host->i_size >> PAGE_SHIFT;
195 195
196 /* Ok, read in BLKS_PER_BUF pages completely first. */ 196 /* Ok, read in BLKS_PER_BUF pages completely first. */
197 for (i = 0; i < BLKS_PER_BUF; i++) { 197 for (i = 0; i < BLKS_PER_BUF; i++) {
@@ -213,7 +213,7 @@ static void *cramfs_read(struct super_block *sb, unsigned int offset, unsigned i
213 wait_on_page_locked(page); 213 wait_on_page_locked(page);
214 if (!PageUptodate(page)) { 214 if (!PageUptodate(page)) {
215 /* asynchronous error */ 215 /* asynchronous error */
216 page_cache_release(page); 216 put_page(page);
217 pages[i] = NULL; 217 pages[i] = NULL;
218 } 218 }
219 } 219 }
@@ -229,12 +229,12 @@ static void *cramfs_read(struct super_block *sb, unsigned int offset, unsigned i
229 struct page *page = pages[i]; 229 struct page *page = pages[i];
230 230
231 if (page) { 231 if (page) {
232 memcpy(data, kmap(page), PAGE_CACHE_SIZE); 232 memcpy(data, kmap(page), PAGE_SIZE);
233 kunmap(page); 233 kunmap(page);
234 page_cache_release(page); 234 put_page(page);
235 } else 235 } else
236 memset(data, 0, PAGE_CACHE_SIZE); 236 memset(data, 0, PAGE_SIZE);
237 data += PAGE_CACHE_SIZE; 237 data += PAGE_SIZE;
238 } 238 }
239 return read_buffers[buffer] + offset; 239 return read_buffers[buffer] + offset;
240} 240}
@@ -353,7 +353,7 @@ static int cramfs_statfs(struct dentry *dentry, struct kstatfs *buf)
353 u64 id = huge_encode_dev(sb->s_bdev->bd_dev); 353 u64 id = huge_encode_dev(sb->s_bdev->bd_dev);
354 354
355 buf->f_type = CRAMFS_MAGIC; 355 buf->f_type = CRAMFS_MAGIC;
356 buf->f_bsize = PAGE_CACHE_SIZE; 356 buf->f_bsize = PAGE_SIZE;
357 buf->f_blocks = CRAMFS_SB(sb)->blocks; 357 buf->f_blocks = CRAMFS_SB(sb)->blocks;
358 buf->f_bfree = 0; 358 buf->f_bfree = 0;
359 buf->f_bavail = 0; 359 buf->f_bavail = 0;
@@ -496,7 +496,7 @@ static int cramfs_readpage(struct file *file, struct page *page)
496 int bytes_filled; 496 int bytes_filled;
497 void *pgdata; 497 void *pgdata;
498 498
499 maxblock = (inode->i_size + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; 499 maxblock = (inode->i_size + PAGE_SIZE - 1) >> PAGE_SHIFT;
500 bytes_filled = 0; 500 bytes_filled = 0;
501 pgdata = kmap(page); 501 pgdata = kmap(page);
502 502
@@ -516,14 +516,14 @@ static int cramfs_readpage(struct file *file, struct page *page)
516 516
517 if (compr_len == 0) 517 if (compr_len == 0)
518 ; /* hole */ 518 ; /* hole */
519 else if (unlikely(compr_len > (PAGE_CACHE_SIZE << 1))) { 519 else if (unlikely(compr_len > (PAGE_SIZE << 1))) {
520 pr_err("bad compressed blocksize %u\n", 520 pr_err("bad compressed blocksize %u\n",
521 compr_len); 521 compr_len);
522 goto err; 522 goto err;
523 } else { 523 } else {
524 mutex_lock(&read_mutex); 524 mutex_lock(&read_mutex);
525 bytes_filled = cramfs_uncompress_block(pgdata, 525 bytes_filled = cramfs_uncompress_block(pgdata,
526 PAGE_CACHE_SIZE, 526 PAGE_SIZE,
527 cramfs_read(sb, start_offset, compr_len), 527 cramfs_read(sb, start_offset, compr_len),
528 compr_len); 528 compr_len);
529 mutex_unlock(&read_mutex); 529 mutex_unlock(&read_mutex);
@@ -532,7 +532,7 @@ static int cramfs_readpage(struct file *file, struct page *page)
532 } 532 }
533 } 533 }
534 534
535 memset(pgdata + bytes_filled, 0, PAGE_CACHE_SIZE - bytes_filled); 535 memset(pgdata + bytes_filled, 0, PAGE_SIZE - bytes_filled);
536 flush_dcache_page(page); 536 flush_dcache_page(page);
537 kunmap(page); 537 kunmap(page);
538 SetPageUptodate(page); 538 SetPageUptodate(page);