After expanding an M4LIB, don't be misled by the ISPF statistics.
When receiving library full messages, the correct procedure is to use MARKUTIL to back up the M4LIB, initialize a new, one then restore the backup into the newly initialized dataset. (See Chapter 12 of the Environment Guide.)
Note that no matter how much larger you make the new M4LIB, the utilization of the new M4LIB will be almost 100% according to ISPF Data Set Information panels. This is expected because the initialization process not only allocates the space, but formats it. VISION:Builder keeps track of how much space is actually available for use and reports it at the end of each processing and definition run as part of the MK4W204 wrap up message.
For example for this 5 track BDAM M4LIB, ISPF reports 4 tracks are used:
General Data Current Allocation Management class . . : DEFAULT Allocated tracks . : 5 Storage class . . . : IMDCLASS Allocated extents . : 1 Volume serial . . . : ISP806 Device type . . . . : 3390 Data class . . . . . : DCWRKD Current Utilization Organization . . . : PS Used tracks . . . . : 4 Record format . . . : U Used extents . . . : 1 Record length . . . : 0 Block size . . . . : 27136 1st extent tracks . : 5 Secondary tracks . : 0
However, VISION:Builder knows the library is almost empty and 4 tracks are available:
** MK4W204 TYPE 0 NUMBER OF MESSAGES PRINTED IS 0. M4OLD - 21 RECORDS INPUT M4REPO - 41 RECORDS OUTPUT M4INPUT - 9 RECORDS INPUT M4LIST - 138 RECORDS OUTPUT 5 TRACKS ASSIGNED TO M4LIB -- 4 TRACKS NOT FULL.
Always rely on the VISION:Builder statistics since the dataset is processed entirely by the product.