ceph: switch from BKL to lock_flocks()
authorSage Weil <sage@newdream.net>
Thu, 23 Sep 2010 02:57:10 +0000 (19:57 -0700)
committerSage Weil <sage@newdream.net>
Wed, 20 Oct 2010 22:38:18 +0000 (15:38 -0700)
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>
fs/ceph/mds_client.c

index fbfc298ac55b7aa0c9a055d29912308c960f3420..3142b15940c25656a43ec3a5d72af3e1ee1cece9 100644 (file)
@@ -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 {