[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Nbd] [RESEND PATCH]nbd: fix might_sleep warning on socket shutdown



On Tue, May 3, 2016 at 5:45 AM, Greg KH <gregkh@...1299...> wrote:
> On Mon, May 02, 2016 at 08:58:34AM +0530, Pranay Srivastava wrote:
>> Hi,
>>
>> Can the following patch be reviewed? I'm working on some more changes
>> on top of this change,
>> so it'll be really helpful if someone can review this patch and let me
>> know of shortcomings/issues
>> with this.
>>
>>
>> On Sat, Apr 30, 2016 at 11:49 AM, Pranay Kr. Srivastava
>> <pranjas@...17...> wrote:
>> > This patch fixes the warning generated when a timeout occurs
>> > on the request and socket is closed from a non-sleep context
>> > by
>> >
>> > 1. Moving the socket closing on a timeout to nbd_thread_send
>> >
>> > 2. Make sock lock to be a mutex instead of a spin lock, since
>> >    nbd_xmit_timeout doesn't need to hold it anymore.
>> >
>> > 3. Move sock_shutdown outside the tx_lock in NBD_DO_IT.
>
> Why are you doing three things in one patch?
>
>> > ---
>> >  drivers/block/nbd.c | 85 +++++++++++++++++++++++++++++++----------------------
>> >  1 file changed, 50 insertions(+), 35 deletions(-)
>> >
>> > diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
>> > index 31e73a7..a52cc16 100644
>> > --- a/drivers/block/nbd.c
>> > +++ b/drivers/block/nbd.c
>> > @@ -3,7 +3,7 @@
>> >   *
>> >   * Note that you can not swap over this thing, yet. Seems to work but
>> >   * deadlocks sometimes - you can not swap over TCP in general.
>> > - *
>> > + *
>
> What did you change here?
>
>> >   * Copyright 1997-2000, 2008 Pavel Machek <pavel@...28...>
>> >   * Parts copyright 2001 Steven Whitehouse <steve@...2385...>
>> >   *
>> > @@ -35,14 +35,14 @@
>> >  #include <linux/types.h>
>> >  #include <linux/debugfs.h>
>> >
>> > -#include <asm/uaccess.h>
>> > +#include <linux/uaccess.h>
>
> Why change this?
>
>> >  #include <asm/types.h>
>> >
>> >  #include <linux/nbd.h>
>> >
>> >  struct nbd_device {
>> >         u32 flags;
>> > -       struct socket * sock;   /* If == NULL, device is not ready, yet */
>> > +       struct socket *sock;    /* If == NULL, device is not ready, yet */
>
> You are mixing "code cleanup" changes with "change the logic" changes,
> please break this up into a series of patches, doing the code cleanup
> _last_ as you want to fix bugs first.
>

Ok. Will do that.

> thanks,
>
> greg k-h

Thanks alot Greg for review.

-- 
        ---P.K.S



Reply to: