Commit eaecf43a authored by Thomas Meyer's avatar Thomas Meyer Committed by Artem Bityutskiy
Browse files

UBIFS: Use kmemdup rather than duplicating its implementation



The semantic patch that makes this change is available
in scripts/coccinelle/api/memdup.cocci.

Signed-off-by: default avatarThomas Meyer <thomas@m3y3r.de>
Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
parent cfcfc9ec
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -1986,12 +1986,11 @@ again:

				if (path[h].in_tree)
					continue;
				nnode = kmalloc(sz, GFP_NOFS);
				nnode = kmemdup(&path[h].nnode, sz, GFP_NOFS);
				if (!nnode) {
					err = -ENOMEM;
					goto out;
				}
				memcpy(nnode, &path[h].nnode, sz);
				parent = nnode->parent;
				parent->nbranch[nnode->iip].nnode = nnode;
				path[h].ptr.nnode = nnode;
@@ -2004,12 +2003,11 @@ again:
				const size_t sz = sizeof(struct ubifs_pnode);
				struct ubifs_nnode *parent;

				pnode = kmalloc(sz, GFP_NOFS);
				pnode = kmemdup(&path[h].pnode, sz, GFP_NOFS);
				if (!pnode) {
					err = -ENOMEM;
					goto out;
				}
				memcpy(pnode, &path[h].pnode, sz);
				parent = pnode->parent;
				parent->nbranch[pnode->iip].pnode = pnode;
				path[h].ptr.pnode = pnode;
+1 −2
Original line number Diff line number Diff line
@@ -344,12 +344,11 @@ static int lnc_add(struct ubifs_info *c, struct ubifs_zbranch *zbr,
		return err;
	}

	lnc_node = kmalloc(zbr->len, GFP_NOFS);
	lnc_node = kmemdup(node, zbr->len, GFP_NOFS);
	if (!lnc_node)
		/* We don't have to have the cache, so no error */
		return 0;

	memcpy(lnc_node, node, zbr->len);
	zbr->leaf = lnc_node;
	return 0;
}
+2 −4
Original line number Diff line number Diff line
@@ -138,12 +138,11 @@ static int create_xattr(struct ubifs_info *c, struct inode *host,
	ui = ubifs_inode(inode);
	ui->xattr = 1;
	ui->flags |= UBIFS_XATTR_FL;
	ui->data = kmalloc(size, GFP_NOFS);
	ui->data = kmemdup(value, size, GFP_NOFS);
	if (!ui->data) {
		err = -ENOMEM;
		goto out_free;
	}
	memcpy(ui->data, value, size);
	inode->i_size = ui->ui_size = size;
	ui->data_len = size;

@@ -204,12 +203,11 @@ static int change_xattr(struct ubifs_info *c, struct inode *host,
		return err;

	kfree(ui->data);
	ui->data = kmalloc(size, GFP_NOFS);
	ui->data = kmemdup(value, size, GFP_NOFS);
	if (!ui->data) {
		err = -ENOMEM;
		goto out_free;
	}
	memcpy(ui->data, value, size);
	inode->i_size = ui->ui_size = size;
	ui->data_len = size;