rbd: refactor rbd_header_from_disk()
authorAlex Elder <elder@inktank.com>
Mon, 6 May 2013 14:51:29 +0000 (09:51 -0500)
committerAlex Elder <elder@inktank.com>
Wed, 8 May 2013 22:00:33 +0000 (17:00 -0500)
commitbb23e37acb2ae9604130c4819fb8ae0f784a3a2b
tree847219a28fff93ecdf35df2adcf05a8755a26c35
parent46578dcdca951f3da70d3a5a9b5166b2a492a182
rbd: refactor rbd_header_from_disk()

This rearranges rbd_header_from_disk so that it:
    - allocates the snapshot context right away
    - keeps results in local variables, not changing the passed-in
      header until it's known we'll succeed
    - does initialization of set-once fields in a header only if
      they have not already been set

The last point is moot at the moment, because rbd_read_header()
(the only caller) always supplies a zero-filled header buffer.

Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
drivers/block/rbd.c