From 89eba5eb77bbf92ffed6686c951cc35f4027e71f Mon Sep 17 00:00:00 2001 From: Ralf Baechle Date: Thu, 27 Jul 2000 23:20:03 +0000 Subject: Merge with Linux 2.4.0-test5-pre5. --- fs/devfs/base.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'fs/devfs') diff --git a/fs/devfs/base.c b/fs/devfs/base.c index 38a773d72..ad28db63a 100644 --- a/fs/devfs/base.c +++ b/fs/devfs/base.c @@ -1246,8 +1246,7 @@ devfs_handle_t devfs_register (devfs_handle_t dir, const char *name, } if (ops == NULL) { - if ( S_ISCHR (mode) ) ops = get_chrfops (major, 0); - else if ( S_ISBLK (mode) ) ops = (void *) get_blkfops (major); + if ( S_ISBLK (mode) ) ops = (void *) get_blkfops (major); if (ops == NULL) { printk ("%s: devfs_register(%s): NULL ops pointer\n", @@ -2506,6 +2505,19 @@ static int devfs_open (struct inode *inode, struct file *file) else { /* Fallback to legacy scheme */ + /* + * Do we need it? Richard, could you verify it? + * It can legitimately happen if + * it is a character device and + * df->ops == NULL and + * de->registered is true, + * but AFAICS it can't happen - in devfs_register() we never set + * ->ops to NULL, in unregister() we set ->registered to false, + * in devfs_mknod() we set it to NULL only if ->register is false. + * + * Looks like this fallback is not needed at all. + * AV + */ if ( S_ISCHR (inode->i_mode) ) err = chrdev_open (inode, file); else err = -ENODEV; } -- cgit v1.2.3