MFC r271794: When updating device media size use cached cdevsw pointer.

Using pointer from the cdev directly is dangerous since we have no
reference on it, and it may change any time.  That caused panic if
device has gone.

While there, report capacity change only if it really changed.

Approved by:	re (dephij)