Commit 1885b3f1 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] dev_t forward compatibility fix

From: Andries.Brouwer@cwi.nl

ext2 used a 32-bit field for dev_t, with possibly undefined storage
following; thus, no action was required to go to 32-bit dev_t, but going to
64-bit dev_t required some subtlety: 0 was written in the first word and
the 64 bits in the following two.  Al truncated my 64-bit stuff to 32 bits
but did not understand why there was this split, and wrote 0 followed by a
single word.  We should at least zero the word following to have
well-defined storage later.
parent 297ec1fa
......@@ -1228,6 +1228,7 @@ static int ext2_update_inode(struct inode * inode, int do_sync)
raw_inode->i_block[0] = 0;
raw_inode->i_block[1] =
cpu_to_le32(new_encode_dev(inode->i_rdev));
raw_inode->i_block[2] = 0;
}
} else for (n = 0; n < EXT2_N_BLOCKS; n++)
raw_inode->i_block[n] = ei->i_data[n];
......
......@@ -2679,6 +2679,7 @@ static int ext3_do_update_inode(handle_t *handle,
raw_inode->i_block[0] = 0;
raw_inode->i_block[1] =
cpu_to_le32(new_encode_dev(inode->i_rdev));
raw_inode->i_block[2] = 0;
}
} else for (block = 0; block < EXT3_N_BLOCKS; block++)
raw_inode->i_block[block] = ei->i_data[block];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment