diff options
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/buffer.c | 2 | ||||
| -rw-r--r-- | fs/libfs.c | 4 | ||||
| -rw-r--r-- | fs/omfs/bitmap.c | 6 | ||||
| -rw-r--r-- | fs/omfs/dir.c | 2 | ||||
| -rw-r--r-- | fs/omfs/file.c | 6 | ||||
| -rw-r--r-- | fs/romfs/inode.c | 37 |
6 files changed, 33 insertions, 24 deletions
diff --git a/fs/buffer.c b/fs/buffer.c index ca12a6bb82b..4dbe52948e8 100644 --- a/fs/buffer.c +++ b/fs/buffer.c | |||
| @@ -580,7 +580,7 @@ EXPORT_SYMBOL(mark_buffer_async_write); | |||
| 580 | /* | 580 | /* |
| 581 | * The buffer's backing address_space's private_lock must be held | 581 | * The buffer's backing address_space's private_lock must be held |
| 582 | */ | 582 | */ |
| 583 | static inline void __remove_assoc_queue(struct buffer_head *bh) | 583 | static void __remove_assoc_queue(struct buffer_head *bh) |
| 584 | { | 584 | { |
| 585 | list_del_init(&bh->b_assoc_buffers); | 585 | list_del_init(&bh->b_assoc_buffers); |
| 586 | WARN_ON(!bh->b_assoc_map); | 586 | WARN_ON(!bh->b_assoc_map); |
diff --git a/fs/libfs.c b/fs/libfs.c index baeb71ee1cd..1add676a19d 100644 --- a/fs/libfs.c +++ b/fs/libfs.c | |||
| @@ -216,8 +216,8 @@ int get_sb_pseudo(struct file_system_type *fs_type, char *name, | |||
| 216 | 216 | ||
| 217 | s->s_flags = MS_NOUSER; | 217 | s->s_flags = MS_NOUSER; |
| 218 | s->s_maxbytes = ~0ULL; | 218 | s->s_maxbytes = ~0ULL; |
| 219 | s->s_blocksize = 1024; | 219 | s->s_blocksize = PAGE_SIZE; |
| 220 | s->s_blocksize_bits = 10; | 220 | s->s_blocksize_bits = PAGE_SHIFT; |
| 221 | s->s_magic = magic; | 221 | s->s_magic = magic; |
| 222 | s->s_op = ops ? ops : &simple_super_operations; | 222 | s->s_op = ops ? ops : &simple_super_operations; |
| 223 | s->s_time_gran = 1; | 223 | s->s_time_gran = 1; |
diff --git a/fs/omfs/bitmap.c b/fs/omfs/bitmap.c index dc75f22be3f..697663b01ba 100644 --- a/fs/omfs/bitmap.c +++ b/fs/omfs/bitmap.c | |||
| @@ -71,10 +71,10 @@ static int set_run(struct super_block *sb, int map, | |||
| 71 | } | 71 | } |
| 72 | if (set) { | 72 | if (set) { |
| 73 | set_bit(bit, sbi->s_imap[map]); | 73 | set_bit(bit, sbi->s_imap[map]); |
| 74 | set_bit(bit, (long *) bh->b_data); | 74 | set_bit(bit, (unsigned long *)bh->b_data); |
| 75 | } else { | 75 | } else { |
| 76 | clear_bit(bit, sbi->s_imap[map]); | 76 | clear_bit(bit, sbi->s_imap[map]); |
| 77 | clear_bit(bit, (long *) bh->b_data); | 77 | clear_bit(bit, (unsigned long *)bh->b_data); |
| 78 | } | 78 | } |
| 79 | } | 79 | } |
| 80 | mark_buffer_dirty(bh); | 80 | mark_buffer_dirty(bh); |
| @@ -109,7 +109,7 @@ int omfs_allocate_block(struct super_block *sb, u64 block) | |||
| 109 | if (!bh) | 109 | if (!bh) |
| 110 | goto out; | 110 | goto out; |
| 111 | 111 | ||
| 112 | set_bit(bit, (long *) bh->b_data); | 112 | set_bit(bit, (unsigned long *)bh->b_data); |
| 113 | mark_buffer_dirty(bh); | 113 | mark_buffer_dirty(bh); |
| 114 | brelse(bh); | 114 | brelse(bh); |
| 115 | } | 115 | } |
diff --git a/fs/omfs/dir.c b/fs/omfs/dir.c index 05a5bc31e4b..c0757e99887 100644 --- a/fs/omfs/dir.c +++ b/fs/omfs/dir.c | |||
| @@ -104,7 +104,7 @@ int omfs_make_empty(struct inode *inode, struct super_block *sb) | |||
| 104 | 104 | ||
| 105 | oi = (struct omfs_inode *) bh->b_data; | 105 | oi = (struct omfs_inode *) bh->b_data; |
| 106 | oi->i_head.h_self = cpu_to_be64(inode->i_ino); | 106 | oi->i_head.h_self = cpu_to_be64(inode->i_ino); |
| 107 | oi->i_sibling = ~0ULL; | 107 | oi->i_sibling = ~cpu_to_be64(0ULL); |
| 108 | 108 | ||
| 109 | mark_buffer_dirty(bh); | 109 | mark_buffer_dirty(bh); |
| 110 | brelse(bh); | 110 | brelse(bh); |
diff --git a/fs/omfs/file.c b/fs/omfs/file.c index 66e01fae438..7e2499053e4 100644 --- a/fs/omfs/file.c +++ b/fs/omfs/file.c | |||
| @@ -30,11 +30,11 @@ void omfs_make_empty_table(struct buffer_head *bh, int offset) | |||
| 30 | { | 30 | { |
| 31 | struct omfs_extent *oe = (struct omfs_extent *) &bh->b_data[offset]; | 31 | struct omfs_extent *oe = (struct omfs_extent *) &bh->b_data[offset]; |
| 32 | 32 | ||
| 33 | oe->e_next = ~0ULL; | 33 | oe->e_next = ~cpu_to_be64(0ULL); |
| 34 | oe->e_extent_count = cpu_to_be32(1), | 34 | oe->e_extent_count = cpu_to_be32(1), |
| 35 | oe->e_fill = cpu_to_be32(0x22), | 35 | oe->e_fill = cpu_to_be32(0x22), |
| 36 | oe->e_entry.e_cluster = ~0ULL; | 36 | oe->e_entry.e_cluster = ~cpu_to_be64(0ULL); |
| 37 | oe->e_entry.e_blocks = ~0ULL; | 37 | oe->e_entry.e_blocks = ~cpu_to_be64(0ULL); |
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | int omfs_shrink_inode(struct inode *inode) | 40 | int omfs_shrink_inode(struct inode *inode) |
diff --git a/fs/romfs/inode.c b/fs/romfs/inode.c index 8e51a2aaa97..60d2f822e87 100644 --- a/fs/romfs/inode.c +++ b/fs/romfs/inode.c | |||
| @@ -418,7 +418,8 @@ static int | |||
| 418 | romfs_readpage(struct file *file, struct page * page) | 418 | romfs_readpage(struct file *file, struct page * page) |
| 419 | { | 419 | { |
| 420 | struct inode *inode = page->mapping->host; | 420 | struct inode *inode = page->mapping->host; |
| 421 | loff_t offset, avail, readlen; | 421 | loff_t offset, size; |
| 422 | unsigned long filled; | ||
| 422 | void *buf; | 423 | void *buf; |
| 423 | int result = -EIO; | 424 | int result = -EIO; |
| 424 | 425 | ||
| @@ -430,21 +431,29 @@ romfs_readpage(struct file *file, struct page * page) | |||
| 430 | 431 | ||
| 431 | /* 32 bit warning -- but not for us :) */ | 432 | /* 32 bit warning -- but not for us :) */ |
| 432 | offset = page_offset(page); | 433 | offset = page_offset(page); |
| 433 | if (offset < i_size_read(inode)) { | 434 | size = i_size_read(inode); |
| 434 | avail = inode->i_size-offset; | 435 | filled = 0; |
| 435 | readlen = min_t(unsigned long, avail, PAGE_SIZE); | 436 | result = 0; |
| 436 | if (romfs_copyfrom(inode, buf, ROMFS_I(inode)->i_dataoffset+offset, readlen) == readlen) { | 437 | if (offset < size) { |
| 437 | if (readlen < PAGE_SIZE) { | 438 | unsigned long readlen; |
| 438 | memset(buf + readlen,0,PAGE_SIZE-readlen); | 439 | |
| 439 | } | 440 | size -= offset; |
| 440 | SetPageUptodate(page); | 441 | readlen = size > PAGE_SIZE ? PAGE_SIZE : size; |
| 441 | result = 0; | 442 | |
| 443 | filled = romfs_copyfrom(inode, buf, ROMFS_I(inode)->i_dataoffset+offset, readlen); | ||
| 444 | |||
| 445 | if (filled != readlen) { | ||
| 446 | SetPageError(page); | ||
| 447 | filled = 0; | ||
| 448 | result = -EIO; | ||
| 442 | } | 449 | } |
| 443 | } | 450 | } |
| 444 | if (result) { | 451 | |
| 445 | memset(buf, 0, PAGE_SIZE); | 452 | if (filled < PAGE_SIZE) |
| 446 | SetPageError(page); | 453 | memset(buf + filled, 0, PAGE_SIZE-filled); |
| 447 | } | 454 | |
| 455 | if (!result) | ||
| 456 | SetPageUptodate(page); | ||
| 448 | flush_dcache_page(page); | 457 | flush_dcache_page(page); |
| 449 | 458 | ||
| 450 | unlock_page(page); | 459 | unlock_page(page); |
