Message ID | 20200121221441.29521-1-olga.kornievskaia@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/1] NFSv4.2 re-initialize cn_resp in case of a retry | expand |
Hi Olga, On Tue, 2020-01-21 at 17:14 -0500, Olga Kornievskaia wrote: > From: Olga Kornievskaia <kolga@netapp.com> > > If nfs42_proc_copy returned a EAGAIN, we need to re-initialize the > memory in case memory allocation fails. I guess I'm not sure how we would hit this. Doesn't kzalloc() return NULL if the memory allocation fails? > > Fixes: 66588abe2 ("NFSv4.2 fix kfree in __nfs42_copy_file_range") > Reported-by: kbuild test robot <lkp@intel.com> > Reported-by: Julia Lawall <julia.lawall@lip6.fr> > Signed-off-by: Olga Kornievskaia <kolga@netapp.com> > --- > fs/nfs/nfs4file.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/fs/nfs/nfs4file.c b/fs/nfs/nfs4file.c > index 620de90..9f72efe 100644 > --- a/fs/nfs/nfs4file.c > +++ b/fs/nfs/nfs4file.c > @@ -177,8 +177,10 @@ static ssize_t __nfs4_copy_file_range(struct file > *file_in, loff_t pos_in, > ret = nfs42_proc_copy(file_in, pos_in, file_out, pos_out, count, > nss, cnrs, sync); > out: > - if (!nfs42_files_from_same_server(file_in, file_out)) > + if (!nfs42_files_from_same_server(file_in, file_out)) { > kfree(cn_resp); > + cn_resp = NULL; > + } > if (ret == -EAGAIN) > goto retry; > return ret;
On Wed, Jan 22, 2020 at 1:40 PM Schumaker, Anna <Anna.Schumaker@netapp.com> wrote: > > Hi Olga, > > On Tue, 2020-01-21 at 17:14 -0500, Olga Kornievskaia wrote: > > From: Olga Kornievskaia <kolga@netapp.com> > > > > If nfs42_proc_copy returned a EAGAIN, we need to re-initialize the > > memory in case memory allocation fails. > > I guess I'm not sure how we would hit this. Doesn't kzalloc() return NULL if the > memory allocation fails? You are right kzalloc would always return NULL so forget about this patch. > > > > > Fixes: 66588abe2 ("NFSv4.2 fix kfree in __nfs42_copy_file_range") > > Reported-by: kbuild test robot <lkp@intel.com> > > Reported-by: Julia Lawall <julia.lawall@lip6.fr> > > Signed-off-by: Olga Kornievskaia <kolga@netapp.com> > > --- > > fs/nfs/nfs4file.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/fs/nfs/nfs4file.c b/fs/nfs/nfs4file.c > > index 620de90..9f72efe 100644 > > --- a/fs/nfs/nfs4file.c > > +++ b/fs/nfs/nfs4file.c > > @@ -177,8 +177,10 @@ static ssize_t __nfs4_copy_file_range(struct file > > *file_in, loff_t pos_in, > > ret = nfs42_proc_copy(file_in, pos_in, file_out, pos_out, count, > > nss, cnrs, sync); > > out: > > - if (!nfs42_files_from_same_server(file_in, file_out)) > > + if (!nfs42_files_from_same_server(file_in, file_out)) { > > kfree(cn_resp); > > + cn_resp = NULL; > > + } > > if (ret == -EAGAIN) > > goto retry; > > return ret;
diff --git a/fs/nfs/nfs4file.c b/fs/nfs/nfs4file.c index 620de90..9f72efe 100644 --- a/fs/nfs/nfs4file.c +++ b/fs/nfs/nfs4file.c @@ -177,8 +177,10 @@ static ssize_t __nfs4_copy_file_range(struct file *file_in, loff_t pos_in, ret = nfs42_proc_copy(file_in, pos_in, file_out, pos_out, count, nss, cnrs, sync); out: - if (!nfs42_files_from_same_server(file_in, file_out)) + if (!nfs42_files_from_same_server(file_in, file_out)) { kfree(cn_resp); + cn_resp = NULL; + } if (ret == -EAGAIN) goto retry; return ret;