]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/ufs/ffs/ffs_vfsops.c
xnu-792.10.96.tar.gz
[apple/xnu.git] / bsd / ufs / ffs / ffs_vfsops.c
index 06d21d70aacd2423499ed152a5ff887c881a646d..c6186e0216f8506957e09b4eeb1a789341dc14c4 100644 (file)
@@ -87,7 +87,7 @@
 #include <ufs/ffs/ffs_extern.h>
 #if REV_ENDIAN_FS
 #include <ufs/ufs/ufs_byte_order.h>
-#include <architecture/byte_order.h>
+#include <libkern/OSByteOrder.h>
 #endif /* REV_ENDIAN_FS */
 
 int ffs_sbupdate(struct ufsmount *, int);
@@ -946,7 +946,7 @@ ffs_vfs_getattr(mp, fsap, context)
                        length = ulp->ul_namelen;
 #if REV_ENDIAN_FS
                        if (mp->mnt_flag & MNT_REVEND)
-                               length = NXSwapShort(length);
+                               length = OSSwapInt16(length);
 #endif
                        if (length > 0 && length <= UFS_MAX_LABEL_NAME) {
                                bcopy(ulp->ul_name, fsap->f_vol_name, length);
@@ -1074,14 +1074,15 @@ ffs_vfs_setattr(mp, fsap, context)
 
                /* Copy new name over existing name */
                ulp->ul_namelen = strlen(fsap->f_vol_name);
-#if REV_ENDIAN_FS
-               if (mp->mnt_flag & MNT_REVEND)
-                       ulp->ul_namelen = NXSwapShort(ulp->ul_namelen);
-#endif
                bcopy(fsap->f_vol_name, ulp->ul_name, ulp->ul_namelen);
                ulp->ul_name[UFS_MAX_LABEL_NAME - 1] = '\0';
                ulp->ul_name[ulp->ul_namelen] = '\0';
 
+#if REV_ENDIAN_FS
+               if (mp->mnt_flag & MNT_REVEND)
+                       ulp->ul_namelen = OSSwapInt16(ulp->ul_namelen);
+#endif
+
                /* Update the checksum */
                ulp->ul_checksum = 0;
                ulp->ul_checksum = ul_cksum(ulp, sizeof(*ulp));
@@ -1423,21 +1424,22 @@ ffs_fhtovp(mp, fhlen, fhp, vpp, context)
        struct vnode *nvp;
        struct fs *fs;
        int error;
+       ino_t     ino;
 
        if (fhlen < (int)sizeof(struct ufid))
                return (EINVAL);
        ufhp = (struct ufid *)fhp;
        fs = VFSTOUFS(mp)->um_fs;
-       if (ufhp->ufid_ino < ROOTINO ||
-           ufhp->ufid_ino >= fs->fs_ncg * fs->fs_ipg)
+       ino = ntohl(ufhp->ufid_ino);
+       if (ino < ROOTINO || ino >= fs->fs_ncg * fs->fs_ipg)
                return (ESTALE);
-       error = ffs_vget_internal(mp, ufhp->ufid_ino, &nvp, NULL, NULL, 0, 1);
+       error = ffs_vget_internal(mp, ino, &nvp, NULL, NULL, 0, 1);
        if (error) {
                *vpp = NULLVP;
                return (error);
        }
        ip = VTOI(nvp);
-       if (ip->i_mode == 0 || ip->i_gen != ufhp->ufid_gen) {
+       if (ip->i_mode == 0 || ip->i_gen != ntohl(ufhp->ufid_gen)) {
                vnode_put(nvp);
                *vpp = NULLVP;
                return (ESTALE);
@@ -1464,8 +1466,8 @@ ffs_vptofh(vp, fhlenp, fhp, context)
                return (EOVERFLOW);
        ip = VTOI(vp);
        ufhp = (struct ufid *)fhp;
-       ufhp->ufid_ino = ip->i_number;
-       ufhp->ufid_gen = ip->i_gen;
+       ufhp->ufid_ino = htonl(ip->i_number);
+       ufhp->ufid_gen = htonl(ip->i_gen);
        *fhlenp = sizeof(struct ufid);
        return (0);
 }
@@ -1591,7 +1593,7 @@ ffs_sbupdate(mp, waitfor)
        *  before writing
        */
        if (rev_endian) {
-               dfs->fs_maxfilesize = NXSwapLongLong(mp->um_savedmaxfilesize);          /* XXX */
+               dfs->fs_maxfilesize = OSSwapInt64(mp->um_savedmaxfilesize);             /* XXX */
        } else {
 #endif /* REV_ENDIAN_FS */
                dfs->fs_maxfilesize = mp->um_savedmaxfilesize;  /* XXX */