]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop queue-5.17/nfsv4-fix-free-of-uninitialized-nfs4_label-on-referr.patch
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jun 2022 08:09:04 +0000 (10:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jun 2022 08:09:04 +0000 (10:09 +0200)
queue-5.10/series
queue-5.17/nfs-convert-gfp_nofs-to-gfp_kernel.patch
queue-5.17/nfsv4-fix-free-of-uninitialized-nfs4_label-on-referr.patch [deleted file]
queue-5.17/nfsv4.1-mark-qualified-async-operations-as-moveable-.patch
queue-5.17/series

index dd825961de5662dbf927f2e01f003652d0e5c9b8..6d48b5b6f10e9d99a8fc27caba2c6a38e3fad447 100644 (file)
@@ -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
index af476ba85d5ad5418d38c44dd9e8752e2d2f088a..d246d489027c8e233a86bd298daa8a8da8d23ff6 100644 (file)
@@ -14,14 +14,12 @@ instances which might be used by other contexts.
 Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
 Signed-off-by: Sasha Levin <sashal@kernel.org>
 ---
- 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 (file)
index e02ee59..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-From 767a761eac57c095413e6a2f72aca2c06d98808f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 14 May 2022 07:05:13 -0400
-Subject: NFSv4: Fix free of uninitialized nfs4_label on referral lookup.
-
-From: Benjamin Coddington <bcodding@redhat.com>
-
-[ 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 <trondmy@hammerspace.com>
-Fixes: 9558a007dbc3 ("NFS: Remove the label from the nfs4_lookup_res struct")
-Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
-Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- 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
-
index 26381b3d4689f2f12d601e8ff9747ef3965402c1..c3766ebbd86702c79b22545031168b2b25955f96 100644 (file)
@@ -15,18 +15,16 @@ Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
 Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
 Signed-off-by: Sasha Levin <sashal@kernel.org>
 ---
- 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
-
index 3820e8c460f5c54e2c2d048ee6aecfe4f38e078c..e2c94fc634eb44493da20f93f0419ebc8c680654 100644 (file)
@@ -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