On Thu, Jun 22, 2023 at 12:55:43PM +1000, Dave Chinner wrote: > On Thu, May 25, 2023 at 05:47:08PM -0700, Darrick J. Wong wrote: > > From: Darrick J. Wong <djwong@xxxxxxxxxx> > > > > Create a simple 'big array' data structure for storage of fixed-size > > metadata records that will be used to reconstruct a btree index. For > > repair operations, the most important operations are append, iterate, > > and sort. > .... > > +/* > > + * Initialize a big memory array. Array records cannot be larger than a > > + * page, and the array cannot span more bytes than the page cache supports. > > + * If @required_capacity is nonzero, the maximum array size will be set to this > > + * quantity and the array creation will fail if the underlying storage cannot > > + * support that many records. > > + */ > > +int > > +xfarray_create( > > + struct xfs_mount *mp, > > + const char *description, > > + unsigned long long required_capacity, > > + size_t obj_size, > > + struct xfarray **arrayp) > > +{ > > + struct xfarray *array; > > + struct xfile *xfile; > > + int error; > > + > > + ASSERT(obj_size < PAGE_SIZE); > > + > > + error = xfile_create(mp, description, 0, &xfile); > > + if (error) > > + return error; > > The xfarray and xfile can be completely independent of anything XFS > at all by passing the full xfile "filename" that is to be used here > rather than having xfile_create prefix the description with a string > like "XFS (devname):". Ok, I'll shift the "XFS (devname)" part into the callers for the next round. --D > ..... > > Otherwise this is all fine. > > -Dave. > -- > Dave Chinner > david@xxxxxxxxxxxxx