mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +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
	
	 Benjamin Coddington
						Benjamin Coddington