summaryrefslogtreecommitdiff
path: root/fs/orangefs/orangefs-bufmap.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2016-02-13 11:16:37 -0500
committerMike Marshall <hubcap@omnibond.com>2016-02-19 13:45:54 -0500
commit178041848a6e7072cc6ebc1c6c7763e33f564722 (patch)
treefaeb03a2420885da2a825695386331aac12b5186 /fs/orangefs/orangefs-bufmap.c
parent05b39a8b5cecaaf356497ee7df2f8acbc59eb2ee (diff)
downloadlwn-178041848a6e7072cc6ebc1c6c7763e33f564722.tar.gz
lwn-178041848a6e7072cc6ebc1c6c7763e33f564722.zip
orangefs_bufmap_..._query(): don't bother with refcounts
... just hold the spinlock while fetching the field in question. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Mike Marshall <hubcap@omnibond.com>
Diffstat (limited to 'fs/orangefs/orangefs-bufmap.c')
-rw-r--r--fs/orangefs/orangefs-bufmap.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/orangefs/orangefs-bufmap.c b/fs/orangefs/orangefs-bufmap.c
index 1819dee58433..cd484665bf72 100644
--- a/fs/orangefs/orangefs-bufmap.c
+++ b/fs/orangefs/orangefs-bufmap.c
@@ -91,11 +91,11 @@ int orangefs_bufmap_size_query(void)
{
struct orangefs_bufmap *bufmap;
int size = 0;
- bufmap = orangefs_bufmap_ref();
- if (bufmap) {
+ spin_lock(&orangefs_bufmap_lock);
+ bufmap = __orangefs_bufmap;
+ if (bufmap)
size = bufmap->desc_size;
- orangefs_bufmap_unref(bufmap);
- }
+ spin_unlock(&orangefs_bufmap_lock);
return size;
}
@@ -103,11 +103,11 @@ int orangefs_bufmap_shift_query(void)
{
struct orangefs_bufmap *bufmap;
int shift = 0;
- bufmap = orangefs_bufmap_ref();
- if (bufmap) {
+ spin_lock(&orangefs_bufmap_lock);
+ bufmap = __orangefs_bufmap;
+ if (bufmap)
shift = bufmap->desc_shift;
- orangefs_bufmap_unref(bufmap);
- }
+ spin_unlock(&orangefs_bufmap_lock);
return shift;
}