* 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