summaryrefslogtreecommitdiffstats
path: root/fs/qnx4/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/qnx4/inode.c')
-rw-r--r--fs/qnx4/inode.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/fs/qnx4/inode.c b/fs/qnx4/inode.c
index ed405897a..49bad450e 100644
--- a/fs/qnx4/inode.c
+++ b/fs/qnx4/inode.c
@@ -231,7 +231,7 @@ unsigned long qnx4_block_map( struct inode *inode, long iblock )
block = le32_to_cpu(qnx4_inode->i_first_xtnt.xtnt_blk) + iblock - 1;
} else {
// iblock is beyond first extent. We have to follow the extent chain.
- i_xblk = qnx4_inode->i_xblk;
+ i_xblk = le32_to_cpu(qnx4_inode->i_xblk);
offset = iblock - le32_to_cpu(qnx4_inode->i_first_xtnt.xtnt_size);
ix = 0;
while ( --nxtnt > 0 ) {
@@ -455,7 +455,6 @@ static void qnx4_read_inode(struct inode *inode)
int block, ino;
ino = inode->i_ino;
- inode->i_op = NULL;
inode->i_mode = 0;
QNX4DEBUG(("Reading inode : [%d]\n", ino));
@@ -488,11 +487,13 @@ static void qnx4_read_inode(struct inode *inode)
memcpy(&inode->u.qnx4_i, (struct qnx4_inode_info *) raw_inode, QNX4_DIR_ENTRY_SIZE);
if (S_ISREG(inode->i_mode)) {
inode->i_op = &qnx4_file_inode_operations;
+ inode->i_fop = &qnx4_file_operations;
inode->i_mapping->a_ops = &qnx4_aops;
inode->u.qnx4_i.mmu_private = inode->i_size;
- } else if (S_ISDIR(inode->i_mode))
+ } else if (S_ISDIR(inode->i_mode)) {
inode->i_op = &qnx4_dir_inode_operations;
- else if (S_ISLNK(inode->i_mode)) {
+ inode->i_fop = &qnx4_dir_operations;
+ } else if (S_ISLNK(inode->i_mode)) {
inode->i_op = &page_symlink_inode_operations;
inode->i_mapping->a_ops = &qnx4_aops;
inode->u.qnx4_i.mmu_private = inode->i_size;