[CRIU] [PATCH 1/7] irmap: use kdev everywere
Pavel Emelyanov
xemul at virtuozzo.com
Wed Mar 9 08:10:06 PST 2016
On 03/09/2016 06:31 PM, Andrew Vagin wrote:
> On Wed, Mar 09, 2016 at 03:11:21PM +0300, Pavel Emelyanov wrote:
>> On 03/08/2016 09:43 PM, Andrey Vagin wrote:
>>> From: Andrew Vagin <avagin at virtuozzo.com>
>>>
>>> Currently we kdev and odev together and try to compare them without
>>> converting to the one type.
>>
>> Doesn't the removed kdev_to_odev() in the 3rd hunk do this?
>
> No, it doesn't. There s_dev is kdev.
Hm.. Then the 3rd hunk looks wrong anyway. There's a check for c->dev == s_dev
in irmap_lookup() below the removal which used to compare old device with converted
old device. With this patch it starts comparing old device (c->dev) with
new device.
>>
>>> Signed-off-by: Andrew Vagin <avagin at virtuozzo.com>
>>> ---
>>> criu/irmap.c | 6 ++----
>>> 1 file changed, 2 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/criu/irmap.c b/criu/irmap.c
>>> index 1501887..c93a995 100644
>>> --- a/criu/irmap.c
>>> +++ b/criu/irmap.c
>>> @@ -88,7 +88,7 @@ static int irmap_update_stat(struct irmap *i)
>>> }
>>>
>>> i->revalidate = false;
>>> - i->dev = st.st_dev;
>>> + i->dev = MKKDEV(major(st.st_dev), minor(st.st_dev));
>>> i->ino = st.st_ino;
>>> if (!S_ISDIR(st.st_mode))
>>> i->nr_kids = 0; /* don't irmap_update_dir */
>>> @@ -203,7 +203,7 @@ static int irmap_revalidate(struct irmap *c, struct irmap **p)
>>> goto invalid;
>>> }
>>>
>>> - if (c->dev != st.st_dev)
>>> + if (c->dev != MKKDEV(major(st.st_dev), minor(st.st_dev)))
>>> goto invalid;
>>> if (c->ino != st.st_ino)
>>> goto invalid;
>>> @@ -228,8 +228,6 @@ char *irmap_lookup(unsigned int s_dev, unsigned long i_ino)
>>> int hv;
>>> struct irmap_path_opt *o;
>>>
>>> - s_dev = kdev_to_odev(s_dev);
>>> -
>>> pr_debug("Resolving %x:%lx path\n", s_dev, i_ino);
>>>
>>> /*
>>>
>>
> .
>
More information about the CRIU
mailing list