Merge branch 'omap-for-v4.8/soc' into omap-for-v4.8/fixes
[cascardo/linux.git] / fs / freevxfs / vxfs_olt.c
index 0495008..813da66 100644 (file)
@@ -43,14 +43,14 @@ static inline void
 vxfs_get_fshead(struct vxfs_oltfshead *fshp, struct vxfs_sb_info *infp)
 {
        BUG_ON(infp->vsi_fshino);
-       infp->vsi_fshino = fshp->olt_fsino[0];
+       infp->vsi_fshino = fs32_to_cpu(infp, fshp->olt_fsino[0]);
 }
 
 static inline void
 vxfs_get_ilist(struct vxfs_oltilist *ilistp, struct vxfs_sb_info *infp)
 {
        BUG_ON(infp->vsi_iext);
-       infp->vsi_iext = ilistp->olt_iext[0]; 
+       infp->vsi_iext = fs32_to_cpu(infp, ilistp->olt_iext[0]);
 }
 
 static inline u_long
@@ -81,13 +81,12 @@ vxfs_read_olt(struct super_block *sbp, u_long bsize)
        struct vxfs_olt         *op;
        char                    *oaddr, *eaddr;
 
-
        bp = sb_bread(sbp, vxfs_oblock(sbp, infp->vsi_oltext, bsize));
        if (!bp || !bp->b_data)
                goto fail;
 
        op = (struct vxfs_olt *)bp->b_data;
-       if (op->olt_magic != VXFS_OLT_MAGIC) {
+       if (fs32_to_cpu(infp, op->olt_magic) != VXFS_OLT_MAGIC) {
                printk(KERN_NOTICE "vxfs: ivalid olt magic number\n");
                goto fail;
        }
@@ -102,14 +101,14 @@ vxfs_read_olt(struct super_block *sbp, u_long bsize)
                goto fail;
        }
 
-       oaddr = bp->b_data + op->olt_size;
+       oaddr = bp->b_data + fs32_to_cpu(infp, op->olt_size);
        eaddr = bp->b_data + (infp->vsi_oltsize * sbp->s_blocksize);
 
        while (oaddr < eaddr) {
                struct vxfs_oltcommon   *ocp =
                        (struct vxfs_oltcommon *)oaddr;
                
-               switch (ocp->olt_type) {
+               switch (fs32_to_cpu(infp, ocp->olt_type)) {
                case VXFS_OLT_FSHEAD:
                        vxfs_get_fshead((struct vxfs_oltfshead *)oaddr, infp);
                        break;
@@ -118,11 +117,11 @@ vxfs_read_olt(struct super_block *sbp, u_long bsize)
                        break;
                }
 
-               oaddr += ocp->olt_size;
+               oaddr += fs32_to_cpu(infp, ocp->olt_size);
        }
 
        brelse(bp);
-       return 0;
+       return (infp->vsi_fshino && infp->vsi_iext) ? 0 : -EINVAL;
 
 fail:
        brelse(bp);