Commit d4e78663 authored by Jeff Layton's avatar Jeff Layton
Browse files

ceph: use locks_inode_context helper



ceph currently doesn't access i_flctx safely. This requires a
smp_load_acquire, as the pointer is set via cmpxchg (a release
operation).

Reviewed-by: default avatarXiubo Li <xiubli@redhat.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJeff Layton <jlayton@kernel.org>
parent 401a8b8f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -364,7 +364,7 @@ void ceph_count_locks(struct inode *inode, int *fcntl_count, int *flock_count)
	*fcntl_count = 0;
	*flock_count = 0;

	ctx = inode->i_flctx;
	ctx = locks_inode_context(inode);
	if (ctx) {
		spin_lock(&ctx->flc_lock);
		list_for_each_entry(lock, &ctx->flc_posix, fl_list)
@@ -418,7 +418,7 @@ int ceph_encode_locks_to_buffer(struct inode *inode,
				int num_fcntl_locks, int num_flock_locks)
{
	struct file_lock *lock;
	struct file_lock_context *ctx = inode->i_flctx;
	struct file_lock_context *ctx = locks_inode_context(inode);
	int err = 0;
	int seen_fcntl = 0;
	int seen_flock = 0;