Fix -o size less than PAGE_SIZE resulting in SIZE_MAX being used.

Discussed with:	kib
MFC after:	2 weeks
Cleanup redundant logic and add some comments to help explain how
it works in lieu of potentially less clear code.

Sponsored by:	EMC / Isilon Storage Division
Discussed with:	Russell Cattelan