= Solution
With a resident <inode>, the deepest allowed path uses two address blocks and one <file data block>, so every byte through the end of the doubly indirect region meets the three-read bound. There are ten directly addressed <file data blocks>, 512 singly addressed ones and $512^2$ doubly addressed ones. Therefore the largest contiguous <file> satisfying this bound is
$$
\boxed{2048(10+512+512^2)=537\,939\,968\text{ bytes}.}
$$
The next byte requires the triply indirect region, with three address-block reads and a fourth read for the <file data block>.
The resident-<inode> convention is essential. If the question's three reads must also include fetching a previously uncached <inode>, only two further reads remain; the maximum is then
$$
\boxed{2048(10+512)=1\,069\,056\text{ bytes, if the inode read is included}.}
$$
Neither figure includes arbitrary pathname-resolution reads. These are worst-case counts in the traditional fully allocated <multilevel inode indexing> model; existing <buffer cache> entries can reduce them.
Back to article page