diff mbox series

[V2] fs:ceph: Remove unused variables in ceph_mdsmap_decode()

Message ID 20200722134604.3026-1-jiayang5@huawei.com (mailing list archive)
State New, archived
Headers show
Series [V2] fs:ceph: Remove unused variables in ceph_mdsmap_decode() | expand

Commit Message

Jia Yang July 22, 2020, 1:46 p.m. UTC
Fix build warnings:

fs/ceph/mdsmap.c: In function ‘ceph_mdsmap_decode’:
fs/ceph/mdsmap.c:192:7: warning:
variable ‘info_cv’ set but not used [-Wunused-but-set-variable]
fs/ceph/mdsmap.c:177:7: warning:
variable ‘state_seq’ set but not used [-Wunused-but-set-variable]
fs/ceph/mdsmap.c:123:15: warning:
variable ‘mdsmap_cv’ set but not used [-Wunused-but-set-variable]

Use ceph_decode_skip_* instead of ceph_decode_*, because p is
increased in ceph_decode_*.

Signed-off-by: Jia Yang <jiayang5@huawei.com>
---
 fs/ceph/mdsmap.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

Comments

Ilya Dryomov July 22, 2020, 1:53 p.m. UTC | #1
On Wed, Jul 22, 2020 at 3:39 PM Jia Yang <jiayang5@huawei.com> wrote:
>
> Fix build warnings:
>
> fs/ceph/mdsmap.c: In function ‘ceph_mdsmap_decode’:
> fs/ceph/mdsmap.c:192:7: warning:
> variable ‘info_cv’ set but not used [-Wunused-but-set-variable]
> fs/ceph/mdsmap.c:177:7: warning:
> variable ‘state_seq’ set but not used [-Wunused-but-set-variable]
> fs/ceph/mdsmap.c:123:15: warning:
> variable ‘mdsmap_cv’ set but not used [-Wunused-but-set-variable]
>
> Use ceph_decode_skip_* instead of ceph_decode_*, because p is
> increased in ceph_decode_*.
>
> Signed-off-by: Jia Yang <jiayang5@huawei.com>
> ---
>  fs/ceph/mdsmap.c | 10 ++++------
>  1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/fs/ceph/mdsmap.c b/fs/ceph/mdsmap.c
> index 889627817e52..7455ba83822a 100644
> --- a/fs/ceph/mdsmap.c
> +++ b/fs/ceph/mdsmap.c
> @@ -120,7 +120,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
>         const void *start = *p;
>         int i, j, n;
>         int err;
> -       u8 mdsmap_v, mdsmap_cv;
> +       u8 mdsmap_v;
>         u16 mdsmap_ev;
>
>         m = kzalloc(sizeof(*m), GFP_NOFS);
> @@ -129,7 +129,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
>
>         ceph_decode_need(p, end, 1 + 1, bad);
>         mdsmap_v = ceph_decode_8(p);
> -       mdsmap_cv = ceph_decode_8(p);
> +       ceph_decode_skip_8(p, end, bad);

Hi Jia,

The bounds are already checked in ceph_decode_need(), so using
ceph_decode_skip_*() is unnecessary.  Just increment the position
with *p += 1, staying consistent with ceph_decode_8(), which does
not bounds check.

>         if (mdsmap_v >= 4) {
>                u32 mdsmap_len;
>                ceph_decode_32_safe(p, end, mdsmap_len, bad);
> @@ -174,7 +174,6 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
>                 u64 global_id;
>                 u32 namelen;
>                 s32 mds, inc, state;
> -               u64 state_seq;
>                 u8 info_v;
>                 void *info_end = NULL;
>                 struct ceph_entity_addr addr;
> @@ -189,9 +188,8 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
>                 info_v= ceph_decode_8(p);
>                 if (info_v >= 4) {
>                         u32 info_len;
> -                       u8 info_cv;
>                         ceph_decode_need(p, end, 1 + sizeof(u32), bad);
> -                       info_cv = ceph_decode_8(p);
> +                       ceph_decode_skip_8(p, end, bad);

Ditto.

>                         info_len = ceph_decode_32(p);
>                         info_end = *p + info_len;
>                         if (info_end > end)
> @@ -210,7 +208,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
>                 mds = ceph_decode_32(p);
>                 inc = ceph_decode_32(p);
>                 state = ceph_decode_32(p);
> -               state_seq = ceph_decode_64(p);
> +               ceph_decode_skip_64(p, end, bad);

Ditto.

Thanks,

                Ilya
Jeff Layton July 22, 2020, 3:59 p.m. UTC | #2
On Wed, 2020-07-22 at 15:53 +0200, Ilya Dryomov wrote:
> On Wed, Jul 22, 2020 at 3:39 PM Jia Yang <jiayang5@huawei.com> wrote:
> > Fix build warnings:
> > 
> > fs/ceph/mdsmap.c: In function ‘ceph_mdsmap_decode’:
> > fs/ceph/mdsmap.c:192:7: warning:
> > variable ‘info_cv’ set but not used [-Wunused-but-set-variable]
> > fs/ceph/mdsmap.c:177:7: warning:
> > variable ‘state_seq’ set but not used [-Wunused-but-set-variable]
> > fs/ceph/mdsmap.c:123:15: warning:
> > variable ‘mdsmap_cv’ set but not used [-Wunused-but-set-variable]
> > 
> > Use ceph_decode_skip_* instead of ceph_decode_*, because p is
> > increased in ceph_decode_*.
> > 
> > Signed-off-by: Jia Yang <jiayang5@huawei.com>
> > ---
> >  fs/ceph/mdsmap.c | 10 ++++------
> >  1 file changed, 4 insertions(+), 6 deletions(-)
> > 
> > diff --git a/fs/ceph/mdsmap.c b/fs/ceph/mdsmap.c
> > index 889627817e52..7455ba83822a 100644
> > --- a/fs/ceph/mdsmap.c
> > +++ b/fs/ceph/mdsmap.c
> > @@ -120,7 +120,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
> >         const void *start = *p;
> >         int i, j, n;
> >         int err;
> > -       u8 mdsmap_v, mdsmap_cv;
> > +       u8 mdsmap_v;
> >         u16 mdsmap_ev;
> > 
> >         m = kzalloc(sizeof(*m), GFP_NOFS);
> > @@ -129,7 +129,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
> > 
> >         ceph_decode_need(p, end, 1 + 1, bad);
> >         mdsmap_v = ceph_decode_8(p);
> > -       mdsmap_cv = ceph_decode_8(p);
> > +       ceph_decode_skip_8(p, end, bad);
> 
> Hi Jia,
> 
> The bounds are already checked in ceph_decode_need(), so using
> ceph_decode_skip_*() is unnecessary.  Just increment the position
> with *p += 1, staying consistent with ceph_decode_8(), which does
> not bounds check.
> 

I suggested using ceph_decode_skip_*, mostly just because it's more
self-documenting and I didn't think it that significant an overhead.
Just incrementing the pointer will also work too, of course.

While you're doing that though, please also make note of what would have
been decoded there too. So in this case, something like this is what I'd
suggest:

	*p += 1;	/* mdsmap_cv */

These sorts of comments are helpful later, esp. with a protocol like
ceph that continually has fields being deprecated.

> >         if (mdsmap_v >= 4) {
> >                u32 mdsmap_len;
> >                ceph_decode_32_safe(p, end, mdsmap_len, bad);
> > @@ -174,7 +174,6 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
> >                 u64 global_id;
> >                 u32 namelen;
> >                 s32 mds, inc, state;
> > -               u64 state_seq;
> >                 u8 info_v;
> >                 void *info_end = NULL;
> >                 struct ceph_entity_addr addr;
> > @@ -189,9 +188,8 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
> >                 info_v= ceph_decode_8(p);
> >                 if (info_v >= 4) {
> >                         u32 info_len;
> > -                       u8 info_cv;
> >                         ceph_decode_need(p, end, 1 + sizeof(u32), bad);
> > -                       info_cv = ceph_decode_8(p);
> > +                       ceph_decode_skip_8(p, end, bad);
> 
> Ditto.
> 
> >                         info_len = ceph_decode_32(p);
> >                         info_end = *p + info_len;
> >                         if (info_end > end)
> > @@ -210,7 +208,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
> >                 mds = ceph_decode_32(p);
> >                 inc = ceph_decode_32(p);
> >                 state = ceph_decode_32(p);
> > -               state_seq = ceph_decode_64(p);
> > +               ceph_decode_skip_64(p, end, bad);
> 
> Ditto.
> 
> Thanks,
> 
>                 Ilya
Ilya Dryomov July 22, 2020, 4:23 p.m. UTC | #3
On Wed, Jul 22, 2020 at 5:59 PM Jeff Layton <jlayton@kernel.org> wrote:
>
> On Wed, 2020-07-22 at 15:53 +0200, Ilya Dryomov wrote:
> > On Wed, Jul 22, 2020 at 3:39 PM Jia Yang <jiayang5@huawei.com> wrote:
> > > Fix build warnings:
> > >
> > > fs/ceph/mdsmap.c: In function ‘ceph_mdsmap_decode’:
> > > fs/ceph/mdsmap.c:192:7: warning:
> > > variable ‘info_cv’ set but not used [-Wunused-but-set-variable]
> > > fs/ceph/mdsmap.c:177:7: warning:
> > > variable ‘state_seq’ set but not used [-Wunused-but-set-variable]
> > > fs/ceph/mdsmap.c:123:15: warning:
> > > variable ‘mdsmap_cv’ set but not used [-Wunused-but-set-variable]
> > >
> > > Use ceph_decode_skip_* instead of ceph_decode_*, because p is
> > > increased in ceph_decode_*.
> > >
> > > Signed-off-by: Jia Yang <jiayang5@huawei.com>
> > > ---
> > >  fs/ceph/mdsmap.c | 10 ++++------
> > >  1 file changed, 4 insertions(+), 6 deletions(-)
> > >
> > > diff --git a/fs/ceph/mdsmap.c b/fs/ceph/mdsmap.c
> > > index 889627817e52..7455ba83822a 100644
> > > --- a/fs/ceph/mdsmap.c
> > > +++ b/fs/ceph/mdsmap.c
> > > @@ -120,7 +120,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
> > >         const void *start = *p;
> > >         int i, j, n;
> > >         int err;
> > > -       u8 mdsmap_v, mdsmap_cv;
> > > +       u8 mdsmap_v;
> > >         u16 mdsmap_ev;
> > >
> > >         m = kzalloc(sizeof(*m), GFP_NOFS);
> > > @@ -129,7 +129,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
> > >
> > >         ceph_decode_need(p, end, 1 + 1, bad);
> > >         mdsmap_v = ceph_decode_8(p);
> > > -       mdsmap_cv = ceph_decode_8(p);
> > > +       ceph_decode_skip_8(p, end, bad);
> >
> > Hi Jia,
> >
> > The bounds are already checked in ceph_decode_need(), so using
> > ceph_decode_skip_*() is unnecessary.  Just increment the position
> > with *p += 1, staying consistent with ceph_decode_8(), which does
> > not bounds check.
> >
>
> I suggested using ceph_decode_skip_*, mostly just because it's more
> self-documenting and I didn't think it that significant an overhead.
> Just incrementing the pointer will also work too, of course.

Either is fine (the overhead is negligible), but I prefer to be
consistent: either ceph_decode_need() + unsafe variants or safe
variants (i.e. ceph_decode_*_safe / ceph_decode_skip_*).

>
> While you're doing that though, please also make note of what would have
> been decoded there too. So in this case, something like this is what I'd
> suggest:
>
>         *p += 1;        /* mdsmap_cv */
>
> These sorts of comments are helpful later, esp. with a protocol like
> ceph that continually has fields being deprecated.

Yup, definitely useful and done in many other places.

Thanks,

                Ilya
Jia Yang July 23, 2020, 1:38 a.m. UTC | #4
On 2020/7/23 0:23, Ilya Dryomov wrote:
> On Wed, Jul 22, 2020 at 5:59 PM Jeff Layton <jlayton@kernel.org> wrote:
>>
>> On Wed, 2020-07-22 at 15:53 +0200, Ilya Dryomov wrote:
>>> On Wed, Jul 22, 2020 at 3:39 PM Jia Yang <jiayang5@huawei.com> wrote:
>>>> Fix build warnings:
>>>>
>>>> fs/ceph/mdsmap.c: In function ‘ceph_mdsmap_decode’:
>>>> fs/ceph/mdsmap.c:192:7: warning:
>>>> variable ‘info_cv’ set but not used [-Wunused-but-set-variable]
>>>> fs/ceph/mdsmap.c:177:7: warning:
>>>> variable ‘state_seq’ set but not used [-Wunused-but-set-variable]
>>>> fs/ceph/mdsmap.c:123:15: warning:
>>>> variable ‘mdsmap_cv’ set but not used [-Wunused-but-set-variable]
>>>>
>>>> Use ceph_decode_skip_* instead of ceph_decode_*, because p is
>>>> increased in ceph_decode_*.
>>>>
>>>> Signed-off-by: Jia Yang <jiayang5@huawei.com>
>>>> ---
>>>>  fs/ceph/mdsmap.c | 10 ++++------
>>>>  1 file changed, 4 insertions(+), 6 deletions(-)
>>>>
>>>> diff --git a/fs/ceph/mdsmap.c b/fs/ceph/mdsmap.c
>>>> index 889627817e52..7455ba83822a 100644
>>>> --- a/fs/ceph/mdsmap.c
>>>> +++ b/fs/ceph/mdsmap.c
>>>> @@ -120,7 +120,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
>>>>         const void *start = *p;
>>>>         int i, j, n;
>>>>         int err;
>>>> -       u8 mdsmap_v, mdsmap_cv;
>>>> +       u8 mdsmap_v;
>>>>         u16 mdsmap_ev;
>>>>
>>>>         m = kzalloc(sizeof(*m), GFP_NOFS);
>>>> @@ -129,7 +129,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
>>>>
>>>>         ceph_decode_need(p, end, 1 + 1, bad);
>>>>         mdsmap_v = ceph_decode_8(p);
>>>> -       mdsmap_cv = ceph_decode_8(p);
>>>> +       ceph_decode_skip_8(p, end, bad);
>>>
>>> Hi Jia,
>>>
>>> The bounds are already checked in ceph_decode_need(), so using
>>> ceph_decode_skip_*() is unnecessary.  Just increment the position
>>> with *p += 1, staying consistent with ceph_decode_8(), which does
>>> not bounds check.
>>>
>>
>> I suggested using ceph_decode_skip_*, mostly just because it's more
>> self-documenting and I didn't think it that significant an overhead.
>> Just incrementing the pointer will also work too, of course.
> 
> Either is fine (the overhead is negligible), but I prefer to be
> consistent: either ceph_decode_need() + unsafe variants or safe
> variants (i.e. ceph_decode_*_safe / ceph_decode_skip_*).
> 
>>
>> While you're doing that though, please also make note of what would have
>> been decoded there too. So in this case, something like this is what I'd
>> suggest:
>>
>>         *p += 1;        /* mdsmap_cv */
>>

These comments are understandable and useful. I will also use it.

Thanks a lot.

>> These sorts of comments are helpful later, esp. with a protocol like
>> ceph that continually has fields being deprecated.
> 
> Yup, definitely useful and done in many other places.
> 
> Thanks,
> 
>                 Ilya
> .
>
diff mbox series

Patch

diff --git a/fs/ceph/mdsmap.c b/fs/ceph/mdsmap.c
index 889627817e52..7455ba83822a 100644
--- a/fs/ceph/mdsmap.c
+++ b/fs/ceph/mdsmap.c
@@ -120,7 +120,7 @@  struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
 	const void *start = *p;
 	int i, j, n;
 	int err;
-	u8 mdsmap_v, mdsmap_cv;
+	u8 mdsmap_v;
 	u16 mdsmap_ev;
 
 	m = kzalloc(sizeof(*m), GFP_NOFS);
@@ -129,7 +129,7 @@  struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
 
 	ceph_decode_need(p, end, 1 + 1, bad);
 	mdsmap_v = ceph_decode_8(p);
-	mdsmap_cv = ceph_decode_8(p);
+	ceph_decode_skip_8(p, end, bad);
 	if (mdsmap_v >= 4) {
 	       u32 mdsmap_len;
 	       ceph_decode_32_safe(p, end, mdsmap_len, bad);
@@ -174,7 +174,6 @@  struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
 		u64 global_id;
 		u32 namelen;
 		s32 mds, inc, state;
-		u64 state_seq;
 		u8 info_v;
 		void *info_end = NULL;
 		struct ceph_entity_addr addr;
@@ -189,9 +188,8 @@  struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
 		info_v= ceph_decode_8(p);
 		if (info_v >= 4) {
 			u32 info_len;
-			u8 info_cv;
 			ceph_decode_need(p, end, 1 + sizeof(u32), bad);
-			info_cv = ceph_decode_8(p);
+			ceph_decode_skip_8(p, end, bad);
 			info_len = ceph_decode_32(p);
 			info_end = *p + info_len;
 			if (info_end > end)
@@ -210,7 +208,7 @@  struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
 		mds = ceph_decode_32(p);
 		inc = ceph_decode_32(p);
 		state = ceph_decode_32(p);
-		state_seq = ceph_decode_64(p);
+		ceph_decode_skip_64(p, end, bad);
 		err = ceph_decode_entity_addr(p, end, &addr);
 		if (err)
 			goto corrupt;