[PATCH v2 05/13] fs: ramfs: add device file support
Ahmad Fatoum
a.fatoum at pengutronix.de
Mon Dec 15 03:22:25 PST 2025
Hi,
On 12/9/25 1:51 PM, Sascha Hauer wrote:
> Implement the mknod hook in ramfs for creating device special files.
>
> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
Reviewed-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
> ---
> fs/ramfs.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/fs/ramfs.c b/fs/ramfs.c
> index 1caace0183a58e8a07001eb6ce9df8ea1895ac0b..d86bf6144e8485269c589ba0024377f9852a8eaa 100644
> --- a/fs/ramfs.c
> +++ b/fs/ramfs.c
> @@ -89,6 +89,9 @@ static struct inode *ramfs_get_inode(struct super_block *sb, const struct inode
> case S_IFLNK:
> inode->i_op = &ramfs_symlink_inode_operations;
> break;
> + case S_IFBLK:
> + case S_IFCHR:
> + break;
> }
>
> return inode;
> @@ -149,6 +152,20 @@ static int ramfs_create(struct inode *dir, struct dentry *dentry, umode_t mode)
> return ramfs_mknod(dir, dentry, mode | S_IFREG);
> }
>
> +static int __ramfs_mknod(struct inode *dir,struct dentry *dentry, umode_t mode,
> + const char *cdevname)
> +{
> + int ret;
> +
> + ret = ramfs_mknod(dir, dentry, mode);
> + if (ret)
> + return ret;
> +
> + init_special_inode(dentry->d_inode, mode, cdevname);
> +
> + return 0;
> +}
> +
> static int ramfs_symlink(struct inode *dir, struct dentry *dentry,
> const char *symname)
> {
> @@ -196,6 +213,7 @@ static const struct inode_operations ramfs_dir_inode_operations =
> .unlink = simple_unlink,
> .create = ramfs_create,
> .tmpfile = ramfs_tmpfile,
> + .mknod = __ramfs_mknod,
> };
>
> static struct ramfs_chunk *ramfs_find_chunk(struct ramfs_inode *node,
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list