Skip to content

Commit

Permalink
orangefs: Do not unref if there is no bufmap.
Browse files Browse the repository at this point in the history
Signed-off-by: Mike Marshall <[email protected]>
Signed-off-by: Martin Brandenburg <[email protected]>
  • Loading branch information
Martin Brandenburg authored and hubcapsc committed Dec 17, 2015
1 parent 765a75b commit b09d10d
Showing 1 changed file with 19 additions and 8 deletions.
27 changes: 19 additions & 8 deletions fs/orangefs/orangefs-bufmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,21 +82,32 @@ static void orangefs_bufmap_unref(struct orangefs_bufmap *bufmap)
}
}

/*
* XXX: Can the size and shift change while the caller gives up the
* XXX: lock between calling this and doing something useful?
*/

int orangefs_bufmap_size_query(void)
{
struct orangefs_bufmap *bufmap = orangefs_bufmap_ref();
int size = bufmap ? bufmap->desc_size : 0;

orangefs_bufmap_unref(bufmap);
struct orangefs_bufmap *bufmap;
int size = 0;
bufmap = orangefs_bufmap_ref();
if (bufmap) {
size = bufmap->desc_size;
orangefs_bufmap_unref(bufmap);
}
return size;
}

int orangefs_bufmap_shift_query(void)
{
struct orangefs_bufmap *bufmap = orangefs_bufmap_ref();
int shift = bufmap ? bufmap->desc_shift : 0;

orangefs_bufmap_unref(bufmap);
struct orangefs_bufmap *bufmap;
int shift = 0;
bufmap = orangefs_bufmap_ref();
if (bufmap) {
shift = bufmap->desc_shift;
orangefs_bufmap_unref(bufmap);
}
return shift;
}

Expand Down

0 comments on commit b09d10d

Please sign in to comment.