Re: [PATCH] Remove BKL usage from ncpfs

From: Petr Vandrovec
Date: Mon Sep 27 2010 - 13:51:47 EST


On Mon, Sep 27, 2010 at 7:16 AM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> On Monday 27 September 2010, Petr Vandrovec wrote:
>> commit 92498b5267aa58e85e20c7b2cbd84d1ed86df47d
>> Author: Petr Vandrovec <petr@xxxxxxxxxxxxxx>
>> Date:   Sun Sep 26 16:19:12 2010 -0700
>>
>>     Remove BKL from ncpfs
>
> Hi Petr,
>
> Thanks for taking care of this.
>
> Would you like me to take this patch into my bkl/vfs tree? I think
> that would make it easier for me because I'm adding another instance
> of the BKL there, in the ncp_fill_super function. As far as I can tell
> that change (see below) becomes pointless with your patch.

Thanks. I would appreciate it.

> I could either just revert my change or replace it with your patch,
> whichever you prefer.

Yes, I believe it is not necessary. fill_super(sb) should not run
concurrently with anything else because MS_BORN and MS_ACTIVE are not
set yet so nobody else should use this sb from VFS. One thing which
seems to be missing is doing lock_sock() around code which sets
sk->sk_{error_report,data_ready,write_space} - there does not seem to
be anything else to protect ipv4/ipv6/ipx from seeing partially
updated pointers on systems where these writes are not atomic - that's
ncpfs2.patch.

Also I found some whitespace problems, and one missing const, so if
you could merge ncpfs3.patch & ncpfs4.patch with original BKL removal,
it would be cool. Or I can resend all 4 patches as one bigger diff if
you prefer.

Thanks,
Petr

Attachment: ncpfs2.patch
Description: Binary data

Attachment: ncpfs3.patch
Description: Binary data

Attachment: ncpfs4.patch
Description: Binary data