shrinking an FS with allocation groups should only involve the redistributing of data in the last allocation group.
expanding should be pretty simple. possible resizing of last allocation group, plus the adding of empty ones.
hmm… i want resize() call in vfs!