Commit 98b41ffe authored by Jeff Layton's avatar Jeff Layton
Browse files

lockd: use locks_inode_context helper



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

Cc: Trond Myklebust <trond.myklebust@hammerspace.com>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJeff Layton <jlayton@kernel.org>
parent 87f00aba
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -207,7 +207,7 @@ nlm_traverse_locks(struct nlm_host *host, struct nlm_file *file,
{
	struct inode	 *inode = nlmsvc_file_inode(file);
	struct file_lock *fl;
	struct file_lock_context *flctx = inode->i_flctx;
	struct file_lock_context *flctx = locks_inode_context(inode);
	struct nlm_host	 *lockhost;

	if (!flctx || list_empty_careful(&flctx->flc_posix))
@@ -262,7 +262,7 @@ nlm_file_inuse(struct nlm_file *file)
{
	struct inode	 *inode = nlmsvc_file_inode(file);
	struct file_lock *fl;
	struct file_lock_context *flctx = inode->i_flctx;
	struct file_lock_context *flctx = locks_inode_context(inode);

	if (file->f_count || !list_empty(&file->f_blocks) || file->f_shares)
		return 1;