summaryrefslogtreecommitdiffstats
path: root/fs/ceph
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2010-09-23 04:57:10 +0200
committerSage Weil <sage@newdream.net>2010-10-21 00:38:18 +0200
commit496e59553c51ce18acc836de070106b583926b87 (patch)
treea171b2ec236fd021d4f17ea9d5df7312e93c1645 /fs/ceph
parentceph: preallocate flock state without locks held (diff)
downloadlinux-496e59553c51ce18acc836de070106b583926b87.tar.xz
linux-496e59553c51ce18acc836de070106b583926b87.zip
ceph: switch from BKL to lock_flocks()
Switch from using the BKL explicitly to the new lock_flocks() interface. Eventually this will turn into a spinlock. Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph')
-rw-r--r--fs/ceph/mds_client.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
index fbfc298ac55b..3142b15940c2 100644
--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@ -1,11 +1,12 @@
#include <linux/ceph/ceph_debug.h>
+#include <linux/fs.h>
#include <linux/wait.h>
#include <linux/slab.h>
#include <linux/sched.h>
-#include <linux/smp_lock.h>
#include <linux/debugfs.h>
#include <linux/seq_file.h>
+#include <linux/smp_lock.h>
#include "super.h"
#include "mds_client.h"
@@ -2369,13 +2370,13 @@ static int encode_caps_cb(struct inode *inode, struct ceph_cap *cap,
ceph_pagelist_set_cursor(pagelist, &trunc_point);
do {
- lock_kernel();
+ lock_flocks();
ceph_count_locks(inode, &num_fcntl_locks,
&num_flock_locks);
rec.v2.flock_len = (2*sizeof(u32) +
(num_fcntl_locks+num_flock_locks) *
sizeof(struct ceph_filelock));
- unlock_kernel();
+ unlock_flocks();
/* pre-alloc pagelist */
ceph_pagelist_truncate(pagelist, &trunc_point);
@@ -2386,12 +2387,12 @@ static int encode_caps_cb(struct inode *inode, struct ceph_cap *cap,
/* encode locks */
if (!err) {
- lock_kernel();
+ lock_flocks();
err = ceph_encode_locks(inode,
pagelist,
num_fcntl_locks,
num_flock_locks);
- unlock_kernel();
+ unlock_flocks();
}
} while (err == -ENOSPC);
} else {