lockd: convert to using new filelock helpers
Convert to using the new file locking helper functions. Also in later patches we're going to introduce some macros with names that clash with the variable names in nlmclnt_lock. Rename them. Signed-off-by: Jeff Layton <jlayton@kernel.org> Link: https://lore.kernel.org/r/20240131-flsplit-v3-10-c6129007ee8d@kernel.org Reviewed-by: NeilBrown <neilb@suse.de> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
b4c6d52d8a
commit
872584f1bb
@ -522,8 +522,8 @@ nlmclnt_lock(struct nlm_rqst *req, struct file_lock *fl)
|
||||
struct nlm_host *host = req->a_host;
|
||||
struct nlm_res *resp = &req->a_res;
|
||||
struct nlm_wait block;
|
||||
unsigned char fl_flags = fl->fl_flags;
|
||||
unsigned char fl_type;
|
||||
unsigned char flags = fl->fl_flags;
|
||||
unsigned char type;
|
||||
__be32 b_status;
|
||||
int status = -ENOLCK;
|
||||
|
||||
@ -533,7 +533,7 @@ nlmclnt_lock(struct nlm_rqst *req, struct file_lock *fl)
|
||||
|
||||
fl->fl_flags |= FL_ACCESS;
|
||||
status = do_vfs_lock(fl);
|
||||
fl->fl_flags = fl_flags;
|
||||
fl->fl_flags = flags;
|
||||
if (status < 0)
|
||||
goto out;
|
||||
|
||||
@ -595,7 +595,7 @@ again:
|
||||
if (do_vfs_lock(fl) < 0)
|
||||
printk(KERN_WARNING "%s: VFS is out of sync with lock manager!\n", __func__);
|
||||
up_read(&host->h_rwsem);
|
||||
fl->fl_flags = fl_flags;
|
||||
fl->fl_flags = flags;
|
||||
status = 0;
|
||||
}
|
||||
if (status < 0)
|
||||
@ -605,7 +605,7 @@ again:
|
||||
* cases NLM_LCK_DENIED is returned for a permanent error. So
|
||||
* turn it into an ENOLCK.
|
||||
*/
|
||||
if (resp->status == nlm_lck_denied && (fl_flags & FL_SLEEP))
|
||||
if (resp->status == nlm_lck_denied && (flags & FL_SLEEP))
|
||||
status = -ENOLCK;
|
||||
else
|
||||
status = nlm_stat_to_errno(resp->status);
|
||||
@ -622,13 +622,13 @@ out_unlock:
|
||||
req->a_host->h_addrlen, req->a_res.status);
|
||||
dprintk("lockd: lock attempt ended in fatal error.\n"
|
||||
" Attempting to unlock.\n");
|
||||
fl_type = fl->fl_type;
|
||||
type = fl->fl_type;
|
||||
fl->fl_type = F_UNLCK;
|
||||
down_read(&host->h_rwsem);
|
||||
do_vfs_lock(fl);
|
||||
up_read(&host->h_rwsem);
|
||||
fl->fl_type = fl_type;
|
||||
fl->fl_flags = fl_flags;
|
||||
fl->fl_type = type;
|
||||
fl->fl_flags = flags;
|
||||
nlmclnt_async_call(cred, req, NLMPROC_UNLOCK, &nlmclnt_unlock_ops);
|
||||
return status;
|
||||
}
|
||||
@ -683,7 +683,7 @@ nlmclnt_unlock(struct nlm_rqst *req, struct file_lock *fl)
|
||||
struct nlm_host *host = req->a_host;
|
||||
struct nlm_res *resp = &req->a_res;
|
||||
int status;
|
||||
unsigned char fl_flags = fl->fl_flags;
|
||||
unsigned char flags = fl->fl_flags;
|
||||
|
||||
/*
|
||||
* Note: the server is supposed to either grant us the unlock
|
||||
@ -694,7 +694,7 @@ nlmclnt_unlock(struct nlm_rqst *req, struct file_lock *fl)
|
||||
down_read(&host->h_rwsem);
|
||||
status = do_vfs_lock(fl);
|
||||
up_read(&host->h_rwsem);
|
||||
fl->fl_flags = fl_flags;
|
||||
fl->fl_flags = flags;
|
||||
if (status == -ENOENT) {
|
||||
status = 0;
|
||||
goto out;
|
||||
|
@ -73,7 +73,7 @@ static inline unsigned int file_hash(struct nfs_fh *f)
|
||||
|
||||
int lock_to_openmode(struct file_lock *lock)
|
||||
{
|
||||
return (lock->fl_type == F_WRLCK) ? O_WRONLY : O_RDONLY;
|
||||
return (lock_is_write(lock)) ? O_WRONLY : O_RDONLY;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -218,7 +218,7 @@ nlm_traverse_locks(struct nlm_host *host, struct nlm_file *file,
|
||||
again:
|
||||
file->f_locks = 0;
|
||||
spin_lock(&flctx->flc_lock);
|
||||
list_for_each_entry(fl, &flctx->flc_posix, fl_list) {
|
||||
for_each_file_lock(fl, &flctx->flc_posix) {
|
||||
if (fl->fl_lmops != &nlmsvc_lock_operations)
|
||||
continue;
|
||||
|
||||
@ -272,7 +272,7 @@ nlm_file_inuse(struct nlm_file *file)
|
||||
|
||||
if (flctx && !list_empty_careful(&flctx->flc_posix)) {
|
||||
spin_lock(&flctx->flc_lock);
|
||||
list_for_each_entry(fl, &flctx->flc_posix, fl_list) {
|
||||
for_each_file_lock(fl, &flctx->flc_posix) {
|
||||
if (fl->fl_lmops == &nlmsvc_lock_operations) {
|
||||
spin_unlock(&flctx->flc_lock);
|
||||
return 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user