Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a04ee146 authored by Jan Engelhardt's avatar Jan Engelhardt Committed by Linus Torvalds
Browse files

[PATCH] openpromfs: factorize out



"Move" "common code" out to PTR_NOD, which does the conversion from private
pointer to node number.  This is to reduce potential casting/conversion errors
due to redundancy.  (The naming PTR_NOD follows PTR_ERR, turning a pointer
into xyz.)

[akpm@osdl.org: cleanups]
Signed-off-by: default avatarJan Engelhardt <jengelh@gmx.de>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 515decdc
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -64,6 +64,11 @@ static int openpromfs_readdir(struct file *, void *, filldir_t);
static struct dentry *openpromfs_lookup(struct inode *, struct dentry *dentry, struct nameidata *nd);
static int openpromfs_unlink (struct inode *, struct dentry *dentry);

static inline u16 ptr_nod(void *p)
{
    return (long)p & 0xFFFF;
}

static ssize_t nodenum_read(struct file *file, char __user *buf,
			    size_t count, loff_t *ppos)
{
@@ -95,9 +100,9 @@ static ssize_t property_read(struct file *filp, char __user *buf,
	char buffer[64];
	
	if (!filp->private_data) {
		node = nodes[(u16)((long)inode->u.generic_ip)].node;
		node = nodes[ptr_nod(inode->u.generic_ip)].node;
		i = ((u32)(long)inode->u.generic_ip) >> 16;
		if ((u16)((long)inode->u.generic_ip) == aliases) {
		if (ptr_nod(inode->u.generic_ip) == aliases) {
			if (i >= aliases_nodes)
				p = NULL;
			else
@@ -111,7 +116,7 @@ static ssize_t property_read(struct file *filp, char __user *buf,
			return -EIO;
		i = prom_getproplen (node, p);
		if (i < 0) {
			if ((u16)((long)inode->u.generic_ip) == aliases)
			if (ptr_nod(inode->u.generic_ip) == aliases)
				i = 0;
			else
				return -EIO;
@@ -540,8 +545,8 @@ int property_release (struct inode *inode, struct file *filp)
	if (!op)
		return 0;
	lock_kernel();
	node = nodes[(u16)((long)inode->u.generic_ip)].node;
	if ((u16)((long)inode->u.generic_ip) == aliases) {
	node = nodes[ptr_nod(inode->u.generic_ip)].node;
	if (ptr_nod(inode->u.generic_ip) == aliases) {
		if ((op->flag & OPP_DIRTY) && (op->flag & OPP_STRING)) {
			char *p = op->name;
			int i = (op->value - op->name) - strlen (op->name) - 1;