I recently grew a raidz1-based pool by a series of "zpool replace" commands that moved
it from 73GB disks to 146GB disks. When the final replace finished, I expected the
larger pool capacity to be available immediately. In reality, it didn't turn up until
after a reboot, as it looks like (from some quick browsing of the code) the device
asize only gets set at pool open time and doesn't get revaluated when a device grows.
I haven't checked to see if this is also the case for mirrors or raidz2.
See attached script for a file-based test case (note: it blows away a pool named
test-pool if it exists. use with care!).
6475340 covers a similar but not identical case (triggered by LUN growth rather than device replacement).
as a side note, until we can shrink pools, growing pools automatically strikes me as a
little dangerous (as it's an operation that can't be undone without trashing the pool).
(That also goes for automatically growing on open/import..)