public inbox for linux-ext4@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH] [3/18] BKL-removal: Convert ext3 to use unlocked_ioctl
       [not found] ` <20080127021709.55F0814D2E@wotan.suse.de>
@ 2008-01-28  5:33   ` Andrew Morton
  2008-01-28  6:02     ` Andi Kleen
  0 siblings, 1 reply; 2+ messages in thread
From: Andrew Morton @ 2008-01-28  5:33 UTC (permalink / raw)
  To: Andi Kleen
  Cc: sct, adilger, linux-kernel, linux-fsdevel,
	linux-ext4@vger.kernel.org

On Sun, 27 Jan 2008 03:17:09 +0100 (CET) Andi Kleen <ak@suse.de> wrote:

> 
> I checked ext3_ioctl and it looked largely safe to not be used
> without BKL.  So convert it over to unlocked_ioctl.
> 
> The only case where I wasn't quite sure was for the
> dynamic fs grow ioctls versus umounting -- I kept the BKL for those. 
> 

Please cpoy linux-ext4 on ext2/3/4 material.

I skippped a lot of these patches because I just got bored of fixing
rejects.  Now is a very optimistic time to be raising patches against
mainline.

I'm going to work on getting a unified devel tree operating: one which
contains everyone's latest stuff and is updated daily.  Basically it'll be
-mm without a couple of the quilt trees.  People can then prepare patches
against that, as it seems that most can't be bothered patching against -mm,
let alone building and testing it.  More later.

> +		/* AK: not sure the BKL is needed, but this might prevent
> +		 * races against umount */
> +		lock_kernel();
>  		err = ext3_group_extend(sb, EXT3_SB(sb)->s_es, n_blocks_count);
>  		journal_lock_updates(EXT3_SB(sb)->s_journal);
>  		journal_flush(EXT3_SB(sb)->s_journal);
>  		journal_unlock_updates(EXT3_SB(sb)->s_journal);
> +		unlock_kernel();
>  
>  		return err;
>  	}
> @@ -245,11 +249,14 @@ flags_err:
>  		if (copy_from_user(&input, (struct ext3_new_group_input __user *)arg,
>  				sizeof(input)))
>  			return -EFAULT;
> -
> +		/* AK: not sure the BKL is needed, but this might prevent
> +		 * races against umount */
> +		lock_kernel();
>  		err = ext3_group_add(sb, &input);
>  		journal_lock_updates(EXT3_SB(sb)->s_journal);
>  		journal_flush(EXT3_SB(sb)->s_journal);
>  		journal_unlock_updates(EXT3_SB(sb)->s_journal);
> +		unlock_kernel();
>  

The ext3_ioctl() caller has an open fd against the fs - should be
sufficient to keep unmount away?

(gets even more rejects, drops all the fasync patches too)

It's all reached the stage of stupid.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] [3/18] BKL-removal: Convert ext3 to use unlocked_ioctl
  2008-01-28  5:33   ` [PATCH] [3/18] BKL-removal: Convert ext3 to use unlocked_ioctl Andrew Morton
@ 2008-01-28  6:02     ` Andi Kleen
  0 siblings, 0 replies; 2+ messages in thread
From: Andi Kleen @ 2008-01-28  6:02 UTC (permalink / raw)
  To: Andrew Morton
  Cc: sct, adilger, linux-kernel, linux-fsdevel,
	linux-ext4@vger.kernel.org

On Monday 28 January 2008 06:33, Andrew Morton wrote:
> On Sun, 27 Jan 2008 03:17:09 +0100 (CET) Andi Kleen <ak@suse.de> wrote:
> > I checked ext3_ioctl and it looked largely safe to not be used
> > without BKL.  So convert it over to unlocked_ioctl.
> >
> > The only case where I wasn't quite sure was for the
> > dynamic fs grow ioctls versus umounting -- I kept the BKL for those.
>
> Please cpoy linux-ext4 on ext2/3/4 material.

Ok I'll resubmit those to tytso/ext4-devel (or perhaps he has already seen 
them) 

>
> I skippped a lot of these patches because I just got bored of fixing
> rejects.  Now is a very optimistic time to be raising patches against
> mainline.

JFS and CIFS are already taken care of by the maintainers. This leaves
remote_llseek which touches a couple of file systems. Could you
perhaps take that one only please? And perhaps Nick's minix 
patchkit which looks safe to me and is unlikely to cause conflicts.

> > +		/* AK: not sure the BKL is needed, but this might prevent
> > +		 * races against umount */
> > +		lock_kernel();
> >  		err = ext3_group_add(sb, &input);
> >  		journal_lock_updates(EXT3_SB(sb)->s_journal);
> >  		journal_flush(EXT3_SB(sb)->s_journal);
> >  		journal_unlock_updates(EXT3_SB(sb)->s_journal);
> > +		unlock_kernel();
>
> The ext3_ioctl() caller has an open fd against the fs - should be
> sufficient to keep unmount away?

True. I am still conservative because group_add is a lot of code
which I didn't fully check. But with the open fd it's likely safe
to not take the BKL because there is nothing else (except
readdir?) in ext* that takes it.

> It's all reached the stage of stupid.

I'll resubmit ->fasync_unlocked against -mm.

Also I wanted to recheck the ->f_flags locking. I found one bug in those 
already and I can extract the bug fix for that one. 

-Andi

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-01-28  6:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20080127317.043953000@suse.de>
     [not found] ` <20080127021709.55F0814D2E@wotan.suse.de>
2008-01-28  5:33   ` [PATCH] [3/18] BKL-removal: Convert ext3 to use unlocked_ioctl Andrew Morton
2008-01-28  6:02     ` Andi Kleen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox