From 20a030973874311e41ebb106161d6ddb009c033c Mon Sep 17 00:00:00 2001 From: Tormod Volden Date: Mon, 30 Mar 2015 00:05:19 +0200 Subject: [PATCH] Standalone mkfs/fsck/xfs2 byte order fixes Signed-off-by: Tormod Volden --- Standalone/fsck.c | 2 +- Standalone/mkfs.c | 2 +- Standalone/xfs2.c | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Standalone/fsck.c b/Standalone/fsck.c index 7bf12e56..6a29bc58 100644 --- a/Standalone/fsck.c +++ b/Standalone/fsck.c @@ -264,7 +264,7 @@ void pass2(void) superblock.s_tfree = swizzle16(swizzle16(superblock.s_tfree)+1); s = swizzle16(superblock.s_nfree); superblock.s_free[s++] = swizzle16(j); - superblock.s_nfree = s; + superblock.s_nfree = swizzle16(s); } } diff --git a/Standalone/mkfs.c b/Standalone/mkfs.c index 0d9d69a8..71793bf3 100644 --- a/Standalone/mkfs.c +++ b/Standalone/mkfs.c @@ -114,7 +114,7 @@ void mkfs(uint16_t fsize, uint16_t isize) /* The inodes are already zeroed out */ /* create the root dir */ - inode[ROOTINODE].i_mode = F_DIR | (0777 & MODE_MASK); + inode[ROOTINODE].i_mode = swizzle16(F_DIR | (0777 & MODE_MASK)); inode[ROOTINODE].i_nlink = swizzle16(3); inode[ROOTINODE].i_size = swizzle32(64); inode[ROOTINODE].i_addr[0] = swizzle16(isize); diff --git a/Standalone/xfs2.c b/Standalone/xfs2.c index aba3541c..16137dbb 100644 --- a/Standalone/xfs2.c +++ b/Standalone/xfs2.c @@ -315,9 +315,9 @@ int ch_link(inoptr wd, char *oldname, char *newname, inoptr nindex) /* Update file length to next block */ if (swizzle32(wd->c_node.i_size) & 511) - wd->c_node.i_size = + wd->c_node.i_size = swizzle32( swizzle32(wd->c_node.i_size) + 512 - - (swizzle16(wd->c_node.i_size) & 511); + (swizzle32(wd->c_node.i_size) & 511)); return (1); } @@ -468,7 +468,7 @@ unsigned i_alloc(int devno) _sync(); /* Make on-disk inodes consistent */ k = 0; - for (blk = 2; blk < dev->s_isize; blk++) { + for (blk = 2; blk < swizzle16(dev->s_isize); blk++) { buf = (struct dinode *) bread(devno, blk, 0); for (j = 0; j < 8; j++) { ifnot(buf[j].i_mode || buf[j].i_nlink) @@ -850,7 +850,7 @@ blkno_t bmap(inoptr ip, blkno_t bn, int rwflg) * fetch the address from the inode * Create the first indirect block if needed. */ - ifnot(nb = ip->c_node.i_addr[20 - j]) { + ifnot(nb = swizzle16(ip->c_node.i_addr[20 - j])) { if (rwflg || !(nb = blk_alloc(dev))) return (NULLBLK); ip->c_node.i_addr[20 - j] = swizzle16(nb); -- 2.34.1