Files
linux/drivers/block
Josh Durgin 4e752f0ab0 rbd: access snapshot context and mapping size safely
These fields may both change while the image is mapped if a snapshot
is created or deleted or the image is resized.  They are guarded by
rbd_dev->header_rwsem, so hold that while reading them, and store a
local copy to refer to outside of the critical section. The local copy
will stay consistent since the snapshot context is reference counted,
and the mapping size is just a u64. This prevents torn loads from
giving us inconsistent values.

Move reading header.snapc into the caller of rbd_img_request_create()
so that we only need to take the semaphore once. The read-only caller,
rbd_parent_request_create() can just pass NULL for snapc, since the
snapshot context is only relevant for writes.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2014-10-14 21:03:27 +04:00
..
2014-03-04 07:55:47 -08:00
2014-08-21 20:42:01 -05:00
2013-04-09 14:13:19 -04:00
2014-08-08 15:57:28 -07:00
2014-08-08 15:57:28 -07:00
2014-01-30 16:56:55 -08:00
2013-06-29 12:46:45 +04:00
2014-01-30 16:56:55 -08:00
2014-06-06 07:57:37 -06:00
2013-11-08 09:10:30 -07:00