diff options
author | Alex Elder <elder@dreamhost.com> | 2012-11-01 08:39:26 -0500 |
---|---|---|
committer | Alex Elder <elder@inktank.com> | 2013-01-17 14:07:50 -0600 |
commit | c66c6e0c0b04ce4a152fe02c562dd0752665d580 (patch) | |
tree | a7a5ffc949c95738f035757dcd774c50c383c111 /drivers/block | |
parent | c3acb18196cf3d7d3db6a5121c1bc674c3fba31f (diff) | |
download | op-kernel-dev-c66c6e0c0b04ce4a152fe02c562dd0752665d580.zip op-kernel-dev-c66c6e0c0b04ce4a152fe02c562dd0752665d580.tar.gz |
rbd: document rbd_spec structure
I promised Josh I would document whether there were any restrictions
needed for accessing fields of an rbd_spec structure. This adds a
big block of comments that documents the structure and how it is
used--including the fact that we don't attempt to synchronize access
to it.
Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: David Zafman <david.zafman@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Diffstat (limited to 'drivers/block')
-rw-r--r-- | drivers/block/rbd.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index 89576a0..128978c 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c @@ -119,7 +119,26 @@ struct rbd_image_header { * An rbd image specification. * * The tuple (pool_id, image_id, snap_id) is sufficient to uniquely - * identify an image. + * identify an image. Each rbd_dev structure includes a pointer to + * an rbd_spec structure that encapsulates this identity. + * + * Each of the id's in an rbd_spec has an associated name. For a + * user-mapped image, the names are supplied and the id's associated + * with them are looked up. For a layered image, a parent image is + * defined by the tuple, and the names are looked up. + * + * An rbd_dev structure contains a parent_spec pointer which is + * non-null if the image it represents is a child in a layered + * image. This pointer will refer to the rbd_spec structure used + * by the parent rbd_dev for its own identity (i.e., the structure + * is shared between the parent and child). + * + * Since these structures are populated once, during the discovery + * phase of image construction, they are effectively immutable so + * we make no effort to synchronize access to them. + * + * Note that code herein does not assume the image name is known (it + * could be a null pointer). */ struct rbd_spec { u64 pool_id; |