Re: [PATCH 2/5 -tip] cifs: umount_begin BKL pushdown

From: Al Viro
Date: Thu Apr 23 2009 - 15:15:36 EST


On Thu, Apr 23, 2009 at 09:12:02PM +0200, Alessio Igor Bogani wrote:
> struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
> struct cifsTconInfo *tcon;
>
> - if (cifs_sb == NULL)
> + lock_kernel();
> +
> + if (cifs_sb == NULL) {
> + unlock_kernel();
> return;
> + }

Huh? Why would a bleeding *local* *variable* care about BKL at all?

> tcon = cifs_sb->tcon;
> - if (tcon == NULL)
> + if (tcon == NULL) {
> + unlock_kernel();
> return;
> + }
>
> read_lock(&cifs_tcp_ses_lock);
> if (tcon->tc_count == 1)
> tcon->tidStatus = CifsExiting;
> read_unlock(&cifs_tcp_ses_lock);
>
> + unlock_kernel();
> +
> /* cancel_brl_requests(tcon); */ /* BB mark all brl mids as exiting */
> /* cancel_notify_requests(tcon); */

... and why would the rest of it *not* care?

> if (tcon->ses && tcon->ses->server) {
> --
> 1.6.0.4
>
--
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/