|
@@ -4348,7 +4348,12 @@ static void ext4_update_other_inodes_time(struct super_block *sb,
|
|
|
int inode_size = EXT4_INODE_SIZE(sb);
|
|
|
|
|
|
oi.orig_ino = orig_ino;
|
|
|
- ino = (orig_ino & ~(inodes_per_block - 1)) + 1;
|
|
|
+ /*
|
|
|
+ * Calculate the first inode in the inode table block. Inode
|
|
|
+ * numbers are one-based. That is, the first inode in a block
|
|
|
+ * (assuming 4k blocks and 256 byte inodes) is (n*16 + 1).
|
|
|
+ */
|
|
|
+ ino = ((orig_ino - 1) & ~(inodes_per_block - 1)) + 1;
|
|
|
for (i = 0; i < inodes_per_block; i++, ino++, buf += inode_size) {
|
|
|
if (ino == orig_ino)
|
|
|
continue;
|