diff options
| author | James Morris <james.l.morris@oracle.com> | 2012-05-04 12:46:40 +1000 | 
|---|---|---|
| committer | James Morris <james.l.morris@oracle.com> | 2012-05-04 12:46:40 +1000 | 
| commit | 898bfc1d46bd76f8ea2a0fbd239dd2073efe2aa3 (patch) | |
| tree | e6e666085abe674dbf6292555961fe0a0f2e2d2f /drivers/mtd/mtdchar.c | |
| parent | 08162e6a23d476544adfe1164afe9ea8b34ab859 (diff) | |
| parent | 69964ea4c7b68c9399f7977aa5b9aa6539a6a98a (diff) | |
| download | olio-linux-3.10-898bfc1d46bd76f8ea2a0fbd239dd2073efe2aa3.tar.xz olio-linux-3.10-898bfc1d46bd76f8ea2a0fbd239dd2073efe2aa3.zip  | |
Merge tag 'v3.4-rc5' into next
Linux 3.4-rc5
Merge to pull in prerequisite change for Smack:
86812bb0de1a3758dc6c7aa01a763158a7c0638a
Requested by Casey.
Diffstat (limited to 'drivers/mtd/mtdchar.c')
| -rw-r--r-- | drivers/mtd/mtdchar.c | 20 | 
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c index 94eb05b1afd..58fc65f5c81 100644 --- a/drivers/mtd/mtdchar.c +++ b/drivers/mtd/mtdchar.c @@ -106,16 +106,14 @@ static int mtdchar_open(struct inode *inode, struct file *file)  	}  	if (mtd->type == MTD_ABSENT) { -		put_mtd_device(mtd);  		ret = -ENODEV; -		goto out; +		goto out1;  	}  	mtd_ino = iget_locked(mnt->mnt_sb, devnum);  	if (!mtd_ino) { -		put_mtd_device(mtd);  		ret = -ENOMEM; -		goto out; +		goto out1;  	}  	if (mtd_ino->i_state & I_NEW) {  		mtd_ino->i_private = mtd; @@ -127,23 +125,25 @@ static int mtdchar_open(struct inode *inode, struct file *file)  	/* You can't open it RW if it's not a writeable device */  	if ((file->f_mode & FMODE_WRITE) && !(mtd->flags & MTD_WRITEABLE)) { -		iput(mtd_ino); -		put_mtd_device(mtd);  		ret = -EACCES; -		goto out; +		goto out2;  	}  	mfi = kzalloc(sizeof(*mfi), GFP_KERNEL);  	if (!mfi) { -		iput(mtd_ino); -		put_mtd_device(mtd);  		ret = -ENOMEM; -		goto out; +		goto out2;  	}  	mfi->ino = mtd_ino;  	mfi->mtd = mtd;  	file->private_data = mfi; +	mutex_unlock(&mtd_mutex); +	return 0; +out2: +	iput(mtd_ino); +out1: +	put_mtd_device(mtd);  out:  	mutex_unlock(&mtd_mutex);  	simple_release_fs(&mnt, &count);  |