[PATCH 1/2] fs: devfs: Create device files as character devices

Sascha Hauer s.hauer at pengutronix.de
Wed Sep 12 00:09:07 PDT 2018


Without this files in /dev/ appear as regular files. copy_file()
stumbles upon this as it tries a truncate() on that files which
then fails. Create the files as character devices so that copy_file()
works as expected.

Fixes: 9137c41915 ("fs: devfs: Switch to dentry cache implementation")

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 fs/devfs.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/devfs.c b/fs/devfs.c
index 5d0bb2c674..84c619f1ed 100644
--- a/fs/devfs.c
+++ b/fs/devfs.c
@@ -226,7 +226,7 @@ static struct inode *devfs_get_inode(struct super_block *sb, const struct inode
 	switch (mode & S_IFMT) {
 	default:
 		return NULL;
-	case S_IFREG:
+	case S_IFCHR:
 		inode->i_op = &devfs_file_inode_operations;
 		inode->i_fop = &devfs_file_operations;
 		break;
@@ -251,7 +251,7 @@ static struct dentry *devfs_lookup(struct inode *dir, struct dentry *dentry,
 	if (!cdev)
 		return ERR_PTR(-ENOENT);
 
-	inode = devfs_get_inode(dir->i_sb, dir, S_IFREG | S_IRWXUGO);
+	inode = devfs_get_inode(dir->i_sb, dir, S_IFCHR | S_IRWXUGO);
 	if (!inode)
 		return ERR_PTR(-ENOMEM);
 
-- 
2.18.0




More information about the barebox mailing list