hc
2024-05-11 645e752c5a84baeb21015cdc85fc05b7d16312c8
kernel/fs/nfsd/nfs4layouts.c
....@@ -169,8 +169,8 @@
169169 spin_unlock(&fp->fi_lock);
170170
171171 if (!nfsd4_layout_ops[ls->ls_layout_type]->disable_recalls)
172
- vfs_setlease(ls->ls_file, F_UNLCK, NULL, (void **)&ls);
173
- fput(ls->ls_file);
172
+ vfs_setlease(ls->ls_file->nf_file, F_UNLCK, NULL, (void **)&ls);
173
+ nfsd_file_put(ls->ls_file);
174174
175175 if (ls->ls_recalled)
176176 atomic_dec(&ls->ls_stid.sc_file->fi_lo_recalls);
....@@ -197,7 +197,7 @@
197197 fl->fl_end = OFFSET_MAX;
198198 fl->fl_owner = ls;
199199 fl->fl_pid = current->tgid;
200
- fl->fl_file = ls->ls_file;
200
+ fl->fl_file = ls->ls_file->nf_file;
201201
202202 status = vfs_setlease(fl->fl_file, fl->fl_type, &fl, NULL);
203203 if (status) {
....@@ -236,13 +236,13 @@
236236 NFSPROC4_CLNT_CB_LAYOUT);
237237
238238 if (parent->sc_type == NFS4_DELEG_STID)
239
- ls->ls_file = get_file(fp->fi_deleg_file);
239
+ ls->ls_file = nfsd_file_get(fp->fi_deleg_file);
240240 else
241241 ls->ls_file = find_any_file(fp);
242242 BUG_ON(!ls->ls_file);
243243
244244 if (nfsd4_layout_setlease(ls)) {
245
- fput(ls->ls_file);
245
+ nfsd_file_put(ls->ls_file);
246246 put_nfs4_file(fp);
247247 kmem_cache_free(nfs4_layout_stateid_cache, ls);
248248 return NULL;
....@@ -322,11 +322,11 @@
322322 if (ls->ls_recalled)
323323 goto out_unlock;
324324
325
- ls->ls_recalled = true;
326
- atomic_inc(&ls->ls_stid.sc_file->fi_lo_recalls);
327325 if (list_empty(&ls->ls_layouts))
328326 goto out_unlock;
329327
328
+ ls->ls_recalled = true;
329
+ atomic_inc(&ls->ls_stid.sc_file->fi_lo_recalls);
330330 trace_nfsd_layout_recall(&ls->ls_stid.sc_stateid);
331331
332332 refcount_inc(&ls->ls_stid.sc_count);
....@@ -626,7 +626,7 @@
626626
627627 argv[0] = (char *)nfsd_recall_failed;
628628 argv[1] = addr_str;
629
- argv[2] = ls->ls_file->f_path.mnt->mnt_sb->s_id;
629
+ argv[2] = ls->ls_file->nf_file->f_path.mnt->mnt_sb->s_id;
630630 argv[3] = NULL;
631631
632632 error = call_usermodehelper(nfsd_recall_failed, argv, envp,
....@@ -656,7 +656,6 @@
656656 struct nfsd_net *nn;
657657 ktime_t now, cutoff;
658658 const struct nfsd4_layout_ops *ops;
659
- LIST_HEAD(reaplist);
660659
661660
662661 switch (task->tk_status) {
....@@ -682,7 +681,7 @@
682681 rpc_delay(task, HZ/100); /* 10 mili-seconds */
683682 return 0;
684683 }
685
- /* Fallthrough */
684
+ fallthrough;
686685 default:
687686 /*
688687 * Unknown error or non-responding client, we'll need to fence.
....@@ -694,7 +693,7 @@
694693 ops->fence_client(ls);
695694 else
696695 nfsd4_cb_layout_fail(ls);
697
- return -1;
696
+ return 1;
698697 case -NFS4ERR_NOMATCHING_LAYOUT:
699698 trace_nfsd_layout_recall_done(&ls->ls_stid.sc_stateid);
700699 task->tk_status = 0;