diff options
Diffstat (limited to 'drivers/base/devtmpfs.c')
-rw-r--r-- | drivers/base/devtmpfs.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c index 25798db14553..68f03141e432 100644 --- a/drivers/base/devtmpfs.c +++ b/drivers/base/devtmpfs.c | |||
@@ -157,10 +157,10 @@ static int dev_mkdir(const char *name, umode_t mode) | |||
157 | if (IS_ERR(dentry)) | 157 | if (IS_ERR(dentry)) |
158 | return PTR_ERR(dentry); | 158 | return PTR_ERR(dentry); |
159 | 159 | ||
160 | err = vfs_mkdir(path.dentry->d_inode, dentry, mode); | 160 | err = vfs_mkdir(d_inode(path.dentry), dentry, mode); |
161 | if (!err) | 161 | if (!err) |
162 | /* mark as kernel-created inode */ | 162 | /* mark as kernel-created inode */ |
163 | dentry->d_inode->i_private = &thread; | 163 | d_inode(dentry)->i_private = &thread; |
164 | done_path_create(&path, dentry); | 164 | done_path_create(&path, dentry); |
165 | return err; | 165 | return err; |
166 | } | 166 | } |
@@ -207,7 +207,7 @@ static int handle_create(const char *nodename, umode_t mode, kuid_t uid, | |||
207 | if (IS_ERR(dentry)) | 207 | if (IS_ERR(dentry)) |
208 | return PTR_ERR(dentry); | 208 | return PTR_ERR(dentry); |
209 | 209 | ||
210 | err = vfs_mknod(path.dentry->d_inode, dentry, mode, dev->devt); | 210 | err = vfs_mknod(d_inode(path.dentry), dentry, mode, dev->devt); |
211 | if (!err) { | 211 | if (!err) { |
212 | struct iattr newattrs; | 212 | struct iattr newattrs; |
213 | 213 | ||
@@ -215,12 +215,12 @@ static int handle_create(const char *nodename, umode_t mode, kuid_t uid, | |||
215 | newattrs.ia_uid = uid; | 215 | newattrs.ia_uid = uid; |
216 | newattrs.ia_gid = gid; | 216 | newattrs.ia_gid = gid; |
217 | newattrs.ia_valid = ATTR_MODE|ATTR_UID|ATTR_GID; | 217 | newattrs.ia_valid = ATTR_MODE|ATTR_UID|ATTR_GID; |
218 | mutex_lock(&dentry->d_inode->i_mutex); | 218 | mutex_lock(&d_inode(dentry)->i_mutex); |
219 | notify_change(dentry, &newattrs, NULL); | 219 | notify_change(dentry, &newattrs, NULL); |
220 | mutex_unlock(&dentry->d_inode->i_mutex); | 220 | mutex_unlock(&d_inode(dentry)->i_mutex); |
221 | 221 | ||
222 | /* mark as kernel-created inode */ | 222 | /* mark as kernel-created inode */ |
223 | dentry->d_inode->i_private = &thread; | 223 | d_inode(dentry)->i_private = &thread; |
224 | } | 224 | } |
225 | done_path_create(&path, dentry); | 225 | done_path_create(&path, dentry); |
226 | return err; | 226 | return err; |
@@ -235,16 +235,16 @@ static int dev_rmdir(const char *name) | |||
235 | dentry = kern_path_locked(name, &parent); | 235 | dentry = kern_path_locked(name, &parent); |
236 | if (IS_ERR(dentry)) | 236 | if (IS_ERR(dentry)) |
237 | return PTR_ERR(dentry); | 237 | return PTR_ERR(dentry); |
238 | if (dentry->d_inode) { | 238 | if (d_really_is_positive(dentry)) { |
239 | if (dentry->d_inode->i_private == &thread) | 239 | if (d_inode(dentry)->i_private == &thread) |
240 | err = vfs_rmdir(parent.dentry->d_inode, dentry); | 240 | err = vfs_rmdir(d_inode(parent.dentry), dentry); |
241 | else | 241 | else |
242 | err = -EPERM; | 242 | err = -EPERM; |
243 | } else { | 243 | } else { |
244 | err = -ENOENT; | 244 | err = -ENOENT; |
245 | } | 245 | } |
246 | dput(dentry); | 246 | dput(dentry); |
247 | mutex_unlock(&parent.dentry->d_inode->i_mutex); | 247 | mutex_unlock(&d_inode(parent.dentry)->i_mutex); |
248 | path_put(&parent); | 248 | path_put(&parent); |
249 | return err; | 249 | return err; |
250 | } | 250 | } |
@@ -306,11 +306,11 @@ static int handle_remove(const char *nodename, struct device *dev) | |||
306 | if (IS_ERR(dentry)) | 306 | if (IS_ERR(dentry)) |
307 | return PTR_ERR(dentry); | 307 | return PTR_ERR(dentry); |
308 | 308 | ||
309 | if (dentry->d_inode) { | 309 | if (d_really_is_positive(dentry)) { |
310 | struct kstat stat; | 310 | struct kstat stat; |
311 | struct path p = {.mnt = parent.mnt, .dentry = dentry}; | 311 | struct path p = {.mnt = parent.mnt, .dentry = dentry}; |
312 | err = vfs_getattr(&p, &stat); | 312 | err = vfs_getattr(&p, &stat); |
313 | if (!err && dev_mynode(dev, dentry->d_inode, &stat)) { | 313 | if (!err && dev_mynode(dev, d_inode(dentry), &stat)) { |
314 | struct iattr newattrs; | 314 | struct iattr newattrs; |
315 | /* | 315 | /* |
316 | * before unlinking this node, reset permissions | 316 | * before unlinking this node, reset permissions |
@@ -321,10 +321,10 @@ static int handle_remove(const char *nodename, struct device *dev) | |||
321 | newattrs.ia_mode = stat.mode & ~0777; | 321 | newattrs.ia_mode = stat.mode & ~0777; |
322 | newattrs.ia_valid = | 322 | newattrs.ia_valid = |
323 | ATTR_UID|ATTR_GID|ATTR_MODE; | 323 | ATTR_UID|ATTR_GID|ATTR_MODE; |
324 | mutex_lock(&dentry->d_inode->i_mutex); | 324 | mutex_lock(&d_inode(dentry)->i_mutex); |
325 | notify_change(dentry, &newattrs, NULL); | 325 | notify_change(dentry, &newattrs, NULL); |
326 | mutex_unlock(&dentry->d_inode->i_mutex); | 326 | mutex_unlock(&d_inode(dentry)->i_mutex); |
327 | err = vfs_unlink(parent.dentry->d_inode, dentry, NULL); | 327 | err = vfs_unlink(d_inode(parent.dentry), dentry, NULL); |
328 | if (!err || err == -ENOENT) | 328 | if (!err || err == -ENOENT) |
329 | deleted = 1; | 329 | deleted = 1; |
330 | } | 330 | } |
@@ -332,7 +332,7 @@ static int handle_remove(const char *nodename, struct device *dev) | |||
332 | err = -ENOENT; | 332 | err = -ENOENT; |
333 | } | 333 | } |
334 | dput(dentry); | 334 | dput(dentry); |
335 | mutex_unlock(&parent.dentry->d_inode->i_mutex); | 335 | mutex_unlock(&d_inode(parent.dentry)->i_mutex); |
336 | 336 | ||
337 | path_put(&parent); | 337 | path_put(&parent); |
338 | if (deleted && strchr(nodename, '/')) | 338 | if (deleted && strchr(nodename, '/')) |