From: Greg Kroah-Hartman Date: Thu, 9 Jun 2022 08:09:04 +0000 (+0200) Subject: drop queue-5.17/nfsv4-fix-free-of-uninitialized-nfs4_label-on-referr.patch X-Git-Tag: v5.10.121~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a8ab84a20269b2a6750ffc6bbc289fc5dc973684;p=thirdparty%2Fkernel%2Fstable-queue.git drop queue-5.17/nfsv4-fix-free-of-uninitialized-nfs4_label-on-referr.patch --- diff --git a/queue-5.10/series b/queue-5.10/series index dd825961de5..6d48b5b6f10 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -22,7 +22,6 @@ btrfs-add-0x-prefix-for-unsupported-optional-features.patch btrfs-repair-super-block-num_devices-automatically.patch iommu-vt-d-add-rpls-to-quirk-list-to-skip-te-disabli.patch drm-virtio-fix-null-pointer-dereference-in-virtio_gp.patch -selftests-bpf-fix-vfs_link-kprobe-definition.patch mwifiex-add-mutex-lock-for-call-in-mwifiex_dfs_chan_.patch b43legacy-fix-assigning-negative-value-to-unsigned-v.patch b43-fix-assigning-negative-value-to-unsigned-variabl.patch diff --git a/queue-5.17/nfs-convert-gfp_nofs-to-gfp_kernel.patch b/queue-5.17/nfs-convert-gfp_nofs-to-gfp_kernel.patch index af476ba85d5..d246d489027 100644 --- a/queue-5.17/nfs-convert-gfp_nofs-to-gfp_kernel.patch +++ b/queue-5.17/nfs-convert-gfp_nofs-to-gfp_kernel.patch @@ -14,14 +14,12 @@ instances which might be used by other contexts. Signed-off-by: Trond Myklebust Signed-off-by: Sasha Levin --- - fs/nfs/inode.c | 6 +++--- - fs/nfs/nfs4proc.c | 15 +++++++-------- - fs/nfs/nfs4state.c | 2 +- - fs/nfs/pnfs.c | 4 ++-- + fs/nfs/inode.c | 6 +++--- + fs/nfs/nfs4proc.c | 15 +++++++-------- + fs/nfs/nfs4state.c | 2 +- + fs/nfs/pnfs.c | 4 ++-- 4 files changed, 13 insertions(+), 14 deletions(-) -diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c -index e4fb939a2904..c32040c968b6 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c @@ -1582,7 +1582,7 @@ struct nfs_fattr *nfs_alloc_fattr(void) @@ -33,7 +31,7 @@ index e4fb939a2904..c32040c968b6 100644 if (fattr != NULL) { nfs_fattr_init(fattr); fattr->label = NULL; -@@ -1598,7 +1598,7 @@ struct nfs_fattr *nfs_alloc_fattr_with_label(struct nfs_server *server) +@@ -1598,7 +1598,7 @@ struct nfs_fattr *nfs_alloc_fattr_with_l if (!fattr) return NULL; @@ -51,11 +49,9 @@ index e4fb939a2904..c32040c968b6 100644 if (fh != NULL) fh->size = 0; return fh; -diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c -index 7d78ace0f025..bbc99dbb3df5 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c -@@ -5911,7 +5911,7 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t bu +@@ -5912,7 +5912,7 @@ static ssize_t __nfs4_get_acl_uncached(s buflen = server->rsize; npages = DIV_ROUND_UP(buflen, PAGE_SIZE) + 1; @@ -64,7 +60,7 @@ index 7d78ace0f025..bbc99dbb3df5 100644 if (!pages) return -ENOMEM; -@@ -6618,7 +6618,7 @@ static int _nfs4_proc_delegreturn(struct inode *inode, const struct cred *cred, +@@ -6619,7 +6619,7 @@ static int _nfs4_proc_delegreturn(struct }; int status = 0; @@ -73,7 +69,7 @@ index 7d78ace0f025..bbc99dbb3df5 100644 if (data == NULL) return -ENOMEM; -@@ -6806,7 +6806,7 @@ static struct nfs4_unlockdata *nfs4_alloc_unlockdata(struct file_lock *fl, +@@ -6807,7 +6807,7 @@ static struct nfs4_unlockdata *nfs4_allo struct nfs4_state *state = lsp->ls_state; struct inode *inode = state->inode; @@ -82,7 +78,7 @@ index 7d78ace0f025..bbc99dbb3df5 100644 if (p == NULL) return NULL; p->arg.fh = NFS_FH(inode); -@@ -7211,8 +7211,7 @@ static int _nfs4_do_setlk(struct nfs4_state *state, int cmd, struct file_lock *f +@@ -7212,8 +7212,7 @@ static int _nfs4_do_setlk(struct nfs4_st task_setup_data.flags |= RPC_TASK_MOVEABLE; data = nfs4_alloc_lockdata(fl, nfs_file_open_context(fl->fl_file), @@ -92,7 +88,7 @@ index 7d78ace0f025..bbc99dbb3df5 100644 if (data == NULL) return -ENOMEM; if (IS_SETLKW(cmd)) -@@ -7635,7 +7634,7 @@ nfs4_release_lockowner(struct nfs_server *server, struct nfs4_lock_state *lsp) +@@ -7636,7 +7635,7 @@ nfs4_release_lockowner(struct nfs_server if (server->nfs_client->cl_mvops->minor_version != 0) return; @@ -101,7 +97,7 @@ index 7d78ace0f025..bbc99dbb3df5 100644 if (!data) return; data->lsp = lsp; -@@ -9301,7 +9300,7 @@ static struct rpc_task *_nfs41_proc_sequence(struct nfs_client *clp, +@@ -9302,7 +9301,7 @@ static struct rpc_task *_nfs41_proc_sequ goto out_err; ret = ERR_PTR(-ENOMEM); @@ -110,7 +106,7 @@ index 7d78ace0f025..bbc99dbb3df5 100644 if (calldata == NULL) goto out_put_clp; nfs4_init_sequence(&calldata->args, &calldata->res, 0, is_privileged); -@@ -10232,7 +10231,7 @@ static int nfs41_free_stateid(struct nfs_server *server, +@@ -10233,7 +10232,7 @@ static int nfs41_free_stateid(struct nfs &task_setup.rpc_client, &msg); dprintk("NFS call free_stateid %p\n", stateid); @@ -119,11 +115,9 @@ index 7d78ace0f025..bbc99dbb3df5 100644 if (!data) return -ENOMEM; data->server = server; -diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c -index 9d312a28b2f0..7f406d4b4cee 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c -@@ -821,7 +821,7 @@ static void __nfs4_close(struct nfs4_state *state, +@@ -821,7 +821,7 @@ static void __nfs4_close(struct nfs4_sta void nfs4_close_state(struct nfs4_state *state, fmode_t fmode) { @@ -132,11 +126,9 @@ index 9d312a28b2f0..7f406d4b4cee 100644 } void nfs4_close_sync(struct nfs4_state *state, fmode_t fmode) -diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c -index 9203a17b3f09..1b4dd8b828de 100644 --- a/fs/nfs/pnfs.c +++ b/fs/nfs/pnfs.c -@@ -1244,7 +1244,7 @@ pnfs_send_layoutreturn(struct pnfs_layout_hdr *lo, +@@ -1244,7 +1244,7 @@ pnfs_send_layoutreturn(struct pnfs_layou int status = 0; *pcred = NULL; @@ -145,7 +137,7 @@ index 9203a17b3f09..1b4dd8b828de 100644 if (unlikely(lrp == NULL)) { status = -ENOMEM; spin_lock(&ino->i_lock); -@@ -3263,7 +3263,7 @@ struct nfs4_threshold *pnfs_mdsthreshold_alloc(void) +@@ -3263,7 +3263,7 @@ struct nfs4_threshold *pnfs_mdsthreshold { struct nfs4_threshold *thp; @@ -154,6 +146,3 @@ index 9203a17b3f09..1b4dd8b828de 100644 if (!thp) { dprintk("%s mdsthreshold allocation failed\n", __func__); return NULL; --- -2.35.1 - diff --git a/queue-5.17/nfsv4-fix-free-of-uninitialized-nfs4_label-on-referr.patch b/queue-5.17/nfsv4-fix-free-of-uninitialized-nfs4_label-on-referr.patch deleted file mode 100644 index e02ee59970c..00000000000 --- a/queue-5.17/nfsv4-fix-free-of-uninitialized-nfs4_label-on-referr.patch +++ /dev/null @@ -1,203 +0,0 @@ -From 767a761eac57c095413e6a2f72aca2c06d98808f Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Sat, 14 May 2022 07:05:13 -0400 -Subject: NFSv4: Fix free of uninitialized nfs4_label on referral lookup. - -From: Benjamin Coddington - -[ Upstream commit c3ed222745d9ad7b69299b349a64ba533c64a34f ] - -Send along the already-allocated fattr along with nfs4_fs_locations, and -drop the memcpy of fattr. We end up growing two more allocations, but this -fixes up a crash as: - -PID: 790 TASK: ffff88811b43c000 CPU: 0 COMMAND: "ls" - #0 [ffffc90000857920] panic at ffffffff81b9bfde - #1 [ffffc900008579c0] do_trap at ffffffff81023a9b - #2 [ffffc90000857a10] do_error_trap at ffffffff81023b78 - #3 [ffffc90000857a58] exc_stack_segment at ffffffff81be1f45 - #4 [ffffc90000857a80] asm_exc_stack_segment at ffffffff81c009de - #5 [ffffc90000857b08] nfs_lookup at ffffffffa0302322 [nfs] - #6 [ffffc90000857b70] __lookup_slow at ffffffff813a4a5f - #7 [ffffc90000857c60] walk_component at ffffffff813a86c4 - #8 [ffffc90000857cb8] path_lookupat at ffffffff813a9553 - #9 [ffffc90000857cf0] filename_lookup at ffffffff813ab86b - -Suggested-by: Trond Myklebust -Fixes: 9558a007dbc3 ("NFS: Remove the label from the nfs4_lookup_res struct") -Signed-off-by: Benjamin Coddington -Signed-off-by: Anna Schumaker -Signed-off-by: Sasha Levin ---- - fs/nfs/nfs4namespace.c | 9 +++++++-- - fs/nfs/nfs4proc.c | 15 +++++++-------- - fs/nfs/nfs4state.c | 9 ++++++++- - fs/nfs/nfs4xdr.c | 4 ++-- - include/linux/nfs_xdr.h | 2 +- - 5 files changed, 25 insertions(+), 14 deletions(-) - -diff --git a/fs/nfs/nfs4namespace.c b/fs/nfs/nfs4namespace.c -index 3680c8da510c..f2dbf904c598 100644 ---- a/fs/nfs/nfs4namespace.c -+++ b/fs/nfs/nfs4namespace.c -@@ -417,6 +417,9 @@ static int nfs_do_refmount(struct fs_context *fc, struct rpc_clnt *client) - fs_locations = kmalloc(sizeof(struct nfs4_fs_locations), GFP_KERNEL); - if (!fs_locations) - goto out_free; -+ fs_locations->fattr = nfs_alloc_fattr(); -+ if (!fs_locations->fattr) -+ goto out_free_2; - - /* Get locations */ - dentry = ctx->clone_data.dentry; -@@ -427,14 +430,16 @@ static int nfs_do_refmount(struct fs_context *fc, struct rpc_clnt *client) - err = nfs4_proc_fs_locations(client, d_inode(parent), &dentry->d_name, fs_locations, page); - dput(parent); - if (err != 0) -- goto out_free_2; -+ goto out_free_3; - - err = -ENOENT; - if (fs_locations->nlocations <= 0 || - fs_locations->fs_path.ncomponents <= 0) -- goto out_free_2; -+ goto out_free_3; - - err = nfs_follow_referral(fc, fs_locations); -+out_free_3: -+ kfree(fs_locations->fattr); - out_free_2: - kfree(fs_locations); - out_free: -diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c -index 3d307854c650..7d78ace0f025 100644 ---- a/fs/nfs/nfs4proc.c -+++ b/fs/nfs/nfs4proc.c -@@ -4246,6 +4246,8 @@ static int nfs4_get_referral(struct rpc_clnt *client, struct inode *dir, - if (locations == NULL) - goto out; - -+ locations->fattr = fattr; -+ - status = nfs4_proc_fs_locations(client, dir, name, locations, page); - if (status != 0) - goto out; -@@ -4255,17 +4257,14 @@ static int nfs4_get_referral(struct rpc_clnt *client, struct inode *dir, - * referral. Cause us to drop into the exception handler, which - * will kick off migration recovery. - */ -- if (nfs_fsid_equal(&NFS_SERVER(dir)->fsid, &locations->fattr.fsid)) { -+ if (nfs_fsid_equal(&NFS_SERVER(dir)->fsid, &fattr->fsid)) { - dprintk("%s: server did not return a different fsid for" - " a referral at %s\n", __func__, name->name); - status = -NFS4ERR_MOVED; - goto out; - } - /* Fixup attributes for the nfs_lookup() call to nfs_fhget() */ -- nfs_fixup_referral_attributes(&locations->fattr); -- -- /* replace the lookup nfs_fattr with the locations nfs_fattr */ -- memcpy(fattr, &locations->fattr, sizeof(struct nfs_fattr)); -+ nfs_fixup_referral_attributes(fattr); - memset(fhandle, 0, sizeof(struct nfs_fh)); - out: - if (page) -@@ -7906,7 +7905,7 @@ static int _nfs4_proc_fs_locations(struct rpc_clnt *client, struct inode *dir, - else - bitmask[1] &= ~FATTR4_WORD1_MOUNTED_ON_FILEID; - -- nfs_fattr_init(&fs_locations->fattr); -+ nfs_fattr_init(fs_locations->fattr); - fs_locations->server = server; - fs_locations->nlocations = 0; - status = nfs4_call_sync(client, server, &msg, &args.seq_args, &res.seq_res, 0); -@@ -7971,7 +7970,7 @@ static int _nfs40_proc_get_locations(struct nfs_server *server, - unsigned long now = jiffies; - int status; - -- nfs_fattr_init(&locations->fattr); -+ nfs_fattr_init(locations->fattr); - locations->server = server; - locations->nlocations = 0; - -@@ -8024,7 +8023,7 @@ static int _nfs41_proc_get_locations(struct nfs_server *server, - }; - int status; - -- nfs_fattr_init(&locations->fattr); -+ nfs_fattr_init(locations->fattr); - locations->server = server; - locations->nlocations = 0; - -diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c -index 0f4818627ef0..9d312a28b2f0 100644 ---- a/fs/nfs/nfs4state.c -+++ b/fs/nfs/nfs4state.c -@@ -2097,6 +2097,11 @@ static int nfs4_try_migration(struct nfs_server *server, const struct cred *cred - dprintk("<-- %s: no memory\n", __func__); - goto out; - } -+ locations->fattr = nfs_alloc_fattr(); -+ if (locations->fattr == NULL) { -+ dprintk("<-- %s: no memory\n", __func__); -+ goto out; -+ } - - inode = d_inode(server->super->s_root); - result = nfs4_proc_get_locations(server, NFS_FH(inode), locations, -@@ -2111,7 +2116,7 @@ static int nfs4_try_migration(struct nfs_server *server, const struct cred *cred - if (!locations->nlocations) - goto out; - -- if (!(locations->fattr.valid & NFS_ATTR_FATTR_V4_LOCATIONS)) { -+ if (!(locations->fattr->valid & NFS_ATTR_FATTR_V4_LOCATIONS)) { - dprintk("<-- %s: No fs_locations data, migration skipped\n", - __func__); - goto out; -@@ -2136,6 +2141,8 @@ static int nfs4_try_migration(struct nfs_server *server, const struct cred *cred - out: - if (page != NULL) - __free_page(page); -+ if (locations != NULL) -+ kfree(locations->fattr); - kfree(locations); - if (result) { - pr_err("NFS: migration recovery failed (server %s)\n", -diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c -index 8e70b92df4cc..7dbeb13e7d0d 100644 ---- a/fs/nfs/nfs4xdr.c -+++ b/fs/nfs/nfs4xdr.c -@@ -7051,7 +7051,7 @@ static int nfs4_xdr_dec_fs_locations(struct rpc_rqst *req, - if (res->migration) { - xdr_enter_page(xdr, PAGE_SIZE); - status = decode_getfattr_generic(xdr, -- &res->fs_locations->fattr, -+ res->fs_locations->fattr, - NULL, res->fs_locations, - res->fs_locations->server); - if (status) -@@ -7064,7 +7064,7 @@ static int nfs4_xdr_dec_fs_locations(struct rpc_rqst *req, - goto out; - xdr_enter_page(xdr, PAGE_SIZE); - status = decode_getfattr_generic(xdr, -- &res->fs_locations->fattr, -+ res->fs_locations->fattr, - NULL, res->fs_locations, - res->fs_locations->server); - } -diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h -index 728cb0c1f0b6..3091db5732cb 100644 ---- a/include/linux/nfs_xdr.h -+++ b/include/linux/nfs_xdr.h -@@ -1213,7 +1213,7 @@ struct nfs4_fs_location { - - #define NFS4_FS_LOCATIONS_MAXENTRIES 10 - struct nfs4_fs_locations { -- struct nfs_fattr fattr; -+ struct nfs_fattr *fattr; - const struct nfs_server *server; - struct nfs4_pathname fs_path; - int nlocations; --- -2.35.1 - diff --git a/queue-5.17/nfsv4.1-mark-qualified-async-operations-as-moveable-.patch b/queue-5.17/nfsv4.1-mark-qualified-async-operations-as-moveable-.patch index 26381b3d468..c3766ebbd86 100644 --- a/queue-5.17/nfsv4.1-mark-qualified-async-operations-as-moveable-.patch +++ b/queue-5.17/nfsv4.1-mark-qualified-async-operations-as-moveable-.patch @@ -15,18 +15,16 @@ Signed-off-by: Olga Kornievskaia Signed-off-by: Anna Schumaker Signed-off-by: Sasha Levin --- - fs/nfs/nfs4proc.c | 26 ++++++++++++++------------ - fs/nfs/pagelist.c | 3 +++ - fs/nfs/unlink.c | 8 ++++++++ - fs/nfs/write.c | 4 ++++ - include/linux/nfs_fs_sb.h | 1 + + fs/nfs/nfs4proc.c | 26 ++++++++++++++------------ + fs/nfs/pagelist.c | 3 +++ + fs/nfs/unlink.c | 8 ++++++++ + fs/nfs/write.c | 4 ++++ + include/linux/nfs_fs_sb.h | 1 + 5 files changed, 30 insertions(+), 12 deletions(-) -diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c -index bbc99dbb3df5..476dca7ce7ab 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c -@@ -1162,7 +1162,7 @@ static int nfs4_call_sync_sequence(struct rpc_clnt *clnt, +@@ -1162,7 +1162,7 @@ static int nfs4_call_sync_sequence(struc { unsigned short task_flags = 0; @@ -35,7 +33,7 @@ index bbc99dbb3df5..476dca7ce7ab 100644 task_flags = RPC_TASK_MOVEABLE; return nfs4_do_call_sync(clnt, server, msg, args, res, task_flags); } -@@ -2573,7 +2573,7 @@ static int nfs4_run_open_task(struct nfs4_opendata *data, +@@ -2573,7 +2573,7 @@ static int nfs4_run_open_task(struct nfs }; int status; @@ -44,7 +42,7 @@ index bbc99dbb3df5..476dca7ce7ab 100644 task_setup_data.flags |= RPC_TASK_MOVEABLE; kref_get(&data->kref); -@@ -3736,7 +3736,7 @@ int nfs4_do_close(struct nfs4_state *state, gfp_t gfp_mask, int wait) +@@ -3736,7 +3736,7 @@ int nfs4_do_close(struct nfs4_state *sta }; int status = -ENOMEM; @@ -53,7 +51,7 @@ index bbc99dbb3df5..476dca7ce7ab 100644 task_setup_data.flags |= RPC_TASK_MOVEABLE; nfs4_state_protect(server->nfs_client, NFS_SP4_MACH_CRED_CLEANUP, -@@ -4406,7 +4406,7 @@ static int _nfs4_proc_lookup(struct rpc_clnt *clnt, struct inode *dir, +@@ -4407,7 +4407,7 @@ static int _nfs4_proc_lookup(struct rpc_ }; unsigned short task_flags = 0; @@ -62,7 +60,7 @@ index bbc99dbb3df5..476dca7ce7ab 100644 task_flags = RPC_TASK_MOVEABLE; /* Is this is an attribute revalidation, subject to softreval? */ -@@ -6614,10 +6614,13 @@ static int _nfs4_proc_delegreturn(struct inode *inode, const struct cred *cred, +@@ -6615,10 +6615,13 @@ static int _nfs4_proc_delegreturn(struct .rpc_client = server->client, .rpc_message = &msg, .callback_ops = &nfs4_delegreturn_ops, @@ -77,7 +75,7 @@ index bbc99dbb3df5..476dca7ce7ab 100644 data = kzalloc(sizeof(*data), GFP_KERNEL); if (data == NULL) return -ENOMEM; -@@ -6931,10 +6934,8 @@ static struct rpc_task *nfs4_do_unlck(struct file_lock *fl, +@@ -6932,10 +6935,8 @@ static struct rpc_task *nfs4_do_unlck(st .workqueue = nfsiod_workqueue, .flags = RPC_TASK_ASYNC, }; @@ -89,7 +87,7 @@ index bbc99dbb3df5..476dca7ce7ab 100644 task_setup_data.flags |= RPC_TASK_MOVEABLE; nfs4_state_protect(NFS_SERVER(lsp->ls_state->inode)->nfs_client, -@@ -7205,9 +7206,8 @@ static int _nfs4_do_setlk(struct nfs4_state *state, int cmd, struct file_lock *f +@@ -7206,9 +7207,8 @@ static int _nfs4_do_setlk(struct nfs4_st .flags = RPC_TASK_ASYNC | RPC_TASK_CRED_NOREF, }; int ret; @@ -100,7 +98,7 @@ index bbc99dbb3df5..476dca7ce7ab 100644 task_setup_data.flags |= RPC_TASK_MOVEABLE; data = nfs4_alloc_lockdata(fl, nfs_file_open_context(fl->fl_file), -@@ -10380,7 +10380,8 @@ static const struct nfs4_minor_version_ops nfs_v4_1_minor_ops = { +@@ -10381,7 +10381,8 @@ static const struct nfs4_minor_version_o | NFS_CAP_POSIX_LOCK | NFS_CAP_STATEID_NFSV41 | NFS_CAP_ATOMIC_OPEN_V1 @@ -110,7 +108,7 @@ index bbc99dbb3df5..476dca7ce7ab 100644 .init_client = nfs41_init_client, .shutdown_client = nfs41_shutdown_client, .match_stateid = nfs41_match_stateid, -@@ -10415,7 +10416,8 @@ static const struct nfs4_minor_version_ops nfs_v4_2_minor_ops = { +@@ -10416,7 +10417,8 @@ static const struct nfs4_minor_version_o | NFS_CAP_LAYOUTSTATS | NFS_CAP_CLONE | NFS_CAP_LAYOUTERROR @@ -120,11 +118,9 @@ index bbc99dbb3df5..476dca7ce7ab 100644 .init_client = nfs41_init_client, .shutdown_client = nfs41_shutdown_client, .match_stateid = nfs41_match_stateid, -diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c -index 9157dd19b8b4..317cedfa52bf 100644 --- a/fs/nfs/pagelist.c +++ b/fs/nfs/pagelist.c -@@ -767,6 +767,9 @@ int nfs_initiate_pgio(struct rpc_clnt *clnt, struct nfs_pgio_header *hdr, +@@ -767,6 +767,9 @@ int nfs_initiate_pgio(struct rpc_clnt *c .flags = RPC_TASK_ASYNC | flags, }; @@ -134,11 +130,9 @@ index 9157dd19b8b4..317cedfa52bf 100644 hdr->rw_ops->rw_initiate(hdr, &msg, rpc_ops, &task_setup_data, how); dprintk("NFS: initiated pgio call " -diff --git a/fs/nfs/unlink.c b/fs/nfs/unlink.c -index 5fa11e1aca4c..d5ccf095b2a7 100644 --- a/fs/nfs/unlink.c +++ b/fs/nfs/unlink.c -@@ -102,6 +102,10 @@ static void nfs_do_call_unlink(struct inode *inode, struct nfs_unlinkdata *data) +@@ -102,6 +102,10 @@ static void nfs_do_call_unlink(struct in }; struct rpc_task *task; struct inode *dir = d_inode(data->dentry->d_parent); @@ -149,7 +143,7 @@ index 5fa11e1aca4c..d5ccf095b2a7 100644 nfs_sb_active(dir->i_sb); data->args.fh = NFS_FH(dir); nfs_fattr_init(data->res.dir_attr); -@@ -344,6 +348,10 @@ nfs_async_rename(struct inode *old_dir, struct inode *new_dir, +@@ -344,6 +348,10 @@ nfs_async_rename(struct inode *old_dir, .flags = RPC_TASK_ASYNC | RPC_TASK_CRED_NOREF, }; @@ -160,11 +154,9 @@ index 5fa11e1aca4c..d5ccf095b2a7 100644 data = kzalloc(sizeof(*data), GFP_KERNEL); if (data == NULL) return ERR_PTR(-ENOMEM); -diff --git a/fs/nfs/write.c b/fs/nfs/write.c -index 477162d2e8a2..fda854de808b 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c -@@ -1701,6 +1701,10 @@ int nfs_initiate_commit(struct rpc_clnt *clnt, struct nfs_commit_data *data, +@@ -1701,6 +1701,10 @@ int nfs_initiate_commit(struct rpc_clnt .flags = RPC_TASK_ASYNC | flags, .priority = priority, }; @@ -175,8 +167,6 @@ index 477162d2e8a2..fda854de808b 100644 /* Set up the initial task struct. */ nfs_ops->commit_setup(data, &msg, &task_setup_data.rpc_client); trace_nfs_initiate_commit(data); -diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h -index ca0959e51e81..1fdf560dddd8 100644 --- a/include/linux/nfs_fs_sb.h +++ b/include/linux/nfs_fs_sb.h @@ -285,4 +285,5 @@ struct nfs_server { @@ -185,6 +175,3 @@ index ca0959e51e81..1fdf560dddd8 100644 #define NFS_CAP_FS_LOCATIONS (1U << 30) +#define NFS_CAP_MOVEABLE (1U << 31) #endif --- -2.35.1 - diff --git a/queue-5.17/series b/queue-5.17/series index 3820e8c460f..e2c94fc634e 100644 --- a/queue-5.17/series +++ b/queue-5.17/series @@ -601,7 +601,6 @@ rtla-fix-__set_sched_attr-error-message.patch tracing-timerlat-notify-irq-new-max-latency-only-if-.patch perf-jevents-fix-event-syntax-error-caused-by-extsel.patch video-fbdev-vesafb-fix-a-use-after-free-due-early-fb.patch -nfsv4-fix-free-of-uninitialized-nfs4_label-on-referr.patch nfs-convert-gfp_nofs-to-gfp_kernel.patch nfsv4.1-mark-qualified-async-operations-as-moveable-.patch f2fs-fix-to-avoid-f2fs_bug_on-in-dec_valid_node_count.patch