diff options
Diffstat (limited to 'fs/ceph')
-rw-r--r-- | fs/ceph/locks.c | 2 | ||||
-rw-r--r-- | fs/ceph/mds_client.c | 8 |
2 files changed, 5 insertions, 5 deletions
diff --git a/fs/ceph/locks.c b/fs/ceph/locks.c index ebbf680378e2..690f73f42425 100644 --- a/fs/ceph/locks.c +++ b/fs/ceph/locks.c | |||
@@ -192,7 +192,7 @@ void ceph_count_locks(struct inode *inode, int *fcntl_count, int *flock_count) | |||
192 | 192 | ||
193 | /** | 193 | /** |
194 | * Encode the flock and fcntl locks for the given inode into the ceph_filelock | 194 | * Encode the flock and fcntl locks for the given inode into the ceph_filelock |
195 | * array. Must be called with lock_flocks() already held. | 195 | * array. Must be called with inode->i_lock already held. |
196 | * If we encounter more of a specific lock type than expected, return -ENOSPC. | 196 | * If we encounter more of a specific lock type than expected, return -ENOSPC. |
197 | */ | 197 | */ |
198 | int ceph_encode_locks_to_buffer(struct inode *inode, | 198 | int ceph_encode_locks_to_buffer(struct inode *inode, |
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index 4d2920304be8..74fd2898b2ab 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c | |||
@@ -2481,20 +2481,20 @@ static int encode_caps_cb(struct inode *inode, struct ceph_cap *cap, | |||
2481 | struct ceph_filelock *flocks; | 2481 | struct ceph_filelock *flocks; |
2482 | 2482 | ||
2483 | encode_again: | 2483 | encode_again: |
2484 | lock_flocks(); | 2484 | spin_lock(&inode->i_lock); |
2485 | ceph_count_locks(inode, &num_fcntl_locks, &num_flock_locks); | 2485 | ceph_count_locks(inode, &num_fcntl_locks, &num_flock_locks); |
2486 | unlock_flocks(); | 2486 | spin_unlock(&inode->i_lock); |
2487 | flocks = kmalloc((num_fcntl_locks+num_flock_locks) * | 2487 | flocks = kmalloc((num_fcntl_locks+num_flock_locks) * |
2488 | sizeof(struct ceph_filelock), GFP_NOFS); | 2488 | sizeof(struct ceph_filelock), GFP_NOFS); |
2489 | if (!flocks) { | 2489 | if (!flocks) { |
2490 | err = -ENOMEM; | 2490 | err = -ENOMEM; |
2491 | goto out_free; | 2491 | goto out_free; |
2492 | } | 2492 | } |
2493 | lock_flocks(); | 2493 | spin_lock(&inode->i_lock); |
2494 | err = ceph_encode_locks_to_buffer(inode, flocks, | 2494 | err = ceph_encode_locks_to_buffer(inode, flocks, |
2495 | num_fcntl_locks, | 2495 | num_fcntl_locks, |
2496 | num_flock_locks); | 2496 | num_flock_locks); |
2497 | unlock_flocks(); | 2497 | spin_unlock(&inode->i_lock); |
2498 | if (err) { | 2498 | if (err) { |
2499 | kfree(flocks); | 2499 | kfree(flocks); |
2500 | if (err == -ENOSPC) | 2500 | if (err == -ENOSPC) |