On Sun, Jul 29, 2018 at 02:39:00PM +1000, Dave Chinner wrote: > On Fri, Jul 27, 2018 at 06:44:40AM -0400, Brian Foster wrote: > > That aside.. since these values shouldn't change often I'm wondering if > > it's worth calculating the global min/max once at mount time (we'd have > > The values are needed during the initial read of the superblock > before any "for the life of the mount" calculations can be made, > and they can change across log recovery, too, if recovery replays a > growfs transaction. Hence they really need to be point in time > calculations based on the current superblock values during > superblock reads.... > I'm not so worried about storing the calculated total as much as simplifying the implementation. All but the last iteration in the current loop calculate a fixed value, so this can trivially be simplified to something like: xfs_agino_range(mp, --agcount, first, last); max = last - first + 1; if (agcount) { xfs_agino_range(mp, agcount - 1, first, last); max += (last - first + 1) * agcount; } ... which (if it mattered) could probably simplify even further if we factored out the additional portion of the calculation that is fixed: xfs_agino_range(mp, --agcount, first, last); max = last - first + 1; if (agcount) max += agcount * mp->m_aginodes; I.e., with an ->m_aginodes field in xfs_mount that is analogous to sb_agblocks. Brian > Cheers, > > Dave. > -- > Dave Chinner > david@xxxxxxxxxxxxx > -- > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html