diff options
author | Sage Weil <sage@newdream.net> | 2010-09-23 04:57:10 +0200 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2010-10-21 00:38:18 +0200 |
commit | 496e59553c51ce18acc836de070106b583926b87 (patch) | |
tree | a171b2ec236fd021d4f17ea9d5df7312e93c1645 /fs/ceph | |
parent | ceph: preallocate flock state without locks held (diff) | |
download | linux-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.c | 11 |
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 { |