Messages in this thread | | | Date | Thu, 23 Apr 2009 20:15:16 +0100 | From | Al Viro <> | Subject | Re: [PATCH 2/5 -tip] cifs: umount_begin BKL pushdown |
| |
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 >
| |