android_kernel_xiaomi_sm8350/fs
Kay Sievers 578454ff7e driver core: add devname module aliases to allow module on-demand auto-loading
This adds:
  alias: devname:<name>
to some common kernel modules, which will allow the on-demand loading
of the kernel module when the device node is accessed.

Ideally all these modules would be compiled-in, but distros seems too
much in love with their modularization that we need to cover the common
cases with this new facility. It will allow us to remove a bunch of pretty
useless init scripts and modprobes from init scripts.

The static device node aliases will be carried in the module itself. The
program depmod will extract this information to a file in the module directory:
  $ cat /lib/modules/2.6.34-00650-g537b60d-dirty/modules.devname
  # Device nodes to trigger on-demand module loading.
  microcode cpu/microcode c10:184
  fuse fuse c10:229
  ppp_generic ppp c108:0
  tun net/tun c10:200
  dm_mod mapper/control c10:235

Udev will pick up the depmod created file on startup and create all the
static device nodes which the kernel modules specify, so that these modules
get automatically loaded when the device node is accessed:
  $ /sbin/udevd --debug
  ...
  static_dev_create_from_modules: mknod '/dev/cpu/microcode' c10:184
  static_dev_create_from_modules: mknod '/dev/fuse' c10:229
  static_dev_create_from_modules: mknod '/dev/ppp' c108:0
  static_dev_create_from_modules: mknod '/dev/net/tun' c10:200
  static_dev_create_from_modules: mknod '/dev/mapper/control' c10:235
  udev_rules_apply_static_dev_perms: chmod '/dev/net/tun' 0666
  udev_rules_apply_static_dev_perms: chmod '/dev/fuse' 0666

A few device nodes are switched to statically allocated numbers, to allow
the static nodes to work. This might also useful for systems which still run
a plain static /dev, which is completely unsafe to use with any dynamic minor
numbers.

Note:
The devname aliases must be limited to the *common* and *single*instance*
device nodes, like the misc devices, and never be used for conceptually limited
systems like the loop devices, which should rather get fixed properly and get a
control node for losetup to talk to, instead of creating a random number of
device nodes in advance, regardless if they are ever used.

This facility is to hide the mess distros are creating with too modualized
kernels, and just to hide that these modules are not compiled-in, and not to
paper-over broken concepts. Thanks! :)

Cc: Greg Kroah-Hartman <gregkh@suse.de>
Cc: David S. Miller <davem@davemloft.net>
Cc: Miklos Szeredi <miklos@szeredi.hu>
Cc: Chris Mason <chris.mason@oracle.com>
Cc: Alasdair G Kergon <agk@redhat.com>
Cc: Tigran Aivazian <tigran@aivazian.fsnet.co.uk>
Cc: Ian Kent <raven@themaw.net>
Signed-Off-By: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-05-25 15:08:26 -07:00
..
9p Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs 2010-05-24 07:41:13 -07:00
adfs
affs
afs AFS: Don't put struct file on the stack 2010-05-21 18:31:28 -04:00
autofs
autofs4 driver core: add devname module aliases to allow module on-demand auto-loading 2010-05-25 15:08:26 -07:00
befs
bfs bfs: replace inode uid,gid,mode initialization with helper function 2010-05-21 18:31:25 -04:00
btrfs driver core: add devname module aliases to allow module on-demand auto-loading 2010-05-25 15:08:26 -07:00
cachefiles CacheFiles: Fix error handling in cachefiles_determine_cache_security() 2010-05-12 18:23:58 -07:00
ceph Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2010-05-24 07:37:52 -07:00
cifs cifs: fix noserverino handling when unix extensions are enabled 2010-05-17 20:59:21 +00:00
coda Merge branch 'bkl/ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing 2010-05-24 08:01:10 -07:00
configfs Fix the regression created by "set S_DEAD on unlink()..." commit 2010-05-15 07:16:33 -04:00
cramfs
debugfs
devpts Simplify devpts_get_sb() failure exits 2010-05-21 18:31:12 -04:00
dlm
ecryptfs switch ecryptfs_write() to struct inode *, kill on-stack fake files 2010-05-21 18:31:28 -04:00
efs
exofs Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd 2010-05-24 07:57:41 -07:00
exportfs
ext2 ext2: replace inode uid,gid,mode init with helper 2010-05-21 18:31:24 -04:00
ext3 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
ext4 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
fat fatfs: ratelimit corruption report 2010-05-25 08:07:04 -07:00
freevxfs
fscache
fuse driver core: add devname module aliases to allow module on-demand auto-loading 2010-05-25 15:08:26 -07:00
gfs2 Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes 2010-05-25 08:17:51 -07:00
hfs
hfsplus hfsplus: Push down BKL into ioctl function 2010-05-17 05:27:03 +02:00
hostfs
hpfs
hppfs
hugetlbfs
isofs
jbd ext3: Fix waiting on transaction during fsync 2010-05-21 19:30:41 +02:00
jbd2 Merge branch 'master' into for-2.6.35 2010-05-21 21:27:26 +02:00
jffs2 jffs2: constify xattr_handler 2010-05-21 18:31:20 -04:00
jfs jfs: replace inode uid,gid,mode init with helper 2010-05-21 18:31:23 -04:00
lockd
logfs logfs: replace inode uid,gid,mode initialization with helper function 2010-05-21 18:31:27 -04:00
minix minix: replace inode uid,gid,mode init with helper 2010-05-21 18:31:24 -04:00
ncpfs ncpfs: BKL ioctl pushdown 2010-05-17 05:27:42 +02:00
nfs kernel-wide: replace USHORT_MAX, SHORT_MAX and SHORT_MIN with USHRT_MAX, SHRT_MAX and SHRT_MIN 2010-05-25 08:07:02 -07:00
nfs_common
nfsd kernel-wide: replace USHORT_MAX, SHORT_MAX and SHORT_MIN with USHRT_MAX, SHRT_MAX and SHRT_MIN 2010-05-25 08:07:02 -07:00
nilfs2 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
nls
notify Saner locking around deactivate_super() 2010-05-21 18:31:14 -04:00
ntfs ntfs: use add_to_page_cache_lru() 2010-05-25 08:07:03 -07:00
ocfs2 kernel-wide: replace USHORT_MAX, SHORT_MAX and SHORT_MIN with USHRT_MAX, SHRT_MAX and SHRT_MIN 2010-05-25 08:07:02 -07:00
omfs omfs: replace inode uid,gid,mode initialization with helper function 2010-05-21 18:31:25 -04:00
openpromfs
partitions fs: ldm: don't use own implementation of hex_to_bin() 2010-05-25 08:07:06 -07:00
proc pagemap: add #ifdefs CONFIG_HUGETLB_PAGE on code walking hugetlb vma 2010-05-25 08:06:58 -07:00
qnx4
quota new helper: iterate_supers() 2010-05-21 18:31:16 -04:00
ramfs ramfs: replace inode uid,gid,mode initialization with helper function 2010-05-21 18:31:26 -04:00
reiserfs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
romfs
smbfs smbfs: remove duplicated #include 2010-05-25 08:07:07 -07:00
squashfs
sysfs sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
sysv sysv: replace inode uid,gid,mode initialization with helper function 2010-05-21 18:31:26 -04:00
ubifs ubifs: replace inode uid,gid,mode initialization with helper function 2010-05-21 18:31:26 -04:00
udf udf: replace inode uid,gid,mode init with helper 2010-05-21 18:31:27 -04:00
ufs ufs: replace inode uid,gid,mode initialization with helper function 2010-05-21 18:31:27 -04:00
xfs Merge branch 'delayed-logging-for-2.6.35' into for-linus 2010-05-24 11:57:36 -05:00
aio.c
anon_inodes.c anon_inode: set S_IFREG on the anon_inode 2010-05-21 18:31:20 -04:00
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf_fdpic.c
binfmt_elf.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio-integrity.c
bio.c
block_dev.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
buffer.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
char_dev.c
compat_binfmt_elf.c
compat_ioctl.c
compat.c revert "procfs: provide stack information for threads" and its fixup commits 2010-05-11 17:33:41 -07:00
dcache.c fix prune_dcache()/umount() race 2010-05-21 18:31:16 -04:00
dcookies.c
direct-io.c
drop_caches.c new helper: iterate_supers() 2010-05-21 18:31:16 -04:00
eventfd.c
eventpoll.c sched, wait: Use wrapper functions 2010-05-11 17:43:58 +02:00
exec.c mm: migration: avoid race between shift_arg_pages() and rmap_walk() during migration by not migrating temporary stacks 2010-05-25 08:06:59 -07:00
fcntl.c Merge branch 'master' into for-2.6.35 2010-05-21 21:27:26 +02:00
fifo.c
file_table.c
file.c
filesystems.c
fs_struct.c
fs-writeback.c fs-writeback: check sync bit earlier in inode_wait_for_writeback 2010-05-25 08:07:00 -07:00
generic_acl.c fs: xattr_handler table should be const 2010-05-21 18:31:18 -04:00
inode.c vfs: Add inode uid,gid,mode init helper 2010-05-21 18:31:22 -04:00
internal.h Bury __put_super_and_need_restart() 2010-05-21 18:31:16 -04:00
ioctl.c Introduce freeze_super and thaw_super for the fsfreeze ioctl 2010-05-21 18:31:18 -04:00
ioprio.c
Kconfig
Kconfig.binfmt
libfs.c FS / libfs: Implement simple_write_to_buffer 2010-05-10 23:08:17 +02:00
locks.c
Makefile Take statfs variants to fs/statfs.c 2010-05-21 18:31:17 -04:00
mbcache.c
mpage.c
namei.c namei.c : update mnt when it needed 2010-05-21 18:31:22 -04:00
namespace.c Merge branch 'next' into for-linus 2010-05-18 08:57:00 +10:00
nfsctl.c
no-block.c
open.c Take statfs variants to fs/statfs.c 2010-05-21 18:31:17 -04:00
pipe.c pipe: set lower and upper limit on max pages in the pipe page array 2010-05-21 21:12:52 +02:00
pnode.c
pnode.h
posix_acl.c
read_write.c
read_write.h
readdir.c
select.c
seq_file.c
signalfd.c
splice.c pipe: add support for shrinking and growing pipes 2010-05-21 21:12:40 +02:00
stack.c
stat.c
statfs.c Take statfs variants to fs/statfs.c 2010-05-21 18:31:17 -04:00
super.c vfs: add lockdep annotation to s_vfs_rename_key for ecryptfs 2010-05-21 18:31:22 -04:00
sync.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
timerfd.c fs/timerfd.c: make use of wait_event_interruptible_locked_irq() 2010-05-20 13:21:42 -07:00
utimes.c
xattr_acl.c
xattr.c fs: xattr_handler table should be const 2010-05-21 18:31:18 -04:00