From 188858aa27228e1bbe106343bbaf6d7db32f98f1 Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Wed, 23 Apr 2003 04:28:03 -0700 Subject: [PATCH] [PATCH] fix devfs_mk_dir prototype Return an error code instead of a devfs_handle_t. The handle isn't useful for anything and the !CONFIG_DEVFS_FS stub in fact returned NULL which made it entirely useless. Thus only one driver is actually checking the retval in the current tree.. --- drivers/s390/block/dasd.c | 8 ++------ fs/devfs/base.c | 16 +++++++--------- include/linux/devfs_fs_kernel.h | 8 ++++---- 3 files changed, 13 insertions(+), 19 deletions(-) diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index 43b06070bed72..acefa5692a365 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c @@ -2055,13 +2055,9 @@ dasd_init(void) DBF_EVENT(DBF_EMERG, "%s", "debug area created"); -#ifdef CONFIG_DEVFS_FS - if (!devfs_mk_dir("dasd")) { - DBF_EVENT(DBF_ALERT, "%s", "no devfs"); - rc = -ENOSYS; + rc = devfs_mk_dir("dasd"); + if (rc) goto failed; - } -#endif rc = dasd_devmap_init(); if (rc) goto failed; diff --git a/fs/devfs/base.c b/fs/devfs/base.c index a0d3ea54a4409..30efb7302ec68 100644 --- a/fs/devfs/base.c +++ b/fs/devfs/base.c @@ -1708,41 +1708,39 @@ int devfs_mk_symlink(const char *from, const char *to) * On failure %NULL is returned. */ -devfs_handle_t devfs_mk_dir(const char *fmt, ...) +int devfs_mk_dir(const char *fmt, ...) { struct devfs_entry *dir = NULL, *de = NULL, *old; char buf[64]; va_list args; - int n; + int error, n; va_start(args, fmt); n = vsnprintf(buf, 64, fmt, args); if (n >= 64 || !buf[0]) { printk(KERN_WARNING "%s: invalid argument.", __FUNCTION__); - return NULL; + return -EINVAL; } de = _devfs_prepare_leaf(&dir, buf, MODE_DIR); if (!de) { PRINTK("(%s): could not prepare leaf\n", buf); - return NULL; + return -EINVAL; } - de->info = NULL; - if (_devfs_append_entry(dir, de, &old)) { + error = _devfs_append_entry(dir, de, &old); + if (error) { PRINTK("(%s): could not append to dir: %p \"%s\"\n", buf, dir, dir->name); devfs_put(old); goto out_put; } - DPRINTK(DEBUG_REGISTER, "(%s): de: %p dir: %p \"%s\"\n", - buf, de, dir, dir->name); devfsd_notify(de, DEVFSD_NOTIFY_REGISTERED); out_put: devfs_put(dir); - return de; + return error; } diff --git a/include/linux/devfs_fs_kernel.h b/include/linux/devfs_fs_kernel.h index a45a4060236d8..c0bc8f2210534 100644 --- a/include/linux/devfs_fs_kernel.h +++ b/include/linux/devfs_fs_kernel.h @@ -27,8 +27,8 @@ extern devfs_handle_t devfs_register (devfs_handle_t dir, const char *name, umode_t mode, void *ops, void *info); extern int devfs_mk_bdev(dev_t dev, umode_t mode, const char *fmt, ...) __attribute__((format (printf, 3, 4))); -extern int devfs_mk_symlink (const char *name, const char *link); -extern devfs_handle_t devfs_mk_dir(const char *fmt, ...) +extern int devfs_mk_symlink(const char *name, const char *link); +extern int devfs_mk_dir(const char *fmt, ...) __attribute__((format (printf, 1, 2))); extern void devfs_remove(const char *fmt, ...) __attribute__((format (printf, 1, 2))); @@ -55,9 +55,9 @@ static inline int devfs_mk_symlink (const char *name, const char *link) { return 0; } -static inline devfs_handle_t devfs_mk_dir(const char *fmt, ...) +static inline int devfs_mk_dir(const char *fmt, ...) { - return NULL; + return 0; } static inline void devfs_remove(const char *fmt, ...) { -- 2.53.0