Re: [autofs] [RFC 00/20] Proposal for remaining BKL users

From: Ian Kent
Date: Thu Jan 27 2011 - 09:42:08 EST


On Tue, 2011-01-25 at 23:22 +0100, Arnd Bergmann wrote:
> I've gone through all the code in the kernel that
> uses the big kernel lock and come up with a solution
> that seems at least half-reasonable for each of them.
>
> The decisions are somewhat arbitrary, but here is
> what I'd suggest we do:
>
> * Remove in 2.6.39:
> i830, autofs3, smbfs

Yes please, ack to removing autofs v3.

It is worth keeping in mind that if people are using the v3 protocol and
there is a problem using it then a bug should be logged against the
autofs4 module so it can be fixed. It's likely there will be a problem
or two because of the huge amount change that has occurred over time.
The same goes for the v4 protocol, since the testing done nowadays is
with the v5 protocol. The v2 protocol might work with the autofs4 module
since the code is still present but I'm not keen on trying to fix any
problems that might arise and think we should discourage its use. In any
case v2 users should few and far between.

>
> * Move to staging now, kill in 2.6.41 (or later):
> appletalk, hpfs
>
> * Work around in an ugly way, but keep alive:
> * ufs, ipx, i810, cx25721
>
> * Fix properly:
> * usbip, go7007, adfs, x25
>
> Some of the patches are rather tricky and I haven't
> really done much proper testing, so I'd much prefer
> the maintainers to pick up the patches and do the
> necessary testing where possible, or even come up
> with a better solution.
>
> Arnd Bergmann (20):
> drm/i810: remove the BKL
> drm: remove i830 driver
> staging/usbip: convert to kthread
> staging/cx25721: serialize access to devlist
> staging/go7007: remove the BKL
> staging: Remove autofs3
> staging: remove smbfs
> adfs: remove the big kernel lock
> hpfs: rename big kernel lock to hpfs_lock
> hpfs: replace BKL with a global mutex
> hpfs: move to drivers/staging
> x25: remove the BKL
> appletalk: move to staging
> staging/appletalk: remove the BKL
> ufs: remove the BKL
> ipx: remove the BKL
> tracing: don't trace the BKL
> rtmutex-tester: remove BKL tests
> drivers: remove extraneous includes of smp_lock.h
> BKL: That's all, folks
>
> MAINTAINERS | 11 +-
> drivers/gpu/drm/Kconfig | 47 +-
> drivers/gpu/drm/Makefile | 1 -
> drivers/gpu/drm/i810/i810_dma.c | 18 +-
> drivers/gpu/drm/i810/i810_drv.c | 6 +-
> drivers/gpu/drm/i830/Makefile | 8 -
> drivers/gpu/drm/i830/i830_dma.c | 1560 ---------
> drivers/gpu/drm/i830/i830_drv.c | 107 -
> drivers/gpu/drm/i830/i830_drv.h | 295 --
> drivers/gpu/drm/i830/i830_irq.c | 186 --
> drivers/net/Makefile | 1 -
> drivers/net/appletalk/Makefile | 7 -
> drivers/scsi/megaraid/megaraid_sas_fp.c | 1 -
> drivers/scsi/megaraid/megaraid_sas_fusion.c | 1 -
> drivers/staging/Kconfig | 8 +-
> drivers/staging/Makefile | 4 +-
> drivers/{net => staging}/appletalk/Kconfig | 1 -
> {net => drivers/staging}/appletalk/Makefile | 7 +-
> {net => drivers/staging}/appletalk/aarp.c | 2 +-
> .../linux => drivers/staging/appletalk}/atalk.h | 0
> {net => drivers/staging}/appletalk/atalk_proc.c | 2 +-
> drivers/{net => staging}/appletalk/cops.c | 2 +-
> drivers/{net => staging}/appletalk/cops.h | 0
> drivers/{net => staging}/appletalk/cops_ffdrv.h | 0
> drivers/{net => staging}/appletalk/cops_ltdrv.h | 0
> {net => drivers/staging}/appletalk/ddp.c | 44 +-
> {net => drivers/staging}/appletalk/dev.c | 0
> drivers/{net => staging}/appletalk/ipddp.c | 2 +-
> drivers/{net => staging}/appletalk/ipddp.h | 0
> drivers/{net => staging}/appletalk/ltpc.c | 2 +-
> drivers/{net => staging}/appletalk/ltpc.h | 0
> .../staging}/appletalk/sysctl_net_atalk.c | 2 +-
> drivers/staging/autofs/Kconfig | 22 -
> drivers/staging/autofs/Makefile | 7 -
> drivers/staging/autofs/TODO | 8 -
> drivers/staging/autofs/autofs_i.h | 165 -
> drivers/staging/autofs/dirhash.c | 260 --
> drivers/staging/autofs/init.c | 52 -
> drivers/staging/autofs/inode.c | 288 --
> drivers/staging/autofs/root.c | 648 ----
> drivers/staging/autofs/symlink.c | 26 -
> drivers/staging/autofs/waitq.c | 205 --
> drivers/staging/cx25821/Kconfig | 1 -
> drivers/staging/cx25821/cx25821-alsa.c | 2 +
> drivers/staging/cx25821/cx25821-core.c | 16 +-
> drivers/staging/cx25821/cx25821-video.c | 9 +-
> drivers/staging/cx25821/cx25821.h | 3 +-
> drivers/staging/easycap/easycap.h | 1 -
> drivers/staging/easycap/easycap_ioctl.c | 1 -
> drivers/staging/go7007/Kconfig | 1 -
> drivers/staging/go7007/s2250-loader.c | 3 -
> {fs => drivers/staging}/hpfs/Kconfig | 5 +-
> {fs => drivers/staging}/hpfs/Makefile | 0
> drivers/staging/hpfs/TODO | 5 +
> {fs => drivers/staging}/hpfs/alloc.c | 0
> {fs => drivers/staging}/hpfs/anode.c | 0
> {fs => drivers/staging}/hpfs/buffer.c | 0
> {fs => drivers/staging}/hpfs/dentry.c | 0
> {fs => drivers/staging}/hpfs/dir.c | 23 +-
> {fs => drivers/staging}/hpfs/dnode.c | 0
> {fs => drivers/staging}/hpfs/ea.c | 0
> {fs => drivers/staging}/hpfs/file.c | 9 +-
> {fs => drivers/staging}/hpfs/hpfs.h | 0
> {fs => drivers/staging}/hpfs/hpfs_fn.h | 36 +
> {fs => drivers/staging}/hpfs/inode.c | 9 +-
> {fs => drivers/staging}/hpfs/map.c | 0
> {fs => drivers/staging}/hpfs/name.c | 0
> {fs => drivers/staging}/hpfs/namei.c | 49 +-
> {fs => drivers/staging}/hpfs/super.c | 21 +-
> drivers/staging/smbfs/Kconfig | 56 -
> drivers/staging/smbfs/Makefile | 18 -
> drivers/staging/smbfs/TODO | 8 -
> drivers/staging/smbfs/cache.c | 208 --
> drivers/staging/smbfs/dir.c | 699 ----
> drivers/staging/smbfs/file.c | 456 ---
> drivers/staging/smbfs/getopt.c | 64 -
> drivers/staging/smbfs/getopt.h | 14 -
> drivers/staging/smbfs/inode.c | 854 -----
> drivers/staging/smbfs/ioctl.c | 68 -
> drivers/staging/smbfs/proc.c | 3502 --------------------
> drivers/staging/smbfs/proto.h | 89 -
> drivers/staging/smbfs/request.c | 817 -----
> drivers/staging/smbfs/request.h | 70 -
> drivers/staging/smbfs/smb.h | 118 -
> drivers/staging/smbfs/smb_debug.h | 34 -
> drivers/staging/smbfs/smb_fs.h | 153 -
> drivers/staging/smbfs/smb_fs_i.h | 37 -
> drivers/staging/smbfs/smb_fs_sb.h | 100 -
> drivers/staging/smbfs/smb_mount.h | 65 -
> drivers/staging/smbfs/smbfs.txt | 8 -
> drivers/staging/smbfs/smbiod.c | 343 --
> drivers/staging/smbfs/smbno.h | 363 --
> drivers/staging/smbfs/sock.c | 385 ---
> drivers/staging/smbfs/symlink.c | 67 -
> drivers/staging/usbip/Kconfig | 2 +-
> drivers/staging/usbip/stub.h | 4 +-
> drivers/staging/usbip/stub_dev.c | 13 +-
> drivers/staging/usbip/stub_rx.c | 13 +-
> drivers/staging/usbip/stub_tx.c | 14 +-
> drivers/staging/usbip/usbip_common.c | 105 -
> drivers/staging/usbip/usbip_common.h | 20 +-
> drivers/staging/usbip/usbip_event.c | 31 +-
> drivers/staging/usbip/vhci.h | 4 +-
> drivers/staging/usbip/vhci_hcd.c | 10 +-
> drivers/staging/usbip/vhci_rx.c | 16 +-
> drivers/staging/usbip/vhci_sysfs.c | 9 +-
> drivers/staging/usbip/vhci_tx.c | 14 +-
> drivers/target/target_core_device.c | 1 -
> drivers/target/target_core_fabric_lib.c | 1 -
> drivers/target/target_core_file.c | 1 -
> drivers/target/target_core_hba.c | 1 -
> drivers/target/target_core_iblock.c | 1 -
> drivers/target/target_core_pscsi.c | 1 -
> drivers/target/target_core_rd.c | 1 -
> drivers/target/target_core_tpg.c | 1 -
> drivers/target/target_core_transport.c | 1 -
> drivers/tty/n_hdlc.c | 1 -
> drivers/tty/n_r3964.c | 1 -
> drivers/tty/pty.c | 1 -
> drivers/tty/tty_io.c | 1 -
> drivers/tty/tty_ldisc.c | 2 -
> drivers/tty/vt/selection.c | 1 -
> drivers/tty/vt/vc_screen.c | 1 -
> drivers/tty/vt/vt.c | 1 -
> drivers/tty/vt/vt_ioctl.c | 1 -
> fs/Kconfig | 1 -
> fs/Makefile | 1 -
> fs/adfs/Kconfig | 1 -
> fs/adfs/dir.c | 6 -
> fs/adfs/inode.c | 6 -
> fs/adfs/super.c | 13 +-
> fs/compat_ioctl.c | 1 -
> fs/ufs/Kconfig | 1 -
> fs/ufs/inode.c | 78 +-
> fs/ufs/namei.c | 35 +-
> fs/ufs/super.c | 55 +-
> fs/ufs/truncate.c | 5 +-
> fs/ufs/ufs.h | 6 +-
> include/drm/Kbuild | 1 -
> include/drm/i830_drm.h | 342 --
> include/linux/Kbuild | 1 -
> include/linux/hardirq.h | 9 +-
> include/linux/smp_lock.h | 65 -
> include/trace/events/bkl.h | 61 -
> init/Kconfig | 5 -
> kernel/rtmutex-tester.c | 39 +-
> kernel/sched.c | 7 -
> lib/Makefile | 1 -
> lib/kernel_lock.c | 143 -
> net/Kconfig | 1 -
> net/Makefile | 1 -
> net/ipx/Kconfig | 1 -
> net/ipx/af_ipx.c | 52 +-
> net/socket.c | 1 -
> net/x25/Kconfig | 1 -
> net/x25/af_x25.c | 61 +-
> net/x25/x25_out.c | 7 +-
> 157 files changed, 356 insertions(+), 13722 deletions(-)
> delete mode 100644 drivers/gpu/drm/i830/Makefile
> delete mode 100644 drivers/gpu/drm/i830/i830_dma.c
> delete mode 100644 drivers/gpu/drm/i830/i830_drv.c
> delete mode 100644 drivers/gpu/drm/i830/i830_drv.h
> delete mode 100644 drivers/gpu/drm/i830/i830_irq.c
> delete mode 100644 drivers/net/appletalk/Makefile
> rename drivers/{net => staging}/appletalk/Kconfig (98%)
> rename {net => drivers/staging}/appletalk/Makefile (56%)
> rename {net => drivers/staging}/appletalk/aarp.c (99%)
> rename {include/linux => drivers/staging/appletalk}/atalk.h (100%)
> rename {net => drivers/staging}/appletalk/atalk_proc.c (99%)
> rename drivers/{net => staging}/appletalk/cops.c (99%)
> rename drivers/{net => staging}/appletalk/cops.h (100%)
> rename drivers/{net => staging}/appletalk/cops_ffdrv.h (100%)
> rename drivers/{net => staging}/appletalk/cops_ltdrv.h (100%)
> rename {net => drivers/staging}/appletalk/ddp.c (98%)
> rename {net => drivers/staging}/appletalk/dev.c (100%)
> rename drivers/{net => staging}/appletalk/ipddp.c (99%)
> rename drivers/{net => staging}/appletalk/ipddp.h (100%)
> rename drivers/{net => staging}/appletalk/ltpc.c (99%)
> rename drivers/{net => staging}/appletalk/ltpc.h (100%)
> rename {net => drivers/staging}/appletalk/sysctl_net_atalk.c (98%)
> delete mode 100644 drivers/staging/autofs/Kconfig
> delete mode 100644 drivers/staging/autofs/Makefile
> delete mode 100644 drivers/staging/autofs/TODO
> delete mode 100644 drivers/staging/autofs/autofs_i.h
> delete mode 100644 drivers/staging/autofs/dirhash.c
> delete mode 100644 drivers/staging/autofs/init.c
> delete mode 100644 drivers/staging/autofs/inode.c
> delete mode 100644 drivers/staging/autofs/root.c
> delete mode 100644 drivers/staging/autofs/symlink.c
> delete mode 100644 drivers/staging/autofs/waitq.c
> rename {fs => drivers/staging}/hpfs/Kconfig (80%)
> rename {fs => drivers/staging}/hpfs/Makefile (100%)
> create mode 100644 drivers/staging/hpfs/TODO
> rename {fs => drivers/staging}/hpfs/alloc.c (100%)
> rename {fs => drivers/staging}/hpfs/anode.c (100%)
> rename {fs => drivers/staging}/hpfs/buffer.c (100%)
> rename {fs => drivers/staging}/hpfs/dentry.c (100%)
> rename {fs => drivers/staging}/hpfs/dir.c (97%)
> rename {fs => drivers/staging}/hpfs/dnode.c (100%)
> rename {fs => drivers/staging}/hpfs/ea.c (100%)
> rename {fs => drivers/staging}/hpfs/file.c (97%)
> rename {fs => drivers/staging}/hpfs/hpfs.h (100%)
> rename {fs => drivers/staging}/hpfs/hpfs_fn.h (91%)
> rename {fs => drivers/staging}/hpfs/inode.c (98%)
> rename {fs => drivers/staging}/hpfs/map.c (100%)
> rename {fs => drivers/staging}/hpfs/name.c (100%)
> rename {fs => drivers/staging}/hpfs/namei.c (96%)
> rename {fs => drivers/staging}/hpfs/super.c (98%)
> delete mode 100644 drivers/staging/smbfs/Kconfig
> delete mode 100644 drivers/staging/smbfs/Makefile
> delete mode 100644 drivers/staging/smbfs/TODO
> delete mode 100644 drivers/staging/smbfs/cache.c
> delete mode 100644 drivers/staging/smbfs/dir.c
> delete mode 100644 drivers/staging/smbfs/file.c
> delete mode 100644 drivers/staging/smbfs/getopt.c
> delete mode 100644 drivers/staging/smbfs/getopt.h
> delete mode 100644 drivers/staging/smbfs/inode.c
> delete mode 100644 drivers/staging/smbfs/ioctl.c
> delete mode 100644 drivers/staging/smbfs/proc.c
> delete mode 100644 drivers/staging/smbfs/proto.h
> delete mode 100644 drivers/staging/smbfs/request.c
> delete mode 100644 drivers/staging/smbfs/request.h
> delete mode 100644 drivers/staging/smbfs/smb.h
> delete mode 100644 drivers/staging/smbfs/smb_debug.h
> delete mode 100644 drivers/staging/smbfs/smb_fs.h
> delete mode 100644 drivers/staging/smbfs/smb_fs_i.h
> delete mode 100644 drivers/staging/smbfs/smb_fs_sb.h
> delete mode 100644 drivers/staging/smbfs/smb_mount.h
> delete mode 100644 drivers/staging/smbfs/smbfs.txt
> delete mode 100644 drivers/staging/smbfs/smbiod.c
> delete mode 100644 drivers/staging/smbfs/smbno.h
> delete mode 100644 drivers/staging/smbfs/sock.c
> delete mode 100644 drivers/staging/smbfs/symlink.c
> delete mode 100644 include/drm/i830_drm.h
> delete mode 100644 include/linux/smp_lock.h
> delete mode 100644 include/trace/events/bkl.h
> delete mode 100644 lib/kernel_lock.c
>
> [re-sent to mailing lists, due to overly long
> Cc list getting rejected by vger]
>
> Cc: autofs@xxxxxxxxxxxxxxxx
> Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx
> Cc: linux-cifs@xxxxxxxxxxxxxxx
> Cc: linux-fsdevel@xxxxxxxxxxxxxxx
> Cc: linux-x25@xxxxxxxxxxxxxxx
> Cc: netdev@xxxxxxxxxxxxxxx
>
>
> _______________________________________________
> autofs mailing list
> autofs@xxxxxxxxxxxxxxxx
> http://linux.kernel.org/mailman/listinfo/autofs


--
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/