|
@@ -70,8 +70,16 @@ xfs_fs_encode_fh(
|
|
|
else
|
|
|
fileid_type = FILEID_INO32_GEN_PARENT;
|
|
|
|
|
|
- /* filesystem may contain 64bit inode numbers */
|
|
|
- if (!(XFS_M(inode->i_sb)->m_flags & XFS_MOUNT_SMALL_INUMS))
|
|
|
+ /*
|
|
|
+ * If the the filesystem may contain 64bit inode numbers, we need
|
|
|
+ * to use larger file handles that can represent them.
|
|
|
+ *
|
|
|
+ * While we only allocate inodes that do not fit into 32 bits any
|
|
|
+ * large enough filesystem may contain them, thus the slightly
|
|
|
+ * confusing looking conditional below.
|
|
|
+ */
|
|
|
+ if (!(XFS_M(inode->i_sb)->m_flags & XFS_MOUNT_SMALL_INUMS) ||
|
|
|
+ (XFS_M(inode->i_sb)->m_flags & XFS_MOUNT_32BITINODES))
|
|
|
fileid_type |= XFS_FILEID_TYPE_64FLAG;
|
|
|
|
|
|
/*
|