diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
commit | ada47b5fe13d89735805b566185f4885f5a3f750 (patch) | |
tree | 644b88f8a71896307d71438e9b3af49126ffb22b /security/inode.c | |
parent | 43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff) | |
parent | 3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff) |
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'security/inode.c')
-rw-r--r-- | security/inode.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/security/inode.c b/security/inode.c index f7496c6a022b..1c812e874504 100644 --- a/security/inode.c +++ b/security/inode.c | |||
@@ -156,25 +156,18 @@ static int create_by_name(const char *name, mode_t mode, | |||
156 | * block. A pointer to that is in the struct vfsmount that we | 156 | * block. A pointer to that is in the struct vfsmount that we |
157 | * have around. | 157 | * have around. |
158 | */ | 158 | */ |
159 | if (!parent ) { | 159 | if (!parent) |
160 | if (mount && mount->mnt_sb) { | 160 | parent = mount->mnt_sb->s_root; |
161 | parent = mount->mnt_sb->s_root; | ||
162 | } | ||
163 | } | ||
164 | if (!parent) { | ||
165 | pr_debug("securityfs: Ah! can not find a parent!\n"); | ||
166 | return -EFAULT; | ||
167 | } | ||
168 | 161 | ||
169 | mutex_lock(&parent->d_inode->i_mutex); | 162 | mutex_lock(&parent->d_inode->i_mutex); |
170 | *dentry = lookup_one_len(name, parent, strlen(name)); | 163 | *dentry = lookup_one_len(name, parent, strlen(name)); |
171 | if (!IS_ERR(dentry)) { | 164 | if (!IS_ERR(*dentry)) { |
172 | if ((mode & S_IFMT) == S_IFDIR) | 165 | if ((mode & S_IFMT) == S_IFDIR) |
173 | error = mkdir(parent->d_inode, *dentry, mode); | 166 | error = mkdir(parent->d_inode, *dentry, mode); |
174 | else | 167 | else |
175 | error = create(parent->d_inode, *dentry, mode); | 168 | error = create(parent->d_inode, *dentry, mode); |
176 | } else | 169 | } else |
177 | error = PTR_ERR(dentry); | 170 | error = PTR_ERR(*dentry); |
178 | mutex_unlock(&parent->d_inode->i_mutex); | 171 | mutex_unlock(&parent->d_inode->i_mutex); |
179 | 172 | ||
180 | return error; | 173 | return error; |