mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	Move locks API users to locks_lock_inode_wait()
Instead of having users check for FL_POSIX or FL_FLOCK to call the correct locks API function, use the check within locks_lock_inode_wait(). This allows for some later cleanup. Signed-off-by: Benjamin Coddington <bcodding@redhat.com> Signed-off-by: Jeff Layton <jeff.layton@primarydata.com>
This commit is contained in:
		
							parent
							
								
									e55c34a66f
								
							
						
					
					
						commit
						4f6563677a
					
				
					 12 changed files with 22 additions and 59 deletions
				
			
		| 
						 | 
				
			
			@ -2763,13 +2763,9 @@ ll_file_flock(struct file *file, int cmd, struct file_lock *file_lock)
 | 
			
		|||
	rc = md_enqueue(sbi->ll_md_exp, &einfo, NULL,
 | 
			
		||||
			op_data, &lockh, &flock, 0, NULL /* req */, flags);
 | 
			
		||||
 | 
			
		||||
	if ((file_lock->fl_flags & FL_FLOCK) &&
 | 
			
		||||
	    (rc == 0 || file_lock->fl_type == F_UNLCK))
 | 
			
		||||
		rc2  = flock_lock_file_wait(file, file_lock);
 | 
			
		||||
	if ((file_lock->fl_flags & FL_POSIX) &&
 | 
			
		||||
	    (rc == 0 || file_lock->fl_type == F_UNLCK) &&
 | 
			
		||||
	if ((rc == 0 || file_lock->fl_type == F_UNLCK) &&
 | 
			
		||||
	    !(flags & LDLM_FL_TEST_LOCK))
 | 
			
		||||
		rc2  = posix_lock_file_wait(file, file_lock);
 | 
			
		||||
		rc2  = locks_lock_file_wait(file, file_lock);
 | 
			
		||||
 | 
			
		||||
	if (rc2 && file_lock->fl_type != F_UNLCK) {
 | 
			
		||||
		einfo.ei_mode = LCK_NL;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -161,7 +161,7 @@ static int v9fs_file_do_lock(struct file *filp, int cmd, struct file_lock *fl)
 | 
			
		|||
	if ((fl->fl_flags & FL_POSIX) != FL_POSIX)
 | 
			
		||||
		BUG();
 | 
			
		||||
 | 
			
		||||
	res = posix_lock_file_wait(filp, fl);
 | 
			
		||||
	res = locks_lock_file_wait(filp, fl);
 | 
			
		||||
	if (res < 0)
 | 
			
		||||
		goto out;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -231,7 +231,7 @@ static int v9fs_file_do_lock(struct file *filp, int cmd, struct file_lock *fl)
 | 
			
		|||
	if (res < 0 && fl->fl_type != F_UNLCK) {
 | 
			
		||||
		fl_type = fl->fl_type;
 | 
			
		||||
		fl->fl_type = F_UNLCK;
 | 
			
		||||
		res = posix_lock_file_wait(filp, fl);
 | 
			
		||||
		res = locks_lock_file_wait(filp, fl);
 | 
			
		||||
		fl->fl_type = fl_type;
 | 
			
		||||
	}
 | 
			
		||||
out:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -228,12 +228,12 @@ int ceph_flock(struct file *file, int cmd, struct file_lock *fl)
 | 
			
		|||
	err = ceph_lock_message(CEPH_LOCK_FLOCK, CEPH_MDS_OP_SETFILELOCK,
 | 
			
		||||
				file, lock_cmd, wait, fl);
 | 
			
		||||
	if (!err) {
 | 
			
		||||
		err = flock_lock_file_wait(file, fl);
 | 
			
		||||
		err = locks_lock_file_wait(file, fl);
 | 
			
		||||
		if (err) {
 | 
			
		||||
			ceph_lock_message(CEPH_LOCK_FLOCK,
 | 
			
		||||
					  CEPH_MDS_OP_SETFILELOCK,
 | 
			
		||||
					  file, CEPH_LOCK_UNLOCK, 0, fl);
 | 
			
		||||
			dout("got %d on flock_lock_file_wait, undid lock", err);
 | 
			
		||||
			dout("got %d on locks_lock_file_wait, undid lock", err);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return err;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1553,7 +1553,7 @@ cifs_setlk(struct file *file, struct file_lock *flock, __u32 type,
 | 
			
		|||
 | 
			
		||||
out:
 | 
			
		||||
	if (flock->fl_flags & FL_POSIX && !rc)
 | 
			
		||||
		rc = posix_lock_file_wait(file, flock);
 | 
			
		||||
		rc = locks_lock_file_wait(file, flock);
 | 
			
		||||
	return rc;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -172,7 +172,7 @@ int dlm_posix_lock(dlm_lockspace_t *lockspace, u64 number, struct file *file,
 | 
			
		|||
	rv = op->info.rv;
 | 
			
		||||
 | 
			
		||||
	if (!rv) {
 | 
			
		||||
		if (posix_lock_file_wait(file, fl) < 0)
 | 
			
		||||
		if (locks_lock_file_wait(file, fl) < 0)
 | 
			
		||||
			log_error(ls, "dlm_posix_lock: vfs lock error %llx",
 | 
			
		||||
				  (unsigned long long)number);
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -262,7 +262,7 @@ int dlm_posix_unlock(dlm_lockspace_t *lockspace, u64 number, struct file *file,
 | 
			
		|||
	/* cause the vfs unlock to return ENOENT if lock is not found */
 | 
			
		||||
	fl->fl_flags |= FL_EXISTS;
 | 
			
		||||
 | 
			
		||||
	rv = posix_lock_file_wait(file, fl);
 | 
			
		||||
	rv = locks_lock_file_wait(file, fl);
 | 
			
		||||
	if (rv == -ENOENT) {
 | 
			
		||||
		rv = 0;
 | 
			
		||||
		goto out_free;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2189,7 +2189,7 @@ static int fuse_file_flock(struct file *file, int cmd, struct file_lock *fl)
 | 
			
		|||
	int err;
 | 
			
		||||
 | 
			
		||||
	if (fc->no_flock) {
 | 
			
		||||
		err = flock_lock_file_wait(file, fl);
 | 
			
		||||
		err = locks_lock_file_wait(file, fl);
 | 
			
		||||
	} else {
 | 
			
		||||
		struct fuse_file *ff = file->private_data;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1000,7 +1000,7 @@ static int gfs2_lock(struct file *file, int cmd, struct file_lock *fl)
 | 
			
		|||
	}
 | 
			
		||||
	if (unlikely(test_bit(SDF_SHUTDOWN, &sdp->sd_flags))) {
 | 
			
		||||
		if (fl->fl_type == F_UNLCK)
 | 
			
		||||
			posix_lock_file_wait(file, fl);
 | 
			
		||||
			locks_lock_file_wait(file, fl);
 | 
			
		||||
		return -EIO;
 | 
			
		||||
	}
 | 
			
		||||
	if (IS_GETLK(cmd))
 | 
			
		||||
| 
						 | 
				
			
			@ -1031,7 +1031,7 @@ static int do_flock(struct file *file, int cmd, struct file_lock *fl)
 | 
			
		|||
	if (gl) {
 | 
			
		||||
		if (fl_gh->gh_state == state)
 | 
			
		||||
			goto out;
 | 
			
		||||
		flock_lock_file_wait(file,
 | 
			
		||||
		locks_lock_file_wait(file,
 | 
			
		||||
				     &(struct file_lock){.fl_type = F_UNLCK});
 | 
			
		||||
		gfs2_glock_dq(fl_gh);
 | 
			
		||||
		gfs2_holder_reinit(state, flags, fl_gh);
 | 
			
		||||
| 
						 | 
				
			
			@ -1056,7 +1056,7 @@ static int do_flock(struct file *file, int cmd, struct file_lock *fl)
 | 
			
		|||
		if (error == GLR_TRYFAILED)
 | 
			
		||||
			error = -EAGAIN;
 | 
			
		||||
	} else {
 | 
			
		||||
		error = flock_lock_file_wait(file, fl);
 | 
			
		||||
		error = locks_lock_file_wait(file, fl);
 | 
			
		||||
		gfs2_assert_warn(GFS2_SB(&ip->i_inode), !error);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1071,7 +1071,7 @@ static void do_unflock(struct file *file, struct file_lock *fl)
 | 
			
		|||
	struct gfs2_holder *fl_gh = &fp->f_fl_gh;
 | 
			
		||||
 | 
			
		||||
	mutex_lock(&fp->f_fl_mutex);
 | 
			
		||||
	flock_lock_file_wait(file, fl);
 | 
			
		||||
	locks_lock_file_wait(file, fl);
 | 
			
		||||
	if (fl_gh->gh_gl) {
 | 
			
		||||
		gfs2_glock_dq(fl_gh);
 | 
			
		||||
		gfs2_holder_uninit(fl_gh);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -474,18 +474,7 @@ static void nlmclnt_locks_init_private(struct file_lock *fl, struct nlm_host *ho
 | 
			
		|||
 | 
			
		||||
static int do_vfs_lock(struct file_lock *fl)
 | 
			
		||||
{
 | 
			
		||||
	int res = 0;
 | 
			
		||||
	switch (fl->fl_flags & (FL_POSIX|FL_FLOCK)) {
 | 
			
		||||
		case FL_POSIX:
 | 
			
		||||
			res = posix_lock_file_wait(fl->fl_file, fl);
 | 
			
		||||
			break;
 | 
			
		||||
		case FL_FLOCK:
 | 
			
		||||
			res = flock_lock_file_wait(fl->fl_file, fl);
 | 
			
		||||
			break;
 | 
			
		||||
		default:
 | 
			
		||||
			BUG();
 | 
			
		||||
	}
 | 
			
		||||
	return res;
 | 
			
		||||
	return locks_lock_file_wait(fl->fl_file, fl);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1961,7 +1961,7 @@ SYSCALL_DEFINE2(flock, unsigned int, fd, unsigned int, cmd)
 | 
			
		|||
					  (can_sleep) ? F_SETLKW : F_SETLK,
 | 
			
		||||
					  lock);
 | 
			
		||||
	else
 | 
			
		||||
		error = flock_lock_file_wait(f.file, lock);
 | 
			
		||||
		error = locks_lock_file_wait(f.file, lock);
 | 
			
		||||
 | 
			
		||||
 out_free:
 | 
			
		||||
	locks_free_lock(lock);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -738,18 +738,7 @@ do_getlk(struct file *filp, int cmd, struct file_lock *fl, int is_local)
 | 
			
		|||
 | 
			
		||||
static int do_vfs_lock(struct file *file, struct file_lock *fl)
 | 
			
		||||
{
 | 
			
		||||
	int res = 0;
 | 
			
		||||
	switch (fl->fl_flags & (FL_POSIX|FL_FLOCK)) {
 | 
			
		||||
		case FL_POSIX:
 | 
			
		||||
			res = posix_lock_file_wait(file, fl);
 | 
			
		||||
			break;
 | 
			
		||||
		case FL_FLOCK:
 | 
			
		||||
			res = flock_lock_file_wait(file, fl);
 | 
			
		||||
			break;
 | 
			
		||||
		default:
 | 
			
		||||
			BUG();
 | 
			
		||||
	}
 | 
			
		||||
	return res;
 | 
			
		||||
	return locks_lock_file_wait(file, fl);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5472,18 +5472,7 @@ static int nfs4_proc_getlk(struct nfs4_state *state, int cmd, struct file_lock *
 | 
			
		|||
 | 
			
		||||
static int do_vfs_lock(struct inode *inode, struct file_lock *fl)
 | 
			
		||||
{
 | 
			
		||||
	int res = 0;
 | 
			
		||||
	switch (fl->fl_flags & (FL_POSIX|FL_FLOCK)) {
 | 
			
		||||
		case FL_POSIX:
 | 
			
		||||
			res = posix_lock_inode_wait(inode, fl);
 | 
			
		||||
			break;
 | 
			
		||||
		case FL_FLOCK:
 | 
			
		||||
			res = flock_lock_inode_wait(inode, fl);
 | 
			
		||||
			break;
 | 
			
		||||
		default:
 | 
			
		||||
			BUG();
 | 
			
		||||
	}
 | 
			
		||||
	return res;
 | 
			
		||||
	return locks_lock_inode_wait(inode, fl);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct nfs4_unlockdata {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -66,7 +66,7 @@ static int ocfs2_do_flock(struct file *file, struct inode *inode,
 | 
			
		|||
		 * level.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
		flock_lock_file_wait(file,
 | 
			
		||||
		locks_lock_file_wait(file,
 | 
			
		||||
				     &(struct file_lock){.fl_type = F_UNLCK});
 | 
			
		||||
 | 
			
		||||
		ocfs2_file_unlock(file);
 | 
			
		||||
| 
						 | 
				
			
			@ -81,7 +81,7 @@ static int ocfs2_do_flock(struct file *file, struct inode *inode,
 | 
			
		|||
		goto out;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ret = flock_lock_file_wait(file, fl);
 | 
			
		||||
	ret = locks_lock_file_wait(file, fl);
 | 
			
		||||
	if (ret)
 | 
			
		||||
		ocfs2_file_unlock(file);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -98,7 +98,7 @@ static int ocfs2_do_funlock(struct file *file, int cmd, struct file_lock *fl)
 | 
			
		|||
 | 
			
		||||
	mutex_lock(&fp->fp_mutex);
 | 
			
		||||
	ocfs2_file_unlock(file);
 | 
			
		||||
	ret = flock_lock_file_wait(file, fl);
 | 
			
		||||
	ret = locks_lock_file_wait(file, fl);
 | 
			
		||||
	mutex_unlock(&fp->fp_mutex);
 | 
			
		||||
 | 
			
		||||
	return ret;
 | 
			
		||||
| 
						 | 
				
			
			@ -119,7 +119,7 @@ int ocfs2_flock(struct file *file, int cmd, struct file_lock *fl)
 | 
			
		|||
 | 
			
		||||
	if ((osb->s_mount_opt & OCFS2_MOUNT_LOCALFLOCKS) ||
 | 
			
		||||
	    ocfs2_mount_local(osb))
 | 
			
		||||
		return flock_lock_file_wait(file, fl);
 | 
			
		||||
		return locks_lock_file_wait(file, fl);
 | 
			
		||||
 | 
			
		||||
	if (fl->fl_type == F_UNLCK)
 | 
			
		||||
		return ocfs2_do_funlock(file, cmd, fl);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue