Re: [PATCH] Remove BKL usage from ncpfs

From: Arnd Bergmann
Date: Mon Sep 27 2010 - 10:17:01 EST


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.

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

Arnd

diff --git a/fs/ncpfs/inode.c b/fs/ncpfs/inode.c
index b4de38c..cdf0fce 100644
--- a/fs/ncpfs/inode.c
+++ b/fs/ncpfs/inode.c
@@ -445,10 +445,14 @@ static int ncp_fill_super(struct super_block *sb, void *raw_data, int silent)
#endif
struct ncp_entry_info finfo;

+ lock_kernel();
+
data.wdog_pid = NULL;
server = kzalloc(sizeof(struct ncp_server), GFP_KERNEL);
- if (!server)
+ if (!server) {
+ unlock_kernel();
return -ENOMEM;
+ }
sb->s_fs_info = server;

error = -EFAULT;
@@ -700,6 +704,7 @@ static int ncp_fill_super(struct super_block *sb, void *raw_data, int silent)
if (!sb->s_root)
goto out_no_root;
sb->s_root->d_op = &ncp_root_dentry_operations;
+ unlock_kernel();
return 0;

out_no_root:
@@ -736,6 +741,7 @@ out:
put_pid(data.wdog_pid);
sb->s_fs_info = NULL;
kfree(server);
+ unlock_kernel();
return error;
}


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/