git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
fs
/
qnx4
/
inode.c
diff --git
a/fs/qnx4/inode.c
b/fs/qnx4/inode.c
index
19b7d5a
..
c047dc6
100644
(file)
--- a/
fs/qnx4/inode.c
+++ b/
fs/qnx4/inode.c
@@
-12,7
+12,6
@@
* 30-06-1998 by Frank Denis : first step to write inodes.
*/
* 30-06-1998 by Frank Denis : first step to write inodes.
*/
-#include <linux/config.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/string.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/string.h>
@@
-63,6
+62,7
@@
int qnx4_sync_inode(struct inode *inode)
static void qnx4_delete_inode(struct inode *inode)
{
QNX4DEBUG(("qnx4: deleting inode [%lu]\n", (unsigned long) inode->i_ino));
static void qnx4_delete_inode(struct inode *inode)
{
QNX4DEBUG(("qnx4: deleting inode [%lu]\n", (unsigned long) inode->i_ino));
+ truncate_inode_pages(&inode->i_data, 0);
inode->i_size = 0;
qnx4_truncate(inode);
lock_kernel();
inode->i_size = 0;
qnx4_truncate(inode);
lock_kernel();
@@
-78,7
+78,7
@@
static void qnx4_write_super(struct super_block *sb)
unlock_kernel();
}
unlock_kernel();
}
-static
void
qnx4_write_inode(struct inode *inode, int unused)
+static
int
qnx4_write_inode(struct inode *inode, int unused)
{
struct qnx4_inode_entry *raw_inode;
int block, ino;
{
struct qnx4_inode_entry *raw_inode;
int block, ino;
@@
-87,12
+87,12
@@
static void qnx4_write_inode(struct inode *inode, int unused)
QNX4DEBUG(("qnx4: write inode 1.\n"));
if (inode->i_nlink == 0) {
QNX4DEBUG(("qnx4: write inode 1.\n"));
if (inode->i_nlink == 0) {
- return;
+ return
0
;
}
if (!ino) {
printk("qnx4: bad inode number on dev %s: %d is out of range\n",
inode->i_sb->s_id, ino);
}
if (!ino) {
printk("qnx4: bad inode number on dev %s: %d is out of range\n",
inode->i_sb->s_id, ino);
- return;
+ return
-EIO
;
}
QNX4DEBUG(("qnx4: write inode 2.\n"));
block = ino / QNX4_INODES_PER_BLOCK;
}
QNX4DEBUG(("qnx4: write inode 2.\n"));
block = ino / QNX4_INODES_PER_BLOCK;
@@
-101,7
+101,7
@@
static void qnx4_write_inode(struct inode *inode, int unused)
printk("qnx4: major problem: unable to read inode from dev "
"%s\n", inode->i_sb->s_id);
unlock_kernel();
printk("qnx4: major problem: unable to read inode from dev "
"%s\n", inode->i_sb->s_id);
unlock_kernel();
- return;
+ return
-EIO
;
}
raw_inode = ((struct qnx4_inode_entry *) bh->b_data) +
(ino % QNX4_INODES_PER_BLOCK);
}
raw_inode = ((struct qnx4_inode_entry *) bh->b_data) +
(ino % QNX4_INODES_PER_BLOCK);
@@
-117,6
+117,7
@@
static void qnx4_write_inode(struct inode *inode, int unused)
mark_buffer_dirty(bh);
brelse(bh);
unlock_kernel();
mark_buffer_dirty(bh);
brelse(bh);
unlock_kernel();
+ return 0;
}
#endif
}
#endif
@@
-126,7
+127,7
@@
static struct inode *qnx4_alloc_inode(struct super_block *sb);
static void qnx4_destroy_inode(struct inode *inode);
static void qnx4_read_inode(struct inode *);
static int qnx4_remount(struct super_block *sb, int *flags, char *data);
static void qnx4_destroy_inode(struct inode *inode);
static void qnx4_read_inode(struct inode *);
static int qnx4_remount(struct super_block *sb, int *flags, char *data);
-static int qnx4_statfs(struct
super_block
*, struct kstatfs *);
+static int qnx4_statfs(struct
dentry
*, struct kstatfs *);
static struct super_operations qnx4_sops =
{
static struct super_operations qnx4_sops =
{
@@
-161,8
+162,8
@@
static int qnx4_remount(struct super_block *sb, int *flags, char *data)
return 0;
}
return 0;
}
-struct buffer_head *qnx4_getblk(struct inode *inode, int nr,
- int create)
+st
atic st
ruct buffer_head *qnx4_getblk(struct inode *inode, int nr,
+
int create)
{
struct buffer_head *result = NULL;
{
struct buffer_head *result = NULL;
@@
-188,7
+189,7
@@
struct buffer_head *qnx4_getblk(struct inode *inode, int nr,
}
tst = tmp;
#endif
}
tst = tmp;
#endif
- inode->i_ctime = CURRENT_TIME;
+ inode->i_ctime = CURRENT_TIME
_SEC
;
mark_inode_dirty(inode);
return result;
}
mark_inode_dirty(inode);
return result;
}
@@
-211,7
+212,7
@@
struct buffer_head *qnx4_bread(struct inode *inode, int block, int create)
return NULL;
}
return NULL;
}
-int qnx4_get_block( struct inode *inode, sector_t iblock, struct buffer_head *bh, int create )
+
static
int qnx4_get_block( struct inode *inode, sector_t iblock, struct buffer_head *bh, int create )
{
unsigned long phys;
{
unsigned long phys;
@@
-235,7
+236,7
@@
unsigned long qnx4_block_map( struct inode *inode, long iblock )
struct buffer_head *bh = NULL;
struct qnx4_xblk *xblk = NULL;
struct qnx4_inode_entry *qnx4_inode = qnx4_raw_inode(inode);
struct buffer_head *bh = NULL;
struct qnx4_xblk *xblk = NULL;
struct qnx4_inode_entry *qnx4_inode = qnx4_raw_inode(inode);
-
qnx4_nxtnt_t
nxtnt = le16_to_cpu(qnx4_inode->di_num_xtnts);
+
u16
nxtnt = le16_to_cpu(qnx4_inode->di_num_xtnts);
if ( iblock < le32_to_cpu(qnx4_inode->di_first_xtnt.xtnt_size) ) {
// iblock is in the first extent. This is easy.
if ( iblock < le32_to_cpu(qnx4_inode->di_first_xtnt.xtnt_size) ) {
// iblock is in the first extent. This is easy.
@@
-280,8
+281,10
@@
unsigned long qnx4_block_map( struct inode *inode, long iblock )
return block;
}
return block;
}
-static int qnx4_statfs(struct
super_block *sb
, struct kstatfs *buf)
+static int qnx4_statfs(struct
dentry *dentry
, struct kstatfs *buf)
{
{
+ struct super_block *sb = dentry->d_sb;
+
lock_kernel();
buf->f_type = sb->s_magic;
lock_kernel();
buf->f_type = sb->s_magic;
@@
-355,11
+358,10
@@
static int qnx4_fill_super(struct super_block *s, void *data, int silent)
const char *errmsg;
struct qnx4_sb_info *qs;
const char *errmsg;
struct qnx4_sb_info *qs;
- qs = k
m
alloc(sizeof(struct qnx4_sb_info), GFP_KERNEL);
+ qs = k
z
alloc(sizeof(struct qnx4_sb_info), GFP_KERNEL);
if (!qs)
return -ENOMEM;
s->s_fs_info = qs;
if (!qs)
return -ENOMEM;
s->s_fs_info = qs;
- memset(qs, 0, sizeof(struct qnx4_sb_info));
sb_set_blocksize(s, QNX4_BLOCK_SIZE);
sb_set_blocksize(s, QNX4_BLOCK_SIZE);
@@
-371,7
+373,7
@@
static int qnx4_fill_super(struct super_block *s, void *data, int silent)
printk("qnx4: unable to read the superblock\n");
goto outnobh;
}
printk("qnx4: unable to read the superblock\n");
goto outnobh;
}
- if ( le32_to_cpu
( *(__u32*)bh->b_data
) != QNX4_SUPER_MAGIC ) {
+ if ( le32_to_cpu
p((__le32*) bh->b_data
) != QNX4_SUPER_MAGIC ) {
if (!silent)
printk("qnx4: wrong fsid in superblock.\n");
goto out;
if (!silent)
printk("qnx4: wrong fsid in superblock.\n");
goto out;
@@
-446,7
+448,7
@@
static sector_t qnx4_bmap(struct address_space *mapping, sector_t block)
{
return generic_block_bmap(mapping,block,qnx4_get_block);
}
{
return generic_block_bmap(mapping,block,qnx4_get_block);
}
-struct address_space_operations qnx4_aops = {
+st
atic const st
ruct address_space_operations qnx4_aops = {
.readpage = qnx4_readpage,
.writepage = qnx4_writepage,
.sync_page = block_sync_page,
.readpage = qnx4_readpage,
.writepage = qnx4_writepage,
.sync_page = block_sync_page,
@@
-494,7
+496,6
@@
static void qnx4_read_inode(struct inode *inode)
inode->i_ctime.tv_sec = le32_to_cpu(raw_inode->di_ctime);
inode->i_ctime.tv_nsec = 0;
inode->i_blocks = le32_to_cpu(raw_inode->di_first_xtnt.xtnt_size);
inode->i_ctime.tv_sec = le32_to_cpu(raw_inode->di_ctime);
inode->i_ctime.tv_nsec = 0;
inode->i_blocks = le32_to_cpu(raw_inode->di_first_xtnt.xtnt_size);
- inode->i_blksize = QNX4_DIR_ENTRY_SIZE;
memcpy(qnx4_inode, raw_inode, QNX4_DIR_ENTRY_SIZE);
if (S_ISREG(inode->i_mode)) {
memcpy(qnx4_inode, raw_inode, QNX4_DIR_ENTRY_SIZE);
if (S_ISREG(inode->i_mode)) {
@@
-514,12
+515,12
@@
static void qnx4_read_inode(struct inode *inode)
brelse(bh);
}
brelse(bh);
}
-static
kmem_cache_t
*qnx4_inode_cachep;
+static
struct kmem_cache
*qnx4_inode_cachep;
static struct inode *qnx4_alloc_inode(struct super_block *sb)
{
struct qnx4_inode_info *ei;
static struct inode *qnx4_alloc_inode(struct super_block *sb)
{
struct qnx4_inode_info *ei;
- ei = kmem_cache_alloc(qnx4_inode_cachep,
SLAB
_KERNEL);
+ ei = kmem_cache_alloc(qnx4_inode_cachep,
GFP
_KERNEL);
if (!ei)
return NULL;
return &ei->vfs_inode;
if (!ei)
return NULL;
return &ei->vfs_inode;
@@
-530,7
+531,7
@@
static void qnx4_destroy_inode(struct inode *inode)
kmem_cache_free(qnx4_inode_cachep, qnx4_i(inode));
}
kmem_cache_free(qnx4_inode_cachep, qnx4_i(inode));
}
-static void init_once(void *foo,
kmem_cache_t
* cachep,
+static void init_once(void *foo,
struct kmem_cache
* cachep,
unsigned long flags)
{
struct qnx4_inode_info *ei = (struct qnx4_inode_info *) foo;
unsigned long flags)
{
struct qnx4_inode_info *ei = (struct qnx4_inode_info *) foo;
@@
-544,7
+545,8
@@
static int init_inodecache(void)
{
qnx4_inode_cachep = kmem_cache_create("qnx4_inode_cache",
sizeof(struct qnx4_inode_info),
{
qnx4_inode_cachep = kmem_cache_create("qnx4_inode_cache",
sizeof(struct qnx4_inode_info),
- 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT,
+ 0, (SLAB_RECLAIM_ACCOUNT|
+ SLAB_MEM_SPREAD),
init_once, NULL);
if (qnx4_inode_cachep == NULL)
return -ENOMEM;
init_once, NULL);
if (qnx4_inode_cachep == NULL)
return -ENOMEM;
@@
-553,15
+555,14
@@
static int init_inodecache(void)
static void destroy_inodecache(void)
{
static void destroy_inodecache(void)
{
- if (kmem_cache_destroy(qnx4_inode_cachep))
- printk(KERN_INFO
- "qnx4_inode_cache: not all structures were freed\n");
+ kmem_cache_destroy(qnx4_inode_cachep);
}
}
-static
struct super_block *
qnx4_get_sb(struct file_system_type *fs_type,
- int flags, const char *dev_name, void *data)
+static
int
qnx4_get_sb(struct file_system_type *fs_type,
+ int flags, const char *dev_name, void *data
, struct vfsmount *mnt
)
{
{
- return get_sb_bdev(fs_type, flags, dev_name, data, qnx4_fill_super);
+ return get_sb_bdev(fs_type, flags, dev_name, data, qnx4_fill_super,
+ mnt);
}
static struct file_system_type qnx4_fs_type = {
}
static struct file_system_type qnx4_fs_type = {