Patch "xfs: Use xfs_icluster_size_fsb() to calculate inode alignment mask" has been added to the 4.10-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
xfs: Use xfs_icluster_size_fsb() to calculate inode alignment mask
to the 4.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
xfs-use-xfs_icluster_size_fsb-to-calculate-inode-alignment-mask.patch
and it can be found in the queue-4.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
d5825712ee98d68a2c17bc89dad2c30276894cbaMon Sep 17 00:00:00 2001
From: Chandan Rajendra <[email protected]>
Date: Thu, 2 Mar 2017 15:06:33 -0800
Subject: xfs: Use xfs_icluster_size_fsb() to calculate inode alignment mask
From: Chandan Rajendra <[email protected]>
commit d5825712ee98d68a2c17bc89dad2c30276894cba upstream.
When block size is larger than inode cluster size, the call to XFS_B_TO_FSBT(mp, mp->m_inode_cluster_size) returns 0. Also, mkfs.xfs would have set xfs_sb->sb_inoalignmt to 0. Hence in xfs_set_inoalignment(), xfs_mount->m_inoalign_mask gets initialized to -1 instead of 0. However, xfs_mount->m_sinoalign would get correctly intialized to 0 because for every positive value of xfs_mount->m_dalign, the condition "!(mp->m_dalign & mp->m_inoalign_mask)" would evaluate to false.
Also, xfs_imap() worked fine even with xfs_mount->m_inoalign_mask having -1 as the value because blks_per_cluster variable would have the value 1 and hence we would never have a need to use xfs_mount->m_inoalign_mask to compute the inode chunk's agbno and offset within the chunk.
--- fs/xfs/xfs_mount.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
fs/xfs/xfs_mount.c +1 -2
@@ -511,8 +511,7 @@ STATIC void xfs_set_inoalignment(xfs_mount_t *mp) {if (xfs_sb_version_hasalign (&mp->m_sb) && - mp->m_sb.sb_inoalignmt >= -XFS_B_TO_FSBT (mp, mp->m_inode_cluster_size)) + mp->m_sb.sb_inoalignmt >=xfs_icluster_size_fsb (mp)) mp->m_inoalign_mask = mp->m_sb.sb_inoalignmt -1 ;else mp->m_inoalign_mask =0 ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.10/xfs-use-xfs_icluster_size_fsb-to-calculate-inode-chunk-alignment.patch queue-4.10/xfs-use-xfs_icluster_size_fsb-to-calculate-inode-alignment-mask.patch