Browse Source

nilfs2: add missing endian conversion on super block magic number

This adds missing endian conversions in comparision of the magic
number of super blocks.  It was coincidence that prior versions didn't
incur problems; the upper byte of the magic number happened to be
equal to the lower byte.  But, semantically it's wrong to depend on
this.

This won't change anything else nor suffer any compatibility issues.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Ryusuke Konishi 15 năm trước cách đây
mục cha
commit
34cb9b5c97
1 tập tin đã thay đổi với 2 bổ sung2 xóa
  1. 2 2
      fs/nilfs2/super.c

+ 2 - 2
fs/nilfs2/super.c

@@ -242,8 +242,8 @@ int nilfs_commit_super(struct nilfs_sb_info *sbi, int dupsb)
 	int err;
 	int err;
 
 
 	/* nilfs->sem must be locked by the caller. */
 	/* nilfs->sem must be locked by the caller. */
-	if (sbp[0]->s_magic != NILFS_SUPER_MAGIC) {
-		if (sbp[1] && sbp[1]->s_magic == NILFS_SUPER_MAGIC)
+	if (sbp[0]->s_magic != cpu_to_le16(NILFS_SUPER_MAGIC)) {
+		if (sbp[1] && sbp[1]->s_magic == cpu_to_le16(NILFS_SUPER_MAGIC))
 			nilfs_swap_super_block(nilfs);
 			nilfs_swap_super_block(nilfs);
 		else {
 		else {
 			printk(KERN_CRIT "NILFS: superblock broke on dev %s\n",
 			printk(KERN_CRIT "NILFS: superblock broke on dev %s\n",